Commit c03cce06 authored by Bertrand Gauthier's avatar Bertrand Gauthier
Browse files

FichierViewHelper : plus qu'un seul argument dans __invoke() donc utilisation...

FichierViewHelper : plus qu'un seul argument dans __invoke() donc utilisation des setters ; cosmétique pour le nom du fichier.
parent 898ef451
Loading
Loading
Loading
Loading
+1 −0
Changes for CHANGELOG.md: 1 added line, 0 removed lines.
Original line number Diff line number Diff line
@@ -8,6 +8,7 @@ Journal des modifications
- 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.
- FichierViewHelper : plus qu'un seul argument dans __invoke() donc utilisation des setters ; cosmétique pour le nom du fichier.
- [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.
+1 −1
Changes for module/Application/src/Application/View/Renderer/PhpRenderer.php: 1 added line, 1 removed line.
Original line number Diff line number Diff line
@@ -187,7 +187,7 @@ use Validation\View\Helper\ValidationTheseViewHelper;
 * @method \DiplomationThese\View\Helper\EtatViewHelper diplomationTheseEtat(?DiplomationTheseEtat $etat = null)
 *
 * @method ActualiteViewHelper actualite()
 * @method FichierViewHelper fichier(Fichier $object, string $urlTelechargementFichier, string $urlSuppressionFichier, bool $canGererFichier, string $libelleOptionnel = "", bool $voirHistoInfo = true, bool $canVoirSuppression = true, bool $isTargetBlank = false, array $options = [])
 * @method FichierViewHelper fichier(Fichier $object)
 * @method SousCompetenceViewHelper sousCompetences(SousCompetence[] $object, array $options = [])
 * @method EtatViewHelper etatHelper(mixed $etat = null, int|null $resultat = null, string|null $resultatString = "", $options = [])
 * @method MissionEnseignementViewHelper missionEnseignement(MissionEnseignement $missionEnseignement, These $these, $options = [])
+40 −39
Changes for module/Fichier/src/Fichier/View/Helper/Fichier/FichierViewHelper.php: 40 added lines, 39 removed lines.
Original line number Diff line number Diff line
@@ -5,50 +5,27 @@ namespace Fichier\View\Helper\Fichier;
use Application\View\Renderer\PhpRenderer;
use Fichier\Entity\Db\Fichier;
use Laminas\View\Helper\AbstractHelper;
use Laminas\View\Resolver\TemplatePathStack;
use Laminas\View\Resolver\TemplateMapResolver;

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

    /**
     * Génère la représentation d'un fichier dans la vue.
     * Génère la représentation d'un fichier dans une vue.
     *
     * @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.
     * @param string $libelleOptionnel          Un libellé optionnel à afficher (à la place du nom du fichier).
     * @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
     */
    public function __invoke(Fichier $fichier,
                             string $urlTelechargementFichier,
                             string $urlSuppressionFichier,
                             bool $canGererFichier = false,
                             string $libelleOptionnel = "",
                             bool $seeHistoInfo = true,
                             bool $canSeeSuppression = false,
                             bool $isTargetBlank = false,
    ): static
    public function __invoke(Fichier $fichier): 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;
    }

