Files

660 lines
42 KiB
HTML

<!DOCTYPE html>
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:p="http://primefaces.org/ui"
template="/templates/main-template.xhtml">
<ui:define name="title">Profil de #{membreProfilBean.membre.nomComplet} - UnionFlow</ui:define>
<ui:define name="content">
<!-- En-tête avec photo et informations principales -->
<div class="grid">
<div class="col-12">
<div class="card">
<div class="flex align-items-start justify-content-between">
<div class="flex align-items-start">
<!-- Photo de profil -->
<div class="mr-4">
<ui:include src="/templates/components/profile-photo.xhtml">
<ui:param name="photoId" value="photoProfil" />
<ui:param name="photoUrl" value="#{membreProfilBean.membre.photoUrl}" />
<ui:param name="initiales" value="#{membreProfilBean.membre.initiales}" />
<ui:param name="formId" value="formPhoto" />
<ui:param name="listener" value="#{membreProfilBean.changerPhoto}" />
<ui:param name="update" value=":photoProfil" />
<ui:param name="size" value="120" />
</ui:include>
</div>
<!-- Informations principales -->
<div class="flex-1">
<div class="flex align-items-center mb-3">
<h2 class="m-0 mr-3">#{membreProfilBean.membre.nomComplet}</h2>
<p:tag value="#{membreProfilBean.membre.statut}"
severity="#{membreProfilBean.membre.statutSeverity}"
icon="pi #{membreProfilBean.membre.statutIcon}" />
</div>
<div class="grid">
<div class="col-12 md:col-6">
<ui:include src="/templates/components/forms/detail-field-row.xhtml">
<ui:param name="label" value="Numéro membre" />
<ui:param name="value" value="#{membreProfilBean.membre.numeroMembre}" />
<ui:param name="valueClass" value="font-bold text-primary" />
</ui:include>
<div class="mb-2">
<span class="font-medium text-900">Type:</span>
<p:tag value="#{membreProfilBean.membre.typeMembre}"
severity="#{membreProfilBean.membre.typeSeverity}"
icon="pi #{membreProfilBean.membre.typeIcon}"
styleClass="ml-2" />
</div>
<ui:include src="/templates/components/forms/detail-field-row.xhtml">
<ui:param name="label" value="Entité" />
<ui:param name="value" value="#{membreProfilBean.membre.entite}" />
</ui:include>
</div>
<div class="col-12 md:col-6">
<ui:include src="/templates/components/forms/detail-field-row.xhtml">
<ui:param name="label" value="Adhésion" />
<ui:param name="value" value="#{membreProfilBean.membre.dateAdhesion}" />
<ui:param name="suffix" value="(#{membreProfilBean.membre.anciennete})" />
</ui:include>
<div class="mb-2">
<span class="font-medium text-900">Cotisations:</span>
<span class="ml-2 #{membreProfilBean.membre.cotisationColor}">#{membreProfilBean.membre.cotisationStatut}</span>
</div>
<ui:include src="/templates/components/forms/detail-field-row.xhtml">
<ui:param name="label" value="Participation" />
<ui:param name="value" value="#{membreProfilBean.membre.tauxParticipation}%" />
<ui:param name="valueClass" value="font-bold text-blue-500" />
</ui:include>
</div>
</div>
</div>
</div>
<!-- Actions principales -->
<h:form id="formActionsPrincipales">
<div class="flex flex-column gap-2">
<ui:include src="/templates/components/buttons/button-warning.xhtml">
<ui:param name="value" value="Modifier" />
<ui:param name="icon" value="pi pi-pencil" />
<ui:param name="onclick" value="PF('dlgModifierProfil').show();" />
<ui:param name="outlined" value="true" />
</ui:include>
<ui:include src="/templates/components/buttons/button-success.xhtml">
<ui:param name="value" value="Cotisations" />
<ui:param name="icon" value="pi pi-dollar" />
<ui:param name="action" value="#{membreProfilBean.gererCotisations}" />
<ui:param name="outlined" value="true" />
</ui:include>
<ui:include src="/templates/components/buttons/button-info.xhtml">
<ui:param name="value" value="Contacter" />
<ui:param name="icon" value="pi pi-envelope" />
<ui:param name="onclick" value="PF('dlgContacter').show();" />
<ui:param name="outlined" value="true" />
</ui:include>
<ui:include src="/templates/components/buttons/button-secondary.xhtml">
<ui:param name="value" value="Actions" />
<ui:param name="icon" value="pi pi-cog" />
<ui:param name="onclick" value="PF('dlgActions').show();" />
<ui:param name="outlined" value="true" />
</ui:include>
</div>
</h:form>
</div>
</div>
</div>
</div>
<!-- Statistiques et KPIs -->
<div class="grid">
<ui:include src="/templates/components/cards/kpi-card.xhtml">
<ui:param name="title" value="Événements" />
<ui:param name="value" value="#{membreProfilBean.statistiques.evenementsParticipes}" />
<ui:param name="icon" value="pi-calendar" />
<ui:param name="iconColor" value="blue-600" />
<ui:param name="showGrowth" value="false" />
<ui:param name="showProgress" value="false" />
<ui:param name="colSize" value="col-12 md:col-3" />
</ui:include>
<ui:include src="/templates/components/cards/kpi-card.xhtml">
<ui:param name="title" value="Cotisations" />
<ui:param name="value" value="#{membreProfilBean.statistiques.cotisationsPayees}" />
<ui:param name="icon" value="pi-dollar" />
<ui:param name="iconColor" value="green-600" />
<ui:param name="showGrowth" value="false" />
<ui:param name="showProgress" value="false" />
<ui:param name="colSize" value="col-12 md:col-3" />
</ui:include>
<ui:include src="/templates/components/cards/kpi-card.xhtml">
<ui:param name="title" value="Aides reçues" />
<ui:param name="value" value="#{membreProfilBean.statistiques.aidesRecues}" />
<ui:param name="icon" value="pi-heart" />
<ui:param name="iconColor" value="orange-600" />
<ui:param name="showGrowth" value="false" />
<ui:param name="showProgress" value="false" />
<ui:param name="colSize" value="col-12 md:col-3" />
</ui:include>
<ui:include src="/templates/components/cards/kpi-card.xhtml">
<ui:param name="title" value="Score engagement" />
<ui:param name="value" value="#{membreProfilBean.statistiques.scoreEngagement}" />
<ui:param name="icon" value="pi-star" />
<ui:param name="iconColor" value="purple-600" />
<ui:param name="showGrowth" value="false" />
<ui:param name="showProgress" value="false" />
<ui:param name="colSize" value="col-12 md:col-3" />
</ui:include>
</div>
<!-- Contenu principal avec onglets -->
<div class="card">
<p:tabView>
<!-- Onglet Informations personnelles -->
<p:tab title="👤 Informations personnelles">
<div class="grid">
<div class="col-12 md:col-6">
<h6 class="mb-3">Informations de base</h6>
<div class="surface-50 p-3 border-round">
<ui:include src="/templates/components/forms/detail-field-row.xhtml">
<ui:param name="label" value="Nom complet" />
<ui:param name="value" value="#{membreProfilBean.membre.nomComplet}" />
</ui:include>
<ui:include src="/templates/components/forms/detail-field-row.xhtml">
<ui:param name="label" value="Date de naissance" />
<ui:param name="value" value="#{membreProfilBean.membre.dateNaissance}" />
</ui:include>
<ui:include src="/templates/components/forms/detail-field-row.xhtml">
<ui:param name="label" value="Genre" />
<ui:param name="value" value="#{membreProfilBean.membre.genre}" />
</ui:include>
<ui:include src="/templates/components/forms/detail-field-row.xhtml">
<ui:param name="label" value="Situation familiale" />
<ui:param name="value" value="#{membreProfilBean.membre.situationFamiliale}" />
</ui:include>
<ui:include src="/templates/components/forms/detail-field-row.xhtml">
<ui:param name="label" value="Profession" />
<ui:param name="value" value="#{membreProfilBean.membre.profession}" />
</ui:include>
</div>
</div>
<div class="col-12 md:col-6">
<h6 class="mb-3">Coordonnées</h6>
<div class="surface-50 p-3 border-round">
<ui:include src="/templates/components/forms/detail-field-row.xhtml">
<ui:param name="label" value="Email" />
<ui:param name="value" value="#{membreProfilBean.membre.email}" />
</ui:include>
<ui:include src="/templates/components/forms/detail-field-row.xhtml">
<ui:param name="label" value="Téléphone" />
<ui:param name="value" value="#{membreProfilBean.membre.telephone}" />
</ui:include>
<ui:include src="/templates/components/forms/detail-field-row.xhtml">
<ui:param name="label" value="Adresse" />
<ui:param name="value" value="#{membreProfilBean.membre.adresse}" />
</ui:include>
<ui:include src="/templates/components/forms/detail-field-row.xhtml">
<ui:param name="label" value="Ville" />
<ui:param name="value" value="#{membreProfilBean.membre.ville}" />
</ui:include>
<ui:include src="/templates/components/forms/detail-field-row.xhtml">
<ui:param name="label" value="Pays" />
<ui:param name="value" value="#{membreProfilBean.membre.pays}" />
</ui:include>
</div>
</div>
<div class="col-12">
<h6 class="mb-3">Famille</h6>
<p:dataTable value="#{membreProfilBean.membre.famille}" var="membre_famille"
styleClass="p-datatable-sm" emptyMessage="Aucun membre de famille déclaré">
<p:column headerText="Nom complet">
<h:outputText value="#{membre_famille.nomComplet}" />
</p:column>
<p:column headerText="Relation">
<p:tag value="#{membre_famille.relation}" severity="info" />
</p:column>
<p:column headerText="Date de naissance">
<h:outputText value="#{membre_famille.dateNaissance}">
<f:convertDateTime pattern="dd/MM/yyyy" type="localDate" />
</h:outputText>
</p:column>
<p:column headerText="Bénéficiaire">
<p:tag value="#{membre_famille.beneficiaire ? 'Oui' : 'Non'}"
severity="#{membre_famille.beneficiaire ? 'success' : 'secondary'}" />
</p:column>
</p:dataTable>
</div>
</div>
</p:tab>
<!-- Onglet Cotisations -->
<p:tab title="💰 Cotisations">
<div class="grid">
<div class="col-12 md:col-6">
<h6 class="mb-3">État des cotisations</h6>
<div class="surface-50 p-3 border-round mb-3">
<div class="flex justify-content-between align-items-center mb-2">
<span class="font-medium">Statut actuel:</span>
<p:tag value="#{membreProfilBean.cotisations.statutActuel}"
severity="#{membreProfilBean.cotisations.statutSeverity}" />
</div>
<ui:include src="/templates/components/forms/detail-field-row.xhtml">
<ui:param name="label" value="Dernier paiement" />
<ui:param name="value" value="#{membreProfilBean.cotisations.dernierPaiement}" />
</ui:include>
<ui:include src="/templates/components/forms/detail-field-row.xhtml">
<ui:param name="label" value="Prochaine échéance" />
<ui:param name="value" value="#{membreProfilBean.cotisations.prochaineEcheance}" />
<ui:param name="valueClass" value="#{membreProfilBean.cotisations.prochaineEcheanceClass}" />
</ui:include>
<ui:include src="/templates/components/forms/detail-field-row.xhtml">
<ui:param name="label" value="Total payé cette année" />
<ui:param name="value" value="#{membreProfilBean.cotisations.totalAnnee}" />
<ui:param name="valueClass" value="font-bold text-green-500" />
</ui:include>
</div>
<h:form id="formCotisationsActions">
<div class="flex gap-2">
<ui:include src="/templates/components/buttons/button-success.xhtml">
<ui:param name="value" value="Nouveau paiement" />
<ui:param name="icon" value="pi pi-plus" />
<ui:param name="onclick" value="PF('dlgNouveauPaiement').show();" />
</ui:include>
<ui:include src="/templates/components/buttons/button-warning.xhtml">
<ui:param name="value" value="Envoyer rappel" />
<ui:param name="icon" value="pi pi-bell" />
<ui:param name="action" value="#{membreProfilBean.envoyerRappelCotisation}" />
<ui:param name="outlined" value="true" />
</ui:include>
</div>
</h:form>
</div>
<div class="col-12 md:col-6">
<h6 class="mb-3">Historique des paiements</h6>
<p:dataTable value="#{membreProfilBean.cotisations.historique}" var="paiement"
rows="5" paginator="true" styleClass="p-datatable-sm">
<p:column headerText="Date">
<h:outputText value="#{paiement.date}">
<f:convertDateTime pattern="dd/MM/yyyy" type="localDate" />
</h:outputText>
</p:column>
<p:column headerText="Montant">
<h:outputText value="#{paiement.montant}" styleClass="font-bold">
<f:convertNumber type="currency" currencySymbol="FCFA " />
</h:outputText>
</p:column>
<p:column headerText="Mode">
<div class="flex align-items-center">
<i class="pi #{paiement.modeIcon} mr-2"></i>
<span>#{paiement.modePaiement}</span>
</div>
</p:column>
<p:column headerText="Statut">
<p:tag value="#{paiement.statut}" severity="#{paiement.statutSeverity}" />
</p:column>
</p:dataTable>
</div>
</div>
</p:tab>
<!-- Onglet Participation -->
<p:tab title="📅 Participation">
<div class="grid">
<div class="col-12 md:col-8">
<h6 class="mb-3">Événements récents</h6>
<ui:repeat value="#{membreProfilBean.evenements.recents}" var="evenement">
<div class="flex align-items-center p-3 mb-2 border-round surface-50">
<div class="border-round p-2 mr-3 bg-#{evenement.typeEvenementSeverity}">
<i class="pi #{evenement.typeEvenementIcon} text-white"></i>
</div>
<div class="flex-1">
<div class="font-medium text-900">#{evenement.titre}</div>
<div class="text-600 text-sm">
#{evenement.date} • #{evenement.lieu}
</div>
</div>
<div class="text-right">
<p:tag value="#{evenement.participation}"
severity="#{evenement.participationSeverity}" />
<div class="text-sm text-600 mt-1">
#{evenement.role}
</div>
</div>
</div>
</ui:repeat>
</div>
<div class="col-12 md:col-4">
<h6 class="mb-3">Statistiques participation</h6>
<div class="surface-50 p-3 border-round">
<ui:include src="/templates/components/forms/detail-field-row.xhtml">
<ui:param name="label" value="Taux de participation" />
<ui:param name="value" value="#{membreProfilBean.statistiques.tauxParticipation}%" />
<ui:param name="valueClass" value="font-bold text-blue-500" />
</ui:include>
<p:progressBar value="#{membreProfilBean.statistiques.tauxParticipation}"
labelTemplate="" styleClass="mb-3" />
<ui:include src="/templates/components/forms/detail-field-row.xhtml">
<ui:param name="label" value="Cette année" />
<ui:param name="value" value="#{membreProfilBean.statistiques.evenementsAnnee}" />
</ui:include>
<ui:include src="/templates/components/forms/detail-field-row.xhtml">
<ui:param name="label" value="Total" />
<ui:param name="value" value="#{membreProfilBean.statistiques.evenementsTotal}" />
</ui:include>
<ui:include src="/templates/components/forms/detail-field-row.xhtml">
<ui:param name="label" value="En tant qu'organisateur" />
<ui:param name="value" value="#{membreProfilBean.statistiques.evenementsOrganises}" />
</ui:include>
<ui:include src="/templates/components/forms/detail-field-row.xhtml">
<ui:param name="label" value="Absences" />
<ui:param name="value" value="#{membreProfilBean.statistiques.absences}" />
<ui:param name="valueClass" value="text-red-500" />
</ui:include>
</div>
</div>
</div>
</p:tab>
<!-- Onglet Aides et Services -->
<p:tab title="🤝 Aides et Services">
<div class="grid">
<div class="col-12 md:col-6">
<h6 class="mb-3">Aides reçues</h6>
<p:dataTable value="#{membreProfilBean.aides.recues}" var="aide"
styleClass="p-datatable-sm" emptyMessage="Aucune aide reçue">
<p:column headerText="Type">
<div class="flex align-items-center">
<i class="pi #{aide.typeIcon} mr-2 #{aide.typeColor}"></i>
<span>#{aide.type}</span>
</div>
</p:column>
<p:column headerText="Montant">
<h:outputText value="#{aide.montant}" styleClass="font-bold">
<f:convertNumber type="currency" currencySymbol="FCFA " />
</h:outputText>
</p:column>
<p:column headerText="Date">
<h:outputText value="#{aide.date}">
<f:convertDateTime pattern="dd/MM/yyyy" type="localDate" />
</h:outputText>
</p:column>
<p:column headerText="Statut">
<p:tag value="#{aide.statut}" severity="#{aide.statutSeverity}" />
</p:column>
</p:dataTable>
</div>
<div class="col-12 md:col-6">
<h6 class="mb-3">Demandes en cours</h6>
<p:dataTable value="#{membreProfilBean.demandes.enCours}" var="demande"
styleClass="p-datatable-sm" emptyMessage="Aucune demande en cours">
<p:column headerText="Type">
<h:outputText value="#{demande.type}" />
</p:column>
<p:column headerText="Objet">
<h:outputText value="#{demande.objet}" />
</p:column>
<p:column headerText="Date">
<h:outputText value="#{demande.dateDepot}">
<f:convertDateTime pattern="dd/MM/yyyy" type="localDate" />
</h:outputText>
</p:column>
<p:column headerText="Statut">
<p:tag value="#{demande.statut}" severity="#{demande.statutSeverity}" />
</p:column>
</p:dataTable>
<h:form id="formNouvelleDemande">
<ui:include src="/templates/components/buttons/button-success.xhtml">
<ui:param name="value" value="Nouvelle demande" />
<ui:param name="icon" value="pi pi-plus" />
<ui:param name="onclick" value="PF('dlgNouvelleDemande').show();" />
<ui:param name="outlined" value="true" />
<ui:param name="styleClass" value="w-full mt-3" />
</ui:include>
</h:form>
</div>
</div>
</p:tab>
<!-- Onglet Historique -->
<p:tab title="📋 Historique">
<h6 class="mb-3">Activité récente</h6>
<ui:repeat value="#{membreProfilBean.historique.activites}" var="activite" varStatus="status">
<div class="flex align-items-start p-3 mb-3 border-round surface-50">
<div class="border-circle bg-primary text-white flex align-items-center justify-content-center mr-3"
style="width: 40px; height: 40px; min-width: 40px;">
<i class="pi #{activite.icone}"></i>
</div>
<div class="flex-1">
<div class="flex align-items-center justify-content-between mb-2">
<span class="font-medium text-900">#{activite.description}</span>
<small class="text-600">#{activite.date}</small>
</div>
<div class="text-600 text-sm mb-1">
Par #{activite.auteur}
</div>
<div class="text-sm text-700" rendered="#{activite.details != null}">
#{activite.details}
</div>
</div>
</div>
<!-- Ligne de connexion pour les éléments suivants -->
<div class="flex justify-content-center mb-3" rendered="#{!status.last}">
<div class="bg-300" style="width: 2px; height: 20px;"></div>
</div>
</ui:repeat>
<!-- Message si aucune activité -->
<div class="text-center p-4 text-600" rendered="#{empty membreProfilBean.historique.activites}">
<i class="pi pi-info-circle text-3xl mb-3"></i>
<div>Aucune activité récente</div>
</div>
</p:tab>
</p:tabView>
</div>
<!-- Dialog Modifier Profil -->
<p:dialog header="Modifier le Profil" widgetVar="dlgModifierProfil" modal="true" width="800">
<h:form id="formModifierProfil">
<div class="ui-fluid">
<div class="grid">
<div class="col-12 md:col-6">
<ui:include src="/templates/components/forms/form-field-text.xhtml">
<ui:param name="id" value="editPrenom" />
<ui:param name="label" value="Prénom" />
<ui:param name="value" value="#{membreProfilBean.membreEdit.prenom}" />
<ui:param name="required" value="true" />
</ui:include>
<ui:include src="/templates/components/forms/form-field-text.xhtml">
<ui:param name="id" value="editNom" />
<ui:param name="label" value="Nom" />
<ui:param name="value" value="#{membreProfilBean.membreEdit.nom}" />
<ui:param name="required" value="true" />
</ui:include>
<ui:include src="/templates/components/forms/form-field-text.xhtml">
<ui:param name="id" value="editEmail" />
<ui:param name="label" value="Email" />
<ui:param name="value" value="#{membreProfilBean.membreEdit.email}" />
<ui:param name="required" value="true" />
</ui:include>
<ui:include src="/templates/components/forms/form-field-text.xhtml">
<ui:param name="id" value="editTelephone" />
<ui:param name="label" value="Téléphone" />
<ui:param name="value" value="#{membreProfilBean.membreEdit.telephone}" />
<ui:param name="required" value="true" />
</ui:include>
</div>
<div class="col-12 md:col-6">
<ui:include src="/templates/components/forms/form-field-calendar.xhtml">
<ui:param name="id" value="editDateNaissance" />
<ui:param name="label" value="Date de naissance" />
<ui:param name="value" value="#{membreProfilBean.membreEdit.dateNaissance}" />
</ui:include>
<ui:include src="/templates/components/forms/form-field-text.xhtml">
<ui:param name="id" value="editProfession" />
<ui:param name="label" value="Profession" />
<ui:param name="value" value="#{membreProfilBean.membreEdit.profession}" />
</ui:include>
<ui:include src="/templates/components/forms/form-field-textarea.xhtml">
<ui:param name="id" value="editAdresse" />
<ui:param name="label" value="Adresse" />
<ui:param name="value" value="#{membreProfilBean.membreEdit.adresse}" />
<ui:param name="rows" value="3" />
</ui:include>
</div>
</div>
</div>
<div class="flex gap-2 mt-3">
<ui:include src="/templates/components/buttons/button-success.xhtml">
<ui:param name="value" value="Enregistrer" />
<ui:param name="icon" value="pi pi-check" />
<ui:param name="action" value="#{membreProfilBean.sauvegarderModifications}" />
<ui:param name="update" value=":formModifierProfil :photoProfil" />
<ui:param name="onclick" value="if(!args.validationFailed) PF('dlgModifierProfil').hide();" />
</ui:include>
<ui:include src="/templates/components/buttons/button-secondary.xhtml">
<ui:param name="value" value="Annuler" />
<ui:param name="icon" value="pi pi-times" />
<ui:param name="onclick" value="PF('dlgModifierProfil').hide();" />
</ui:include>
</div>
</h:form>
</p:dialog>
<!-- Dialog Contacter -->
<p:dialog header="Contacter #{membreProfilBean.membre.prenom}" widgetVar="dlgContacter" modal="true" width="500">
<h:form id="formContacter">
<div class="ui-fluid">
<ui:include src="/templates/components/forms/form-field-text.xhtml">
<ui:param name="id" value="sujetContact" />
<ui:param name="label" value="Sujet" />
<ui:param name="value" value="#{membreProfilBean.contact.sujet}" />
<ui:param name="required" value="true" />
</ui:include>
<ui:include src="/templates/components/forms/form-field-textarea.xhtml">
<ui:param name="id" value="messageContact" />
<ui:param name="label" value="Message" />
<ui:param name="value" value="#{membreProfilBean.contact.message}" />
<ui:param name="required" value="true" />
<ui:param name="rows" value="5" />
</ui:include>
<div class="field">
<p:outputLabel for="canalContact" value="Canal de communication" />
<p:selectCheckboxMenu id="canalContact" value="#{membreProfilBean.contact.canaux}" multiple="true" styleClass="w-full">
<f:selectItem itemLabel="📧 Email" itemValue="EMAIL" />
<f:selectItem itemLabel="📱 SMS" itemValue="SMS" />
<f:selectItem itemLabel="💬 WhatsApp" itemValue="WHATSAPP" />
</p:selectCheckboxMenu>
</div>
</div>
<div class="flex gap-2 mt-3">
<ui:include src="/templates/components/buttons/button-success.xhtml">
<ui:param name="value" value="Envoyer" />
<ui:param name="icon" value="pi pi-send" />
<ui:param name="action" value="#{membreProfilBean.envoyerMessage}" />
<ui:param name="update" value=":formContacter" />
<ui:param name="oncomplete" value="if(!args.validationFailed) PF('dlgContacter').hide();" />
</ui:include>
<ui:include src="/templates/components/buttons/button-secondary.xhtml">
<ui:param name="value" value="Annuler" />
<ui:param name="icon" value="pi pi-times" />
<ui:param name="onclick" value="PF('dlgContacter').hide();" />
</ui:include>
</div>
</h:form>
</p:dialog>
<!-- Dialog Actions -->
<p:dialog header="Actions sur le Membre" widgetVar="dlgActions" modal="true" width="400">
<h:form id="formActions">
<div class="grid">
<div class="col-12">
<ui:include src="/templates/components/buttons/button-secondary.xhtml">
<ui:param name="value" value="Suspendre membre" />
<ui:param name="icon" value="pi pi-ban" />
<ui:param name="action" value="#{membreProfilBean.suspendre}" />
<ui:param name="onclick" value="return confirm('Êtes-vous sûr de vouloir suspendre ce membre ?');" />
<ui:param name="styleClass" value="ui-button-danger w-full mb-2" />
<ui:param name="rendered" value="#{membreProfilBean.membre.statut == 'ACTIF'}" />
</ui:include>
<ui:include src="/templates/components/buttons/button-success.xhtml">
<ui:param name="value" value="Réactiver membre" />
<ui:param name="icon" value="pi pi-check" />
<ui:param name="action" value="#{membreProfilBean.reactiver}" />
<ui:param name="styleClass" value="w-full mb-2" />
<ui:param name="rendered" value="#{membreProfilBean.membre.statut == 'SUSPENDU'}" />
</ui:include>
<ui:include src="/templates/components/buttons/button-warning.xhtml">
<ui:param name="value" value="Changer de type" />
<ui:param name="icon" value="pi pi-user-edit" />
<ui:param name="onclick" value="PF('dlgChangerType').show();" />
<ui:param name="outlined" value="true" />
<ui:param name="styleClass" value="w-full mb-2" />
</ui:include>
<ui:include src="/templates/components/buttons/button-info.xhtml">
<ui:param name="value" value="Transférer vers entité" />
<ui:param name="icon" value="pi pi-arrow-right" />
<ui:param name="onclick" value="PF('dlgTransferer').show();" />
<ui:param name="outlined" value="true" />
<ui:param name="styleClass" value="w-full mb-2" />
</ui:include>
<ui:include src="/templates/components/buttons/button-secondary.xhtml">
<ui:param name="value" value="Exporter données" />
<ui:param name="icon" value="pi pi-download" />
<ui:param name="action" value="#{membreProfilBean.exporterDonnees}" />
<ui:param name="outlined" value="true" />
<ui:param name="styleClass" value="w-full mb-2" />
<ui:param name="update" value="none" />
</ui:include>
<ui:include src="/templates/components/buttons/button-secondary.xhtml">
<ui:param name="value" value="Supprimer membre" />
<ui:param name="icon" value="pi pi-trash" />
<ui:param name="action" value="#{membreProfilBean.supprimer}" />
<ui:param name="onclick" value="return confirm('ATTENTION: Cette action est irréversible. Confirmer la suppression ?');" />
<ui:param name="outlined" value="true" />
<ui:param name="styleClass" value="ui-button-danger w-full" />
</ui:include>
</div>
</div>
<div class="flex justify-content-end mt-3">
<ui:include src="/templates/components/buttons/button-secondary.xhtml">
<ui:param name="value" value="Fermer" />
<ui:param name="icon" value="pi pi-times" />
<ui:param name="onclick" value="PF('dlgActions').hide();" />
</ui:include>
</div>
</h:form>
</p:dialog>
</ui:define>
</ui:composition>