Commit 8893be96 authored by Bertrand Gauthier's avatar Bertrand Gauthier
Browse files

FichierViewHelper : refactorisation pour ajouter des setters ; ajout de règles...

FichierViewHelper : refactorisation pour ajouter des setters ; ajout de règles dans app.scss pour abandon de classes bootstrap ; plus de sobriété dans les styles.
parent 4e05c263
Loading
Loading
Loading
Loading
+1 −0
Changes for CHANGELOG.md: 1 added line, 0 removed lines.
Original line number Diff line number Diff line
@@ -7,6 +7,7 @@ Journal des modifications
- Changement d'apparence (plus sobre) des texte du genre 'Non renseigné'.
- Fiche Thèse : mention en cas de thèse supprimée/historisée.
- Structure de type Etablissement : possibilité de renseigner le pays.
- FichierViewHelper : refactorisation pour ajouter des setters ; ajout de règles dans app.scss pour abandon de classes bootstrap ; plus de sobriété dans les styles.
- [BDD] Vue src_these : ajout de la jointure avec la table pays pour tenter d'alimenter la colonne pays_cotut_id.
- [FIX] Import : plantage des imports à partir d'une API (dû à un mésusage de Assert::isInstanceOf() dans unicaen/db-import).
- [CSS] Retouche de l'apparence des libellés de structures (ED, UR étab) et ajout d'une classe pour les pays ; remplacement des var(--xxxx) par des variables Sass. 
+87 −20
Changes for module/Fichier/src/Fichier/View/Helper/Fichier/FichierViewHelper.php: 87 added lines, 20 removed lines.
Original line number Diff line number Diff line
<?php /** @noinspection PhpUnusedAliasInspection */

<?php

namespace Fichier\View\Helper\Fichier;

use Application\View\Renderer\PhpRenderer;
use Fichier\Entity\Db\Fichier;
use Formation\Entity\Db\Inscription;
use Laminas\View\Helper\AbstractHelper;
use Laminas\View\Helper\Partial;
use Laminas\View\Resolver\TemplatePathStack;

class FichierViewHelper extends AbstractHelper
{
    private Fichier $fichier;
    private string $urlTelechargementFichier;
    private string $urlSuppressionFichier;
    private string $libelleOptionnel = '';
    private bool $canGererFichier = false;
    private bool $seeHistoInfo = false;
    private bool $canSeeSuppression = false;
    private bool $isTargetBlank = false;

    /**
     * Génère la représentation d'un fichier dans la vue.
     *
     * @param Fichier $object                   L'entité Fichier à afficher.
     * @param Fichier $fichier                  L'entité Fichier concernée.
     * @param string $urlTelechargementFichier  L'URL pour accéder au fichier.
     * @param string $urlSuppressionFichier     L'URL pour supprimer le fichier.
     * @param bool $canGererFichier             Indique si l'utilisateur peut gérer le fichier.
@@ -23,31 +29,92 @@ class FichierViewHelper extends AbstractHelper
     * @param bool $seeHistoInfo                Indique si les informations concernant l'historique (Nom du créateur, date de création) doivent être affichées.
     * @param bool $canSeeSuppression           Indique si l'on peut voir le bouton pour supprimer le fichier.
     * @param bool $isTargetBlank               Indique si l'on veut que le lien de téléchargement soit ouvert dans un autre onglet
     * @param array $options                    Options supplémentaires pour le rendu.
     *
     * @return string                           Le rendu HTML du fichier.
     */
    public function __invoke(Fichier $object, string $urlTelechargementFichier, string $urlSuppressionFichier, bool $canGererFichier, string $libelleOptionnel = "", bool $seeHistoInfo = true, bool $canSeeSuppression = true, bool $isTargetBlank = false, array $options = [])
    public function __invoke(Fichier $fichier,
                             string $urlTelechargementFichier,
                             string $urlSuppressionFichier,
                             bool $canGererFichier = false,
                             string $libelleOptionnel = "",
                             bool $seeHistoInfo = true,
                             bool $canSeeSuppression = false,
                             bool $isTargetBlank = false,
    ): static
    {
        $this->setFichier($fichier);
        $this->setUrlTelechargementFichier($urlTelechargementFichier);
        $this->setUrlSuppressionFichier($urlSuppressionFichier);
        $this->setLibelleOptionnel($libelleOptionnel);
        $this->setCanGererFichier($canGererFichier);
        $this->setSeeHistoInfo($seeHistoInfo);
        $this->setCanSeeSuppression($canSeeSuppression);
        $this->setIsTargetBlank($isTargetBlank);

        return $this;
    }

    public function __toString()
    {
        /** @var PhpRenderer $view */
        $view = $this->getView();
        $view->resolver()->attach(new TemplatePathStack(['script_paths' => [__DIR__ . "/partial"]]));

        return $view->partial('fichier', [
            'fichier' => $object,
            'urlTelechargementFichier' => $urlTelechargementFichier,
            'urlSuppressionFichier' => $urlSuppressionFichier,
            'canGererFichier' => $canGererFichier,
            'libelleOptionnel' => $libelleOptionnel,
            'seeHistoInfo' => $seeHistoInfo,
            'canSeeSuppression' => $canSeeSuppression,
            'isTargetBlank' => $isTargetBlank,
            'options' => $options
            'fichier' => $this->fichier,
            'urlTelechargementFichier' => $this->urlTelechargementFichier,
            'urlSuppressionFichier' => $this->urlSuppressionFichier,
            'canGererFichier' => $this->canGererFichier,
            'libelleOptionnel' => $this->libelleOptionnel,
            'seeHistoInfo' => $this->seeHistoInfo,
            'canSeeSuppression' => $this->canSeeSuppression,
            'isTargetBlank' => $this->isTargetBlank,
        ]);
    }

    public function __toString()
    public function setFichier(Fichier $fichier): self
    {
        $this->fichier = $fichier;
        return $this;
    }

    public function setUrlTelechargementFichier(string $urlTelechargementFichier): self
    {
        $this->urlTelechargementFichier = $urlTelechargementFichier;
        return $this;
    }

    public function setUrlSuppressionFichier(string $urlSuppressionFichier): self
    {
        $this->urlSuppressionFichier = $urlSuppressionFichier;
        return $this;
    }

    public function setLibelleOptionnel(string $libelleOptionnel): self
    {
        $this->libelleOptionnel = $libelleOptionnel;
        return $this;
    }

    public function setCanGererFichier(bool $canGererFichier): self
    {
        $this->canGererFichier = $canGererFichier;
        return $this;
    }

    public function setSeeHistoInfo(bool $seeHistoInfo): self
    {
        $this->seeHistoInfo = $seeHistoInfo;
        return $this;
    }

    public function setCanSeeSuppression(bool $canSeeSuppression): self
    {
        $this->canSeeSuppression = $canSeeSuppression;
        return $this;
    }

    public function setIsTargetBlank(bool $isTargetBlank): self
    {
        return '<div>Fichier par défaut</div>';
        $this->isTargetBlank = $isTargetBlank;
        return $this;
    }
}
 No newline at end of file
+18 −14
Changes for module/Fichier/src/Fichier/View/Helper/Fichier/partial/fichier.phtml: 18 added lines, 14 removed lines.
Original line number Diff line number Diff line
<?php
/**
 * @see \Fichier\View\Helper\Fichier\FichierViewHelper
 *
 * @var Fichier $fichier
 * @var string $urlTelechargementFichier
 * @var string $urlSuppressionFichier
@@ -14,36 +15,39 @@
use Fichier\Entity\Db\Fichier;

?>
<div class="container mt-2 mb-2">
    <div class="card file-card shadow-sm p-2">
<div class="card file-card shadow-sm">
    <div class="d-flex align-items-center">
        <!-- Icone du fichier -->
            <div class="file-icon text-primary me-2">
        <div class="file-icon text-primary">
            <i class="fas fa-file-pdf fa-1x"></i>
        </div>
        <!-- Détails du fichier -->
        <div class="file-details flex-grow-1">
                <h6 class="mb-0"><?php echo $libelleOptionnel ?: $fichier->getNom();?></h6>
            <span class="file-name"><?php echo $libelleOptionnel ?: $fichier->getNom(); ?></span>
            <?php if ($seeHistoInfo): ?>
                    <small class="text-muted">
                        <?php echo $fichier->getHistoCreateur()->getDisplayName(); ?> - <?php echo $fichier->getHistoCreation()->format("d/m/Y à H:i"); ?>
                    </small>
                <span class="file-histo">
                    <?php echo $fichier->getHistoCreateur()->getDisplayName(); ?> -
                    <?php echo $fichier->getHistoCreation()->format(\Application\Constants::DATETIME_FORMAT); ?>
                </span>
            <?php endif; ?>
        </div>
        <!-- Boutons Actions -->
        <div class="file-actions">
                <a href="<?php echo $urlTelechargementFichier; ?>" <?= $isTargetBlank ? "target='_blank'" : "" ?>>
            <a href="<?php echo $urlTelechargementFichier; ?>" <?= $isTargetBlank ? "target='_blank'" : "" ?>
               title="Télécharger le fichier">
                <i class="fas fa-download"></i>
            </a>
            <?php if ($canGererFichier && $canSeeSuppression) : ?>
                    <a data-event="modification" data-toggle="confirmationx" data-message="Êtes-vous sûr de vouloir supprimer ce fichier ?" href="<?php echo $urlSuppressionFichier ?>">
                        <span style='color:darkred;'>
                            <span style='color:darkred;' class="icon icon-delete iconly"
                                  data-bs-toggle="tooltip" data-bs-html="true" title="Supprimer le fichier <br>(une confirmation vous sera demandée)"></span>
                        </span>
                <a data-event="modification"
                   data-toggle="confirmationx"
                   data-message="Êtes-vous sûr de vouloir supprimer ce fichier ?"
                   href="<?php echo $urlSuppressionFichier ?>">
                        <span class="icon icon-delete iconly text-danger"
                              data-bs-toggle="tooltip"
                              data-bs-html="true"
                              title="Supprimer le fichier <br>(une confirmation vous sera demandée)"></span>
                </a>
            <?php endif; ?>
        </div>
    </div>
</div>
 No newline at end of file
</div>
 No newline at end of file
+13 −7
Changes for public/css/admission.css: 13 added lines, 7 removed lines.
Original line number Diff line number Diff line
@@ -1019,22 +1019,28 @@ p.avis-complem {
    max-width: 900px; } }
/******************** Fichier (ViewHelper) **********************/
.file-card {
  padding: .2rem;
  border-radius: 6px;
  border: 1px solid rgba(0, 0, 0, 0.1);
  font-size: 0.875rem;
  width: 100%;
  max-width: 406px; }

.file-icon {
  font-size: 1.5rem;
  color: #337ab7 !important; }
  font-size: 120%;
  color: #337ab7;
  margin: 0 0.4rem 0 0.25rem; }

.file-details .file-name {
  font-weight: 400;
  margin-bottom: 0;
  margin-right: 0.25rem; }

.file-details h6 {
  margin-bottom: 0.25rem;
  font-size: 0.95rem; }
.file-histo {
  color: #6c757d;
  font-size: 80%; }

.file-actions {
  margin-left: 50px; }
  margin: 0 0.25rem 0 0.75rem; }

.file-actions .btn {
  padding: 0.25rem 0.5rem;
+1 −1

File changed.

Preview size limit exceeded, changes collapsed.

Loading