From a1f05441b09539b7855f88e6829f4bcb6c2976c4 Mon Sep 17 00:00:00 2001 From: dahoud Date: Sat, 29 Nov 2025 22:45:39 +0000 Subject: [PATCH] feat(client): Creation page modification membre exhaustive et formulaire reutilisable NOUVELLES PAGES: - modifier.xhtml : Page dediee pour modifier un membre (exhaustive) - membre-form.xhtml : Fragment reutilisable pour formulaire membre (DRY/WOU) STRUCTURE DU FORMULAIRE (blocs thematiques): - Identite : nom, prenom, dateNaissance, nationalite - Contact : email, telephone - Localisation : adresse, ville, region, quartier - Professionnel : profession, statutMatrimonial - Piece identite : typeIdentite, numeroIdentite - Organisation : association, role, membreBureau, responsable - Photo : photoUrl BEAN (MembreListeBean): - Ajout membreSelectionneId, membreSelectionne - Ajout chargerMembreSelectionne() : charge membre par ID - Ajout modifierMembreSelectionne() : sauvegarde modifications - Ajout getOrganisationsSelectItems() : dropdown organisations (TODO) - Correction modifierMembre() : redirige vers modifier.xhtml BOUTON MODIFIER dans liste.xhtml: - Navigation directe vers modifier.xhtml au lieu de popup - Coherence avec inscription.xhtml Respecte DRY/WOU avec formulaire reutilisable membre-form.xhtml --- .../client/view/MembreListeBean.java | 60 +++++- .../resources/pages/secure/membre/liste.xhtml | 10 +- .../pages/secure/membre/modifier.xhtml | 66 +++++++ .../resources/ui/includes/membre-form.xhtml | 174 ++++++++++++++++++ 4 files changed, 303 insertions(+), 7 deletions(-) create mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/membre/modifier.xhtml create mode 100644 unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/ui/includes/membre-form.xhtml diff --git a/unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/view/MembreListeBean.java b/unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/view/MembreListeBean.java index 4c71f84..33b607f 100644 --- a/unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/view/MembreListeBean.java +++ b/unionflow-client-quarkus-primefaces-freya/src/main/java/dev/lions/unionflow/client/view/MembreListeBean.java @@ -191,7 +191,65 @@ public class MembreListeBean implements Serializable { } public String modifierMembre(MembreDTO membre) { - return "/pages/secure/membre/modification?id=" + membre.getId() + "&faces-redirect=true"; + return "/pages/secure/membre/modifier?id=" + membre.getId() + "&faces-redirect=true"; + } + + // Propriétés pour la page de modification + private UUID membreSelectionneId; + private MembreDTO membreSelectionne; + + public UUID getMembreSelectionneId() { + return membreSelectionneId; + } + + public void setMembreSelectionneId(UUID membreSelectionneId) { + this.membreSelectionneId = membreSelectionneId; + } + + public MembreDTO getMembreSelectionne() { + return membreSelectionne; + } + + public void setMembreSelectionne(MembreDTO membreSelectionne) { + this.membreSelectionne = membreSelectionne; + } + + public void chargerMembreSelectionne() { + if (membreSelectionneId != null) { + try { + membreSelectionne = membreService.obtenirParId(membreSelectionneId); + LOGGER.info("Membre chargé pour modification: " + membreSelectionne.getNomComplet()); + } catch (Exception e) { + LOGGER.severe("Erreur lors du chargement du membre: " + e.getMessage()); + FacesContext.getCurrentInstance().addMessage(null, + new FacesMessage(FacesMessage.SEVERITY_ERROR, "Erreur", + "Impossible de charger le membre: " + e.getMessage())); + } + } + } + + public String modifierMembreSelectionne() { + try { + membreService.modifier(membreSelectionne.getId(), membreSelectionne); + LOGGER.info("Membre modifié: " + membreSelectionne.getNomComplet()); + FacesContext.getCurrentInstance().addMessage(null, + new FacesMessage(FacesMessage.SEVERITY_INFO, "Succès", + "Le membre a été modifié avec succès")); + return "/pages/secure/membre/liste?faces-redirect=true"; + } catch (Exception e) { + LOGGER.severe("Erreur lors de la modification: " + e.getMessage()); + FacesContext.getCurrentInstance().addMessage(null, + new FacesMessage(FacesMessage.SEVERITY_ERROR, "Erreur", + "Impossible de modifier le membre: " + e.getMessage())); + return null; + } + } + + // Méthode pour obtenir la liste des organisations pour le dropdown + public List getOrganisationsSelectItems() { + // TODO: Implémenter la récupération des organisations + // Pour l'instant, retourner une liste vide + return new java.util.ArrayList<>(); } public String gererCotisations(MembreDTO membre) { diff --git a/unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/membre/liste.xhtml b/unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/membre/liste.xhtml index 4fa4c79..44273a3 100644 --- a/unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/membre/liste.xhtml +++ b/unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/membre/liste.xhtml @@ -195,12 +195,10 @@ - - - - - - + diff --git a/unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/membre/modifier.xhtml b/unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/membre/modifier.xhtml new file mode 100644 index 0000000..e62f1fc --- /dev/null +++ b/unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/pages/secure/membre/modifier.xhtml @@ -0,0 +1,66 @@ + + + + + Modifier le Membre + + + + + + + + + + + +
+
+
+

Modifier le Membre

+ + Modifiez les informations du membre. + +
+
+ + + + + + +
+
+
+ +
+
Informations du Membre
+ + + + +
+ +
+ + + + + + + + +
+
+
+
+ + diff --git a/unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/ui/includes/membre-form.xhtml b/unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/ui/includes/membre-form.xhtml new file mode 100644 index 0000000..77a14bc --- /dev/null +++ b/unionflow-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/ui/includes/membre-form.xhtml @@ -0,0 +1,174 @@ + + + + +
+
+ + +
+
+
Identité
+
+
+ + + +
+
+ + + +
+
+ + +
+
+ + +
+
+
+
+ + +
+
+
Contact
+
+
+ + + +
+
+ + +
+
+
+
+ + +
+
+
Localisation
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
+
+ + +
+
+
Informations professionnelles
+
+
+ + +
+
+ + +
+
+
+
+ + +
+
+
Pièce d'identité
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+ + +
+
+
Organisation & Rôle
+
+
+ + + + + +
+
+ + +
+
+ + +
+
+ + +
+
+
+
+ + +
+
+
Photo de profil
+
+
+ + + Entrez l'URL d'une photo ou laissez vide pour utiliser l'avatar par défaut +
+
+
+
+ +
+
+
+