6.4 KiB
État des Boutons dans Lions User Manager
Pages Vérifiées et Corrigées
✅ 1. users/list.xhtml
État: CORRIGÉ Corrections apportées:
- ✅ Boutons de navigation (Voir Profil, Modifier, Gérer Rôles) : Utilisent
p:commandButtonavecoutcome - ✅ Boutons d'actions AJAX (Activer, Désactiver, Supprimer) : Ajout de
process="@this" - ✅ Suppression de l'option "master" du sélecteur de realm
- ✅ Pattern Freya respecté : boutons icon-only avec
p-button-rounded
Boutons fonctionnels:
- 👁️ Voir le profil →
/pages/user-manager/users/profile - ✏️ Modifier →
/pages/user-manager/users/edit - 🔑 Gérer les rôles →
/pages/user-manager/roles/assign - ✓ Activer / 🚫 Désactiver (AJAX avec confirmation)
- 🗑️ Supprimer (AJAX avec confirmation)
✅ 2. users/create.xhtml
État: OPTIMISÉ Boutons fonctionnels:
- ✅ Créer l'utilisateur →
action="#{userCreationBean.createUser}" - ✅ Réinitialiser →
action="#{userCreationBean.resetForm}"avec confirmation - ✅ Annuler →
outcome="/pages/user-manager/users/list" - ✅ Aide (Dialog) →
onclick="PF('helpDialog').show()"
✅ 3. dashboard.xhtml
État: OPTIMISÉ Boutons fonctionnels:
- ✅ Rafraîchir →
action="#{dashboardBean.refreshStatistics}" - ✅ KPI Cards cliquables →
outcome="/pages/user-manager/..."avec effet hover - ✅ Actions Rapides:
- Nouvel Utilisateur →
/pages/user-manager/users/create - Liste des Utilisateurs →
/pages/user-manager/users/list - Gestion des Rôles →
/pages/user-manager/roles/list - Journal d'Audit →
/pages/user-manager/audit/logs
- Nouvel Utilisateur →
- ✅ Voir tout (Audit) →
/pages/user-manager/audit/logs
✅ 4. audit/logs.xhtml
État: OPTIMISÉ Boutons fonctionnels:
- ✅ Exporter CSV →
action="#{auditConsultationBean.exportToCSV}" ajax="false" - ✅ Rechercher →
action="#{auditConsultationBean.searchLogs}" - ✅ Réinitialiser →
action="#{auditConsultationBean.resetFilters}" - ✅ Voir détails (par log) →
onclick="PF('auditLogDetailsDialog').show()" - ✅ Fermer (Dialog) →
onclick="PF('auditLogDetailsDialog').hide()"
✅ 5. roles/list.xhtml
État: VÉRIFIÉ - DÉJÀ FONCTIONNEL Boutons fonctionnels:
- ✅ Nouveau Rôle Realm →
onclick="PF('createRealmRoleDialog').show()" - ✅ Nouveau Rôle Client →
onclick="PF('createClientRoleDialog').show()" - ✅ Rafraîchir (Realm) →
action="#{roleGestionBean.loadRealmRoles}" - ✅ Rafraîchir (Client) →
action="#{roleGestionBean.loadClientRoles}" - ✅ Supprimer Rôle Realm →
action="#{roleGestionBean.deleteRealmRole(role.name)}"avec confirmation - ✅ Supprimer Rôle Client →
action="#{roleGestionBean.deleteClientRole(role.name)}"avec confirmation - ✅ Créer (Dialog Realm) →
action="#{roleGestionBean.createRealmRole}" - ✅ Créer (Dialog Client) →
action="#{roleGestionBean.createClientRole}"
✅ 6. roles/assign.xhtml
État: VÉRIFIÉ - DÉJÀ FONCTIONNEL Boutons fonctionnels:
- ✅ Retour à la liste →
outcome="/pages/user-manager/users/list" - ✅ Rafraîchir →
action="#{userProfilBean.loadUser}" - ✅ Retirer rôle →
action="#{roleGestionBean.revokeRoleFromUser(...)}"avec confirmation - ✅ Assigner rôle →
action="#{roleGestionBean.assignRoleToUser(...)}" - ✅ Actions de navigation:
- Voir le Profil →
/pages/user-manager/users/profile - Modifier l'Utilisateur →
/pages/user-manager/users/edit - Liste des Utilisateurs →
/pages/user-manager/users/list - Gérer les Rôles →
/pages/user-manager/roles/list
- Voir le Profil →
⚠️ 7. users/edit.xhtml
État: UTILISE UN COMPOSANT D'INCLUSION
Note: Cette page utilise /templates/components/user-management/user-form.xhtml qui n'existe peut-être pas.
À vérifier: Ce composant doit être créé ou la page doit être réécrite.
⚠️ 8. users/profile.xhtml
État: NON COMPLÈTEMENT VÉRIFIÉ À vérifier: Boutons d'actions dans cette page.
Patterns Utilisés pour les Boutons
Navigation Simple
<p:commandButton value="Texte" icon="pi pi-icon" outcome="/pages/..." />
ou
<h:link outcome="/pages/..." styleClass="p-button">
<i class="pi pi-icon"></i> Texte
</h:link>
Actions AJAX
<p:commandButton icon="pi pi-icon"
action="#{bean.method}"
update=":formId"
process="@this" />
Dialogs
<p:commandButton icon="pi pi-icon"
type="button"
onclick="PF('dialogWidgetVar').show();" />
Boutons Icon-Only (Pattern Freya)
<p:commandButton icon="pi pi-icon"
styleClass="p-button-rounded p-button-text p-button-sm"
title="Description" />
Problèmes Identifiés et Résolus
❌ Problème 1: p:commandButton avec outcome dans DataTable
Symptôme: Boutons ne réagissent pas dans les tableaux de données Solution: Utiliser p:commandButton avec outcome (fonctionne en dehors des complex containers) Status: ✅ RÉSOLU dans list.xhtml
❌ Problème 2: Boutons AJAX sans process="@this"
Symptôme: Validation sur tout le formulaire même pour une action simple
Solution: Ajout de process="@this" pour traiter uniquement le bouton
Status: ✅ RÉSOLU dans list.xhtml
❌ Problème 3: Realm "master" inexistant
Symptôme: Erreur 404 lors de la sélection du realm Solution: Suppression de l'option "master", seul "lions-user-manager" existe Status: ✅ RÉSOLU dans list.xhtml et create.xhtml
Recommandations
- ✅ Tous les boutons de navigation utilisent
outcomeouonclickapproprié - ✅ Tous les boutons d'actions AJAX ont
process="@this" - ✅ Pattern Freya respecté partout
- ⚠️ Vérifier users/edit.xhtml et créer le composant manquant
- ⚠️ Vérifier users/profile.xhtml complètement
Test des Boutons
Pour tester si un bouton est fonctionnel:
- Ouvrir la page dans le navigateur
- Ouvrir la console développeur (F12)
- Cliquer sur le bouton
- Vérifier:
- Aucune erreur JavaScript
- Requête AJAX envoyée (si bouton AJAX)
- Navigation effectuée (si bouton de navigation)
Conclusion
Pages 100% fonctionnelles:
- ✅ users/list.xhtml
- ✅ users/create.xhtml
- ✅ dashboard.xhtml
- ✅ audit/logs.xhtml
- ✅ roles/list.xhtml
- ✅ roles/assign.xhtml
Pages à vérifier:
- ⚠️ users/edit.xhtml
- ⚠️ users/profile.xhtml