From 515cc4fc7880fe3445eae2fb0890c82ed724a0af Mon Sep 17 00:00:00 2001
From: Jean-Philippe Metivier <jean-philippe.metivier@unicaen.fr>
Date: Fri, 5 May 2023 16:42:20 +0200
Subject: [PATCH] =?UTF-8?q?Correction=20bug=20d'affichage=20sur=20le=20tab?=
 =?UTF-8?q?leau=20d'affectation=20lorsque=20deux=20cat=C3=A9gories=20poss?=
 =?UTF-8?q?=C3=A8dent=20le=20m=C3=AAme=20libell=C3=A9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 CHANGELOG.md                                         |  4 ++++
 config/merged/privilege.config.php                   |  1 +
 .../Service/Privilege/PrivilegeService.php           |  2 +-
 .../View/Privilege/PrivilegeViewHelper.php           |  3 ++-
 view/unicaen-privilege/privilege/index.phtml         | 12 ++++++------
 5 files changed, 14 insertions(+), 8 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 4093f68..82a6243 100755
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -6,3 +6,7 @@ Journal des modifications
 - Mise en place du changelog
 - Réintégration de l'AssertionFactory, à utiliser pour les assertions
 - [Fix] erreur ns \InvalidArgumentException : \ ajouté
+
+5.0.7 (05/05/2023)
+-----
+- Correction bug d'affichage sur le tableau d'affectation lorsque deux catégories possèdent le même libellé
diff --git a/config/merged/privilege.config.php b/config/merged/privilege.config.php
index 3d1a1c0..c274038 100644
--- a/config/merged/privilege.config.php
+++ b/config/merged/privilege.config.php
@@ -120,6 +120,7 @@ return [
                 'options' => [
                     'route' => '/privilege',
                     'defaults' => [
+                        /** @see PrivilegeController::indexAction() */
                         'controller' => PrivilegeController::class,
                         'action' => 'index',
                     ],
diff --git a/src/UnicaenPrivilege/Service/Privilege/PrivilegeService.php b/src/UnicaenPrivilege/Service/Privilege/PrivilegeService.php
index 9963f05..47d6f26 100644
--- a/src/UnicaenPrivilege/Service/Privilege/PrivilegeService.php
+++ b/src/UnicaenPrivilege/Service/Privilege/PrivilegeService.php
@@ -147,7 +147,7 @@ class PrivilegeService extends CommonService implements PrivilegeProviderInterfa
         foreach ($categories as $c) {
             $privileges = $this->findByCategorie($c);
             if(count($privileges) > 0) {
-                $privilegesByCategorie[$c->getLibelle()] = $privileges;
+                $privilegesByCategorie[$c->getId()] = $privileges;
             }
         }
 
diff --git a/src/UnicaenPrivilege/View/Privilege/PrivilegeViewHelper.php b/src/UnicaenPrivilege/View/Privilege/PrivilegeViewHelper.php
index 803dc93..0c6ea8e 100644
--- a/src/UnicaenPrivilege/View/Privilege/PrivilegeViewHelper.php
+++ b/src/UnicaenPrivilege/View/Privilege/PrivilegeViewHelper.php
@@ -90,9 +90,10 @@ class PrivilegeViewHelper extends AbstractHelper
     public function renderStatut($role)
     {
         $check = $this->privilege->hasRole($role);
-        $html = '<td class="role-privilege-statut text-center %s" style="border-right: 1px solid #ddd;">%s</td>';
+        $html = '<td class="role-privilege-statut text-center %s" style="border-right: 1px solid #ddd;" title="%s">%s</td>';
         return sprintf($html,
             $check ? 'success' : 'danger',
+            ($check? 'Ajouter' : 'Retirer') . " le privilège [".$this->privilege->getCategorie()->getLibelle()."|".$this->privilege->getLibelle()."] au rôle [".$role->getLibelle()."]",
             $check ? $this->renderLienSupprimer($role) : $this->renderLienAjouter($role)
         );
     }
diff --git a/view/unicaen-privilege/privilege/index.phtml b/view/unicaen-privilege/privilege/index.phtml
index ce7d00e..e91574b 100644
--- a/view/unicaen-privilege/privilege/index.phtml
+++ b/view/unicaen-privilege/privilege/index.phtml
@@ -1,9 +1,8 @@
 <?php
 
-use UnicaenAuth\Entity\Db\RoleInterface;
 use UnicaenPrivilege\Entity\Db\PrivilegeInterface;
 use UnicaenPrivilege\Form\Privilege\CategorieFiltreForm;
-use UnicaenPrivilege\Provider\Privilege\PrivilegePrivileges;
+use UnicaenUtilisateur\Entity\Db\RoleInterface;
 
 /**
  * @var RoleInterface[] $roles
@@ -89,11 +88,12 @@ $this->headTitle("Gestion des privilèges");
             </tr>
             </thead>
             <tbody>
-            <?php foreach ($privilegesByCategorie as $libelleCategorie => $privileges) : ?>
+            <?php foreach ($privilegesByCategorie as $categorieId => $privileges) : ?>
                 <tr>
-                    <th id="<?php echo current($privileges)->getCategorie()->getId(); ?>" class="categorie"
-                        colspan="<?php echo 1 + count($roles); ?>"><?php echo $libelleCategorie; ?> <i
-                                class="fas fa-caret-square-down text-muted"></i></th>
+                    <th id="<?php echo $categorieId; ?>" class="categorie" colspan="<?php echo 1 + count($roles); ?>">
+                        <?php echo current($privileges)->getCategorie()->getLibelle(); ?>
+                        <i class="fas fa-caret-square-down text-muted"></i>
+                    </th>
                 </tr>
                 <?php /** @var PrivilegeInterface $privilege */ ?>
                 <?php foreach ($privileges as $privilege) : ?>
-- 
GitLab