This repository has been archived on 2026-01-03. You can view files and clone it, but cannot push or open issues or pull requests.
Files
lions-user-manager/BOUTONS_FONCTIONNELS.md

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:commandButton avec outcome
  • 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
  • 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

⚠️ 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

  1. Tous les boutons de navigation utilisent outcome ou onclick approprié
  2. Tous les boutons d'actions AJAX ont process="@this"
  3. Pattern Freya respecté partout
  4. ⚠️ Vérifier users/edit.xhtml et créer le composant manquant
  5. ⚠️ Vérifier users/profile.xhtml complètement

Test des Boutons

Pour tester si un bouton est fonctionnel:

  1. Ouvrir la page dans le navigateur
  2. Ouvrir la console développeur (F12)
  3. Cliquer sur le bouton
  4. 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