@@ -56,62 +33,86 @@ class FichierViewHelper extends AbstractHelper
    {
        /** @var PhpRenderer $view */
        $view = $this->getView();
        $view->resolver()->attach(new TemplatePathStack(['script_paths' => [__DIR__ . "/partial"]]));
        $view->resolver()->attach(new TemplateMapResolver(['fichier_view_helper_partial' => __DIR__ . "/partial/fichier.phtml"]));

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

    /**
     * Spécifie L'entité Fichier concernée.
     */
    public function setFichier(Fichier $fichier): self
    {
        $this->fichier = $fichier;
        return $this;
    }

    /**
     * Spécifie L'URL pour accéder au fichier.
     */
    public function setUrlTelechargementFichier(string $urlTelechargementFichier): self
    {
        $this->urlTelechargementFichier = $urlTelechargementFichier;
        return $this;
    }

    /**
     * Spécifie L'URL pour supprimer le fichier.
     */
    public function setUrlSuppressionFichier(string $urlSuppressionFichier): self
    {
        $this->urlSuppressionFichier = $urlSuppressionFichier;
        return $this;
    }

    /**
     * Spécifie Un libellé optionnel à afficher (à la place du nom du fichier).
     */
    public function setLibelleOptionnel(string $libelleOptionnel): self
    {
        $this->libelleOptionnel = $libelleOptionnel;
        return $this;
    }

    /**
     * Spécifie si l'utilisateur peut gérer le fichier.
     */
    public function setCanGererFichier(bool $canGererFichier): self
    {
        $this->canGererFichier = $canGererFichier;
        return $this;
    }

    public function setSeeHistoInfo(bool $seeHistoInfo): self
    /**
     * Spécifie si les informations concernant l'historique (Nom du créateur, date de création) doivent être affichées.
     */
    public function setShowHistoInfo(bool $showHistoInfo): self
    {
        $this->seeHistoInfo = $seeHistoInfo;
        $this->showHistoInfo = $showHistoInfo;
        return $this;
    }

    public function setCanSeeSuppression(bool $canSeeSuppression): self
    /**
     * Spécifie si l'on peut voir le bouton pour supprimer le fichier.
     */
    public function setShowSuppression(bool $showSuppression): self
    {
        $this->canSeeSuppression = $canSeeSuppression;
        $this->showSuppression = $showSuppression;
        return $this;
    }

    /**
     * Spécifie si l'on veut que le lien de téléchargement soit ouvert dans un autre onglet
     */
    public function setIsTargetBlank(bool $isTargetBlank): self
    {
        $this->isTargetBlank = $isTargetBlank;
+29 −20
Changes for module/Fichier/src/Fichier/View/Helper/Fichier/partial/fichier.phtml: 29 added lines, 20 removed lines.
Original line number Diff line number Diff line
@@ -7,47 +7,56 @@
 * @var string $urlSuppressionFichier
 * @var bool $canGererFichier
 * @var string $libelleOptionnel
 * @var bool $seeHistoInfo
 * @var bool $canSeeSuppression
 * @var bool $showHistoInfo
 * @var bool $showSuppression
 * @var bool $isTargetBlank
 */

use Fichier\Entity\Db\Fichier;

?>

<?php $this->placeholder('actions')->captureStart(); ?>
<?php if ($urlTelechargementFichier) : ?>
    <a href="<?php echo $urlTelechargementFichier; ?>" <?= $isTargetBlank ? "target='_blank'" : "" ?>
       title="Télécharger le fichier">
        <i class="fas fa-download"></i>
    </a>
<?php endif; ?>
<?php if ($canGererFichier && $showSuppression) : ?>
    <a data-event="modification"
       data-toggle="confirmationx"
       data-message="Êtes-vous sûr·e 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"></span>
    </a>
<?php endif; ?>
<?php $this->placeholder('actions')->captureEnd(); ?>

<div class="card file-card shadow-sm">
    <div class="d-flex align-items-center">
        <!-- Icone du fichier -->
        <div class="file-icon text-primary">
            <i class="fas fa-file-pdf fa-1x"></i>
            <i class="fas fa-file"></i>
        </div>
        <!-- Détails du fichier -->
        <div class="file-details flex-grow-1">
            <span class="file-name"><?php echo $libelleOptionnel ?: $fichier->getNom(); ?></span>
            <?php if ($seeHistoInfo): ?>
            <?php if ($showHistoInfo): ?>
                <span class="file-histo">
                    <?php echo $fichier->getHistoCreateur()->getDisplayName(); ?> -
                    <?php echo $fichier->getHistoCreateur()->getDisplayName(); ?>, le
                    <?php echo $fichier->getHistoCreation()->format(\Application\Constants::DATETIME_FORMAT); ?>
                </span>
            <?php endif; ?>
        </div>
        <!-- Boutons Actions -->
        <?php if ($actionsContent = trim((string)$this->placeholder('actions'))): ?>
            <div class="file-actions">
            <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 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; ?>
                <?= $actionsContent ?>
            </div>
        <?php endif; ?>
    </div>
</div>
 No newline at end of file
+8 −9
Changes for module/Formation/view/formation/formation-externe/modifier.phtml: 8 added lines, 9 removed lines.
Original line number Diff line number Diff line
@@ -32,15 +32,14 @@ echo $this->form()->openTag($form);
    <div class="row mb-3">
        <div class="col">
            Attestation existante <span class='icon icon-obligatoire' style='color: darkred;font-size: 0.8em;' data-bs-toggle='tooltip' title='Obligatoire'></span> :
            <?php echo $this->fichier($object->getAttestation(),
                $this->url('formation/formation/telecharger-attestation-formation-externe', ["formationExterne"=> $object->getId()],[], true),
"",
                $canModifierFormation,
                "Attestation de suivi de la formation",
                true,
                true,
                true
            ); ?>
            <?php echo $this->fichier($object->getAttestation())
                    ->setUrlTelechargementFichier($this->url('formation/formation/telecharger-attestation-formation-externe', ["formationExterne"=> $object->getId()],[], true))
                    ->setUrlSuppressionFichier("")
                    ->setCanGererFichier($canModifierFormation)
                    ->setLibelleOptionnel("Attestation de suivi de la formation")
                    ->setShowHistoInfo(true)
                    ->setShowSuppression(true)
                    ->setIsTargetBlank(true); ?>
        </div>

    </div>
Loading