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
This commit is contained in:
@@ -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<jakarta.faces.model.SelectItem> 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) {
|
||||
|
||||
Reference in New Issue
Block a user