Update - Lions User Manager - Client (Quarkus PrimeFaces Freya)
This commit is contained in:
399
target/classes/META-INF/resources/templates/components/README.md
Normal file
399
target/classes/META-INF/resources/templates/components/README.md
Normal file
@@ -0,0 +1,399 @@
|
||||
# 📦 Composants Réutilisables - Lions User Manager
|
||||
|
||||
**Version**: 1.0.0
|
||||
**Date**: 2025-01-29
|
||||
**Pattern**: WOU/DRY (Write Once Use / Don't Repeat Yourself)
|
||||
|
||||
---
|
||||
|
||||
## 🎯 Vue d'Ensemble
|
||||
|
||||
Ce répertoire contient tous les composants UI réutilisables pour le module **lions-user-manager**. Ces composants suivent les patterns établis dans **unionflow** et peuvent être utilisés dans n'importe quel projet de l'écosystème **lionsdev**.
|
||||
|
||||
---
|
||||
|
||||
## 📂 Structure des Composants
|
||||
|
||||
```
|
||||
templates/components/
|
||||
├── user-management/ # Composants spécifiques utilisateurs
|
||||
│ ├── user-card.xhtml
|
||||
│ ├── user-form.xhtml
|
||||
│ ├── user-search-bar.xhtml
|
||||
│ ├── user-actions.xhtml
|
||||
│ └── user-role-badge.xhtml
|
||||
├── role-management/ # Composants spécifiques rôles
|
||||
│ ├── role-card.xhtml
|
||||
│ ├── role-form.xhtml
|
||||
│ └── role-assignment.xhtml
|
||||
├── audit/ # Composants audit
|
||||
│ ├── audit-log-row.xhtml
|
||||
│ └── audit-stats-card.xhtml
|
||||
└── shared/ # Composants génériques réutilisables
|
||||
├── buttons/
|
||||
│ └── button-user-action.xhtml
|
||||
├── cards/
|
||||
│ └── user-stat-card.xhtml
|
||||
├── forms/
|
||||
│ └── user-form-field.xhtml
|
||||
└── tables/
|
||||
└── user-data-table.xhtml
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📋 Liste Complète des Composants
|
||||
|
||||
### 👤 User Management (5 composants)
|
||||
|
||||
#### 1. `user-card.xhtml`
|
||||
**Description**: Carte utilisateur avec informations principales et actions
|
||||
|
||||
**Paramètres principaux**:
|
||||
- `user`: UserDTO (requis)
|
||||
- `showActions`: Boolean (défaut: true)
|
||||
- `showRoles`: Boolean (défaut: true)
|
||||
- `clickable`: Boolean (défaut: true)
|
||||
- `outcome`: String (optionnel)
|
||||
|
||||
**Exemple**:
|
||||
```xhtml
|
||||
<ui:include src="/templates/components/user-management/user-card.xhtml">
|
||||
<ui:param name="user" value="#{userBean.selectedUser}" />
|
||||
<ui:param name="showActions" value="true" />
|
||||
</ui:include>
|
||||
```
|
||||
|
||||
#### 2. `user-form.xhtml`
|
||||
**Description**: Formulaire complet pour créer/modifier un utilisateur
|
||||
|
||||
**Paramètres principaux**:
|
||||
- `user`: UserDTO (requis)
|
||||
- `mode`: String (défaut: "create") - "create" ou "edit"
|
||||
- `showRealmSelector`: Boolean (défaut: false)
|
||||
- `showPasswordFields`: Boolean (défaut: true)
|
||||
- `readonly`: Boolean (défaut: false)
|
||||
|
||||
**Exemple**:
|
||||
```xhtml
|
||||
<ui:include src="/templates/components/user-management/user-form.xhtml">
|
||||
<ui:param name="user" value="#{userBean.newUser}" />
|
||||
<ui:param name="mode" value="create" />
|
||||
<ui:param name="submitAction" value="#{userBean.createUser}" />
|
||||
</ui:include>
|
||||
```
|
||||
|
||||
#### 3. `user-search-bar.xhtml`
|
||||
**Description**: Barre de recherche avancée pour utilisateurs
|
||||
|
||||
**Paramètres principaux**:
|
||||
- `searchCriteria`: UserSearchCriteriaDTO (requis)
|
||||
- `searchAction`: String (requis)
|
||||
- `showAdvanced`: Boolean (défaut: false)
|
||||
- `showRealmFilter`: Boolean (défaut: true)
|
||||
- `showStatusFilter`: Boolean (défaut: true)
|
||||
|
||||
**Exemple**:
|
||||
```xhtml
|
||||
<ui:include src="/templates/components/user-management/user-search-bar.xhtml">
|
||||
<ui:param name="searchCriteria" value="#{userBean.searchCriteria}" />
|
||||
<ui:param name="searchAction" value="#{userBean.search}" />
|
||||
<ui:param name="update" value="userTable" />
|
||||
</ui:include>
|
||||
```
|
||||
|
||||
#### 4. `user-actions.xhtml`
|
||||
**Description**: Boutons d'action pour un utilisateur
|
||||
|
||||
**Paramètres principaux**:
|
||||
- `user`: UserDTO (requis)
|
||||
- `showView`: Boolean (défaut: true)
|
||||
- `showEdit`: Boolean (défaut: true)
|
||||
- `showDelete`: Boolean (défaut: true)
|
||||
- `showActivate`: Boolean (défaut: true)
|
||||
- `layout`: String (défaut: "horizontal") - "horizontal", "vertical" ou "dropdown"
|
||||
|
||||
**Exemple**:
|
||||
```xhtml
|
||||
<ui:include src="/templates/components/user-management/user-actions.xhtml">
|
||||
<ui:param name="user" value="#{user}" />
|
||||
<ui:param name="layout" value="dropdown" />
|
||||
<ui:param name="update" value="userTable" />
|
||||
</ui:include>
|
||||
```
|
||||
|
||||
#### 5. `user-role-badge.xhtml`
|
||||
**Description**: Badge pour un rôle utilisateur
|
||||
|
||||
**Paramètres principaux**:
|
||||
- `roleName`: String (requis)
|
||||
- `roleType`: String (optionnel) - "REALM_ROLE", "CLIENT_ROLE", "COMPOSITE_ROLE"
|
||||
- `severity`: String (optionnel) - "success", "info", "warning", "danger"
|
||||
- `clickable`: Boolean (défaut: false)
|
||||
|
||||
**Exemple**:
|
||||
```xhtml
|
||||
<ui:include src="/templates/components/user-management/user-role-badge.xhtml">
|
||||
<ui:param name="roleName" value="ADMIN" />
|
||||
<ui:param name="roleType" value="REALM_ROLE" />
|
||||
</ui:include>
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 🛡️ Role Management (3 composants)
|
||||
|
||||
#### 6. `role-card.xhtml`
|
||||
**Description**: Carte rôle avec informations principales
|
||||
|
||||
**Paramètres principaux**:
|
||||
- `role`: RoleDTO (requis)
|
||||
- `showActions`: Boolean (défaut: true)
|
||||
- `showDescription`: Boolean (défaut: true)
|
||||
- `showCompositeInfo`: Boolean (défaut: true)
|
||||
|
||||
**Exemple**:
|
||||
```xhtml
|
||||
<ui:include src="/templates/components/role-management/role-card.xhtml">
|
||||
<ui:param name="role" value="#{roleBean.selectedRole}" />
|
||||
</ui:include>
|
||||
```
|
||||
|
||||
#### 7. `role-form.xhtml`
|
||||
**Description**: Formulaire pour créer/modifier un rôle
|
||||
|
||||
**Paramètres principaux**:
|
||||
- `role`: RoleDTO (requis)
|
||||
- `mode`: String (défaut: "create")
|
||||
- `showRealmSelector`: Boolean (défaut: true)
|
||||
- `showClientSelector`: Boolean (défaut: false)
|
||||
- `showCompositeOptions`: Boolean (défaut: true)
|
||||
|
||||
**Exemple**:
|
||||
```xhtml
|
||||
<ui:include src="/templates/components/role-management/role-form.xhtml">
|
||||
<ui:param name="role" value="#{roleBean.newRole}" />
|
||||
<ui:param name="mode" value="create" />
|
||||
<ui:param name="submitAction" value="#{roleBean.createRole}" />
|
||||
</ui:include>
|
||||
```
|
||||
|
||||
#### 8. `role-assignment.xhtml`
|
||||
**Description**: Interface pour attribuer/révoquer des rôles
|
||||
|
||||
**Paramètres principaux**:
|
||||
- `user`: UserDTO (requis)
|
||||
- `availableRoles`: List<RoleDTO> (requis)
|
||||
- `userRoles`: List<RoleDTO> (requis)
|
||||
- `assignAction`: String (requis)
|
||||
- `revokeAction`: String (requis)
|
||||
|
||||
**Exemple**:
|
||||
```xhtml
|
||||
<ui:include src="/templates/components/role-management/role-assignment.xhtml">
|
||||
<ui:param name="user" value="#{userBean.selectedUser}" />
|
||||
<ui:param name="availableRoles" value="#{roleBean.availableRoles}" />
|
||||
<ui:param name="userRoles" value="#{userBean.userRoles}" />
|
||||
<ui:param name="assignAction" value="#{roleBean.assignRole}" />
|
||||
<ui:param name="revokeAction" value="#{roleBean.revokeRole}" />
|
||||
</ui:include>
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 📊 Audit (2 composants)
|
||||
|
||||
#### 9. `audit-log-row.xhtml`
|
||||
**Description**: Ligne de log d'audit avec informations détaillées
|
||||
|
||||
**Paramètres principaux**:
|
||||
- `auditLog`: AuditLogDTO (requis)
|
||||
- `showDetails`: Boolean (défaut: false)
|
||||
- `showActions`: Boolean (défaut: false)
|
||||
- `compact`: Boolean (défaut: false)
|
||||
|
||||
**Exemple**:
|
||||
```xhtml
|
||||
<ui:include src="/templates/components/audit/audit-log-row.xhtml">
|
||||
<ui:param name="auditLog" value="#{log}" />
|
||||
<ui:param name="showDetails" value="true" />
|
||||
</ui:include>
|
||||
```
|
||||
|
||||
#### 10. `audit-stats-card.xhtml`
|
||||
**Description**: Carte statistiques d'audit
|
||||
|
||||
**Paramètres principaux**:
|
||||
- `title`: String (requis)
|
||||
- `value`: Number (requis)
|
||||
- `icon`: String (requis)
|
||||
- `iconColor`: String (requis)
|
||||
- `trend`: Number (optionnel)
|
||||
- `trendLabel`: String (optionnel)
|
||||
|
||||
**Exemple**:
|
||||
```xhtml
|
||||
<ui:include src="/templates/components/audit/audit-stats-card.xhtml">
|
||||
<ui:param name="title" value="Total Actions" />
|
||||
<ui:param name="value" value="#{auditBean.totalActions}" />
|
||||
<ui:param name="icon" value="pi-history" />
|
||||
<ui:param name="iconColor" value="blue-600" />
|
||||
</ui:include>
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 🔧 Shared Components (4 composants)
|
||||
|
||||
#### 11. `button-user-action.xhtml`
|
||||
**Description**: Bouton générique pour actions utilisateur
|
||||
|
||||
**Paramètres principaux**:
|
||||
- `value`: String (requis)
|
||||
- `icon`: String (optionnel)
|
||||
- `action`: String (optionnel)
|
||||
- `outcome`: String (optionnel)
|
||||
- `severity`: String (défaut: "primary")
|
||||
- `size`: String (défaut: "normal")
|
||||
|
||||
**Exemple**:
|
||||
```xhtml
|
||||
<ui:include src="/templates/components/shared/buttons/button-user-action.xhtml">
|
||||
<ui:param name="value" value="Créer Utilisateur" />
|
||||
<ui:param name="icon" value="pi-user-plus" />
|
||||
<ui:param name="action" value="#{userBean.createUser}" />
|
||||
</ui:include>
|
||||
```
|
||||
|
||||
#### 12. `user-stat-card.xhtml`
|
||||
**Description**: Carte statistique utilisateur
|
||||
|
||||
**Paramètres principaux**:
|
||||
- `title`: String (requis)
|
||||
- `value`: String/Number (requis)
|
||||
- `icon`: String (requis)
|
||||
- `iconColor`: String (requis)
|
||||
- `trend`: Number (optionnel)
|
||||
- `clickable`: Boolean (défaut: false)
|
||||
|
||||
**Exemple**:
|
||||
```xhtml
|
||||
<ui:include src="/templates/components/shared/cards/user-stat-card.xhtml">
|
||||
<ui:param name="title" value="Total Utilisateurs" />
|
||||
<ui:param name="value" value="#{userBean.totalUsers}" />
|
||||
<ui:param name="icon" value="pi-users" />
|
||||
<ui:param name="iconColor" value="blue-600" />
|
||||
</ui:include>
|
||||
```
|
||||
|
||||
#### 13. `user-form-field.xhtml`
|
||||
**Description**: Champ de formulaire générique
|
||||
|
||||
**Paramètres principaux**:
|
||||
- `id`: String (requis)
|
||||
- `label`: String (requis)
|
||||
- `value`: Object (requis)
|
||||
- `type`: String (défaut: "text") - "text", "email", "password", "number", "textarea", "select", "checkbox", "calendar"
|
||||
- `required`: Boolean (défaut: false)
|
||||
- `readonly`: Boolean (défaut: false)
|
||||
|
||||
**Exemple**:
|
||||
```xhtml
|
||||
<ui:include src="/templates/components/shared/forms/user-form-field.xhtml">
|
||||
<ui:param name="id" value="username" />
|
||||
<ui:param name="label" value="Nom d'utilisateur" />
|
||||
<ui:param name="value" value="#{user.username}" />
|
||||
<ui:param name="required" value="true" />
|
||||
</ui:include>
|
||||
```
|
||||
|
||||
#### 14. `user-data-table.xhtml`
|
||||
**Description**: Tableau de données pour utilisateurs
|
||||
|
||||
**Paramètres principaux**:
|
||||
- `users`: List<UserDTO> (requis)
|
||||
- `var`: String (défaut: "user")
|
||||
- `paginator`: Boolean (défaut: true)
|
||||
- `rows`: Number (défaut: 20)
|
||||
- `showActions`: Boolean (défaut: true)
|
||||
- `showRoles`: Boolean (défaut: true)
|
||||
- `showSelection`: Boolean (défaut: false)
|
||||
|
||||
**Exemple**:
|
||||
```xhtml
|
||||
<ui:include src="/templates/components/shared/tables/user-data-table.xhtml">
|
||||
<ui:param name="users" value="#{userBean.users}" />
|
||||
<ui:param name="update" value="userTable" />
|
||||
</ui:include>
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🎨 Patterns et Conventions
|
||||
|
||||
### Documentation Inline
|
||||
Chaque composant contient une documentation complète en commentaire avec:
|
||||
- Description du composant
|
||||
- Liste des paramètres avec types et valeurs par défaut
|
||||
- Exemples d'utilisation
|
||||
|
||||
### Paramètres Optionnels
|
||||
Tous les paramètres optionnels ont des valeurs par défaut définies avec `<c:set>`.
|
||||
|
||||
### Pattern WOU/DRY
|
||||
- **Write Once Use**: Chaque composant est écrit une fois et réutilisé partout
|
||||
- **Don't Repeat Yourself**: Pas de duplication de code
|
||||
|
||||
### Naming Convention
|
||||
- Noms de fichiers en `kebab-case`
|
||||
- Paramètres en `camelCase`
|
||||
- IDs de composants avec préfixe cohérent
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Utilisation dans d'Autres Projets
|
||||
|
||||
Ces composants peuvent être utilisés dans n'importe quel projet de l'écosystème **lionsdev** en ajoutant la dépendance Maven:
|
||||
|
||||
```xml
|
||||
<dependency>
|
||||
<groupId>dev.lions.user.manager</groupId>
|
||||
<artifactId>lions-user-manager-client-quarkus-primefaces-freya</artifactId>
|
||||
<version>1.0.0</version>
|
||||
</dependency>
|
||||
```
|
||||
|
||||
Puis inclure les composants dans vos pages XHTML:
|
||||
|
||||
```xhtml
|
||||
<ui:include src="/templates/components/user-management/user-card.xhtml">
|
||||
<ui:param name="user" value="#{userBean.selectedUser}" />
|
||||
</ui:include>
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📝 Notes Importantes
|
||||
|
||||
1. **Dépendances**: Tous les composants nécessitent PrimeFaces 14.0.5+ et Quarkus PrimeFaces 3.13.3+
|
||||
2. **Thème**: Les composants utilisent le thème Freya (compatible avec unionflow)
|
||||
3. **Validation**: Les composants de formulaire incluent la validation JSF
|
||||
4. **Accessibilité**: Les composants suivent les bonnes pratiques d'accessibilité
|
||||
|
||||
---
|
||||
|
||||
## 🔄 Maintenance
|
||||
|
||||
Pour ajouter un nouveau composant:
|
||||
|
||||
1. Créer le fichier dans le répertoire approprié
|
||||
2. Suivre le pattern de documentation inline
|
||||
3. Ajouter des exemples d'utilisation
|
||||
4. Mettre à jour ce README
|
||||
|
||||
---
|
||||
|
||||
**Dernière mise à jour**: 2025-01-29
|
||||
**Version**: 1.0.0
|
||||
**Auteur**: Lions User Manager Team
|
||||
|
||||
Reference in New Issue
Block a user