Configure Maven repository for unionflow-server-api dependency

This commit is contained in:
dahoud
2025-12-10 01:12:54 +00:00
commit 2910809949
1173 changed files with 435718 additions and 0 deletions

View File

@@ -0,0 +1,263 @@
<!DOCTYPE html>
<html 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">
<ui:composition template="/templates/main-template.xhtml">
<ui:param name="page" value="#{organisationDetailBean}"/>
<ui:define name="title">Détail de l'Organisation</ui:define>
<ui:define name="content">
<h:form id="formDetail">
<p:messages id="messages" showDetail="true" closable="true"/>
<!-- En-tête résumé -->
<div class="card mb-3">
<div class="flex justify-content-between align-items-center flex-column md:flex-row">
<div class="flex align-items-center gap-3 mb-2 md:mb-0">
<ui:include src="/templates/components/layout/organisation-logo.xhtml">
<ui:param name="logo" value="#{organisationDetailBean.organisation.logo}"/>
<ui:param name="size" value="64"/>
</ui:include>
<div>
<h3 class="m-0">
<h:outputText value="#{empty organisationDetailBean.organisation ? 'Organisation introuvable' : organisationDetailBean.organisation.nom}" />
</h3>
<div class="mt-2 flex align-items-center gap-2">
<p:tag value="#{organisationDetailBean.organisation.typeLibelle}" severity="info" />
<p:tag value="#{organisationDetailBean.organisation.statutLibelle}"
severity="#{organisationDetailBean.organisation.statutSeverity}" />
</div>
</div>
</div>
<div class="flex gap-2">
<ui:include src="/templates/components/buttons/button-secondary.xhtml">
<ui:param name="value" value="Retour à la liste"/>
<ui:param name="icon" value="pi pi-arrow-left"/>
<ui:param name="outcome" value="/pages/secure/organisation/liste"/>
</ui:include>
</div>
</div>
</div>
<h:panelGroup rendered="#{not empty organisationDetailBean.organisation}">
<div class="grid">
<!-- Bloc identité -->
<div class="col-12 md:col-6">
<div class="card">
<h5 class="mb-3">Identité</h5>
<ui:include src="/templates/components/forms/detail-field.xhtml">
<ui:param name="label" value="Nom complet"/>
<ui:param name="value" value="#{organisationDetailBean.organisation.nom}"/>
</ui:include>
<ui:include src="/templates/components/forms/detail-field.xhtml">
<ui:param name="label" value="Nom court / Sigle"/>
<ui:param name="value" value="#{organisationDetailBean.organisation.nomCourt}"/>
</ui:include>
<ui:include src="/templates/components/forms/detail-field.xhtml">
<ui:param name="label" value="Type"/>
<ui:param name="value" value="#{organisationDetailBean.organisation.typeLibelle}"/>
</ui:include>
<ui:include src="/templates/components/forms/detail-field.xhtml">
<ui:param name="label" value="Statut"/>
<ui:param name="value" value="#{organisationDetailBean.organisation.statutLibelle}"/>
</ui:include>
<ui:include src="/templates/components/forms/detail-field.xhtml">
<ui:param name="label" value="Date de fondation"/>
<ui:param name="value" value="#{organisationDetailBean.organisation.dateFondation}"/>
</ui:include>
<ui:include src="/templates/components/forms/detail-field.xhtml">
<ui:param name="label" value="Numéro d'enregistrement"/>
<ui:param name="value" value="#{organisationDetailBean.organisation.numeroRegistre}"/>
</ui:include>
</div>
</div>
<!-- Bloc contact -->
<div class="col-12 md:col-6">
<div class="card">
<h5 class="mb-3">Contacts</h5>
<ui:include src="/templates/components/forms/detail-field.xhtml">
<ui:param name="label" value="Email"/>
<ui:param name="value" value="#{organisationDetailBean.organisation.email}"/>
</ui:include>
<ui:include src="/templates/components/forms/detail-field.xhtml">
<ui:param name="label" value="Email secondaire"/>
<ui:param name="value" value="#{organisationDetailBean.organisation.emailSecondaire}"/>
</ui:include>
<ui:include src="/templates/components/forms/detail-field.xhtml">
<ui:param name="label" value="Téléphone"/>
<ui:param name="value" value="#{organisationDetailBean.organisation.telephone}"/>
</ui:include>
<ui:include src="/templates/components/forms/detail-field.xhtml">
<ui:param name="label" value="Téléphone secondaire"/>
<ui:param name="value" value="#{organisationDetailBean.organisation.telephoneSecondaire}"/>
</ui:include>
<ui:include src="/templates/components/forms/detail-field.xhtml">
<ui:param name="label" value="Site web"/>
<ui:param name="value" value="#{organisationDetailBean.organisation.siteWeb}"/>
</ui:include>
<ui:include src="/templates/components/forms/detail-field.xhtml">
<ui:param name="label" value="Responsable principal"/>
<ui:param name="value" value="#{organisationDetailBean.organisation.responsablePrincipal}"/>
</ui:include>
</div>
</div>
<!-- Bloc localisation -->
<div class="col-12 md:col-6">
<div class="card">
<h5 class="mb-3">Localisation</h5>
<ui:include src="/templates/components/forms/detail-field.xhtml">
<ui:param name="label" value="Adresse complète"/>
<ui:param name="value" value="#{organisationDetailBean.organisation.adresseComplete}"/>
<ui:param name="multiline" value="true"/>
</ui:include>
<ui:include src="/templates/components/forms/detail-field.xhtml">
<ui:param name="label" value="Ville"/>
<ui:param name="value" value="#{organisationDetailBean.organisation.ville}"/>
</ui:include>
<ui:include src="/templates/components/forms/detail-field.xhtml">
<ui:param name="label" value="Région"/>
<ui:param name="value" value="#{organisationDetailBean.organisation.region}"/>
</ui:include>
<ui:include src="/templates/components/forms/detail-field.xhtml">
<ui:param name="label" value="Pays"/>
<ui:param name="value" value="#{organisationDetailBean.organisation.pays}"/>
</ui:include>
<ui:include src="/templates/components/forms/detail-field.xhtml">
<ui:param name="label" value="Code postal"/>
<ui:param name="value" value="#{organisationDetailBean.organisation.codePostal}"/>
</ui:include>
<ui:include src="/templates/components/forms/detail-field.xhtml">
<ui:param name="label" value="Latitude"/>
<ui:param name="value" value="#{organisationDetailBean.organisation.latitude}"/>
</ui:include>
<ui:include src="/templates/components/forms/detail-field.xhtml">
<ui:param name="label" value="Longitude"/>
<ui:param name="value" value="#{organisationDetailBean.organisation.longitude}"/>
</ui:include>
</div>
</div>
<!-- Bloc description, objectifs et activités -->
<div class="col-12 md:col-6">
<div class="card">
<h5 class="mb-3">Description, objectifs &amp; activités</h5>
<ui:include src="/templates/components/forms/detail-field.xhtml">
<ui:param name="label" value="Description"/>
<ui:param name="value" value="#{organisationDetailBean.organisation.description}"/>
<ui:param name="multiline" value="true"/>
</ui:include>
<ui:include src="/templates/components/forms/detail-field.xhtml">
<ui:param name="label" value="Objectifs"/>
<ui:param name="value" value="#{organisationDetailBean.organisation.objectifs}"/>
<ui:param name="multiline" value="true"/>
</ui:include>
<ui:include src="/templates/components/forms/detail-field.xhtml">
<ui:param name="label" value="Activités principales"/>
<ui:param name="value" value="#{organisationDetailBean.organisation.activitesPrincipales}"/>
<ui:param name="multiline" value="true"/>
</ui:include>
</div>
</div>
<!-- Bloc gouvernance & membres -->
<div class="col-12 md:col-6">
<div class="card">
<h5 class="mb-3">Gouvernance &amp; membres</h5>
<ui:include src="/templates/components/forms/detail-field.xhtml">
<ui:param name="label" value="Nombre de membres"/>
<ui:param name="value" value="#{organisationDetailBean.organisation.nombreMembres}"/>
</ui:include>
<ui:include src="/templates/components/forms/detail-field.xhtml">
<ui:param name="label" value="Nombre d'administrateurs"/>
<ui:param name="value" value="#{organisationDetailBean.organisation.nombreAdministrateurs}"/>
</ui:include>
<ui:include src="/templates/components/forms/detail-field.xhtml">
<ui:param name="label" value="Organisation publique"/>
<ui:param name="value" value="#{organisationDetailBean.organisation.organisationPublique ? 'Oui' : 'Non'}"/>
</ui:include>
<ui:include src="/templates/components/forms/detail-field.xhtml">
<ui:param name="label" value="Accepte de nouveaux membres"/>
<ui:param name="value" value="#{organisationDetailBean.organisation.accepteNouveauxMembres ? 'Oui' : 'Non'}"/>
</ui:include>
<ui:include src="/templates/components/forms/detail-field.xhtml">
<ui:param name="label" value="Cotisation obligatoire"/>
<ui:param name="value" value="#{organisationDetailBean.organisation.cotisationObligatoire ? 'Oui' : 'Non'}"/>
</ui:include>
</div>
</div>
<!-- Bloc budget & cotisations -->
<div class="col-12 md:col-6">
<div class="card">
<h5 class="mb-3">Budget &amp; cotisations</h5>
<ui:include src="/templates/components/forms/detail-field.xhtml">
<ui:param name="label" value="Budget annuel"/>
<ui:param name="value" value="#{organisationDetailBean.organisation.budgetAnnuel}"/>
</ui:include>
<ui:include src="/templates/components/forms/detail-field.xhtml">
<ui:param name="label" value="Devise"/>
<ui:param name="value" value="#{organisationDetailBean.organisation.devise}"/>
</ui:include>
<ui:include src="/templates/components/forms/detail-field.xhtml">
<ui:param name="label" value="Montant cotisation annuelle"/>
<ui:param name="value" value="#{organisationDetailBean.organisation.montantCotisationAnnuelle}"/>
</ui:include>
</div>
</div>
<!-- Bloc réseaux & partenariats -->
<div class="col-12 md:col-6">
<div class="card">
<h5 class="mb-3">Réseaux &amp; partenariats</h5>
<ui:include src="/templates/components/forms/detail-field.xhtml">
<ui:param name="label" value="Réseaux sociaux"/>
<ui:param name="value" value="#{organisationDetailBean.organisation.reseauxSociaux}"/>
<ui:param name="multiline" value="true"/>
</ui:include>
<ui:include src="/templates/components/forms/detail-field.xhtml">
<ui:param name="label" value="Certifications / labels"/>
<ui:param name="value" value="#{organisationDetailBean.organisation.certifications}"/>
<ui:param name="multiline" value="true"/>
</ui:include>
<ui:include src="/templates/components/forms/detail-field.xhtml">
<ui:param name="label" value="Partenaires principaux"/>
<ui:param name="value" value="#{organisationDetailBean.organisation.partenaires}"/>
<ui:param name="multiline" value="true"/>
</ui:include>
</div>
</div>
<!-- Bloc notes & hiérarchie -->
<div class="col-12 md:col-6">
<div class="card">
<h5 class="mb-3">Notes &amp; hiérarchie</h5>
<ui:include src="/templates/components/forms/detail-field.xhtml">
<ui:param name="label" value="Organisation parente"/>
<ui:param name="value" value="#{organisationDetailBean.organisation.nomOrganisationParente}"/>
</ui:include>
<ui:include src="/templates/components/forms/detail-field.xhtml">
<ui:param name="label" value="ID organisation parente"/>
<ui:param name="value" value="#{organisationDetailBean.organisation.organisationParenteId}"/>
</ui:include>
<ui:include src="/templates/components/forms/detail-field.xhtml">
<ui:param name="label" value="Niveau hiérarchique"/>
<ui:param name="value" value="#{organisationDetailBean.organisation.niveauHierarchique}"/>
</ui:include>
<ui:include src="/templates/components/forms/detail-field.xhtml">
<ui:param name="label" value="Notes administratives"/>
<ui:param name="value" value="#{organisationDetailBean.organisation.notes}"/>
<ui:param name="multiline" value="true"/>
</ui:include>
</div>
</div>
</div>
</h:panelGroup>
</h:form>
</ui:define>
</ui:composition>
</html>

View File

@@ -0,0 +1,251 @@
<!DOCTYPE html>
<html 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"
xmlns:uf="http://xmlns.jcp.org/jsf/composite/components">
<ui:composition template="/templates/main-template.xhtml">
<ui:param name="page" value="#{organisationsBean}"/>
<ui:define name="title">Gestion des Organisations</ui:define>
<ui:define name="content">
<h:form id="formOrganisations">
<p:messages id="messages" showDetail="true" closable="true"/>
<!-- En-tête avec titre et action principale (DRY/WOU: card-header) -->
<ui:decorate template="/templates/components/cards/card-header.xhtml">
<ui:param name="title" value="Gestion des Organisations" />
<ui:param name="subtitle" value="Liste complète des organisations avec filtres et actions." />
<ui:param name="styleClass" value="mb-3" />
<ui:define name="actions">
<p:button value="Nouvelle Organisation"
icon="pi pi-plus"
outcome="/pages/secure/organisation/nouvelle"
styleClass="ui-button-success" />
</ui:define>
</ui:decorate>
<!-- Statistiques (DRY/WOU: stat-card) -->
<div class="grid mb-3">
<ui:include src="/templates/components/cards/stat-card.xhtml">
<ui:param name="value" value="#{organisationsBean.totalOrganisations}" />
<ui:param name="label" value="Total" />
<ui:param name="icon" value="pi pi-building" />
<ui:param name="bgColor" value="blue" />
</ui:include>
<ui:include src="/templates/components/cards/stat-card.xhtml">
<ui:param name="value" value="#{organisationsBean.organisationsActives}" />
<ui:param name="label" value="Actives" />
<ui:param name="icon" value="pi pi-check-circle" />
<ui:param name="bgColor" value="green" />
</ui:include>
<ui:include src="/templates/components/cards/stat-card.xhtml">
<ui:param name="value" value="#{organisationsBean.organisationsInactives}" />
<ui:param name="label" value="Inactives" />
<ui:param name="icon" value="pi pi-times-circle" />
<ui:param name="bgColor" value="orange" />
</ui:include>
</div>
<!-- Filtres et recherche (DRY/WOU: filter-bar) -->
<ui:decorate template="/templates/components/cards/filter-bar.xhtml">
<ui:param name="title" value="Filtres" />
<ui:param name="styleClass" value="mb-3" />
<ui:define name="filters">
<div class="col-12 md:col-4">
<div class="field">
<p:outputLabel for="rechercheGlobale" value="Rechercher" />
<p:inputText id="rechercheGlobale"
value="#{organisationsBean.rechercheGlobale}"
placeholder="Nom, ville, description..."
styleClass="w-full">
<p:ajax event="keyup" update="dtOrganisations" listener="#{organisationsBean.appliquerFiltres}" delay="500"/>
</p:inputText>
</div>
</div>
<div class="col-12 md:col-2">
<div class="field">
<p:outputLabel for="filtreStatut" value="Statut" />
<p:selectOneMenu id="filtreStatut"
value="#{organisationsBean.filtreStatut}"
styleClass="w-full">
<f:selectItems value="#{organisationsBean.statutsSelectItems}" />
<p:ajax event="change" update="dtOrganisations" listener="#{organisationsBean.appliquerFiltres}"/>
</p:selectOneMenu>
</div>
</div>
<div class="col-12 md:col-2">
<div class="field">
<p:outputLabel for="filtreType" value="Type" />
<p:selectOneMenu id="filtreType"
value="#{organisationsBean.filtreType}"
styleClass="w-full">
<f:selectItems value="#{organisationsBean.typesSelectItems}" />
<p:ajax event="change" update="dtOrganisations" listener="#{organisationsBean.appliquerFiltres}"/>
</p:selectOneMenu>
</div>
</div>
</ui:define>
<ui:define name="actions">
<div class="col-12 md:col-2">
<div class="field">
<label class="invisible">Actions</label>
<p:commandButton value="Réinitialiser"
icon="pi pi-filter-slash"
action="#{organisationsBean.reinitialiserFiltres}"
update="dtOrganisations rechercheGlobale filtreStatut filtreType"
styleClass="ui-button-secondary w-full" />
</div>
</div>
<div class="col-12 md:col-2">
<div class="field">
<label class="invisible">Actions</label>
<p:commandButton value="Rafraîchir"
icon="pi pi-refresh"
action="#{organisationsBean.recharger}"
update="@form"
styleClass="ui-button-secondary w-full" />
</div>
</div>
</ui:define>
</ui:decorate>
<!-- Table des organisations (DRY/WOU: card-simple) -->
<ui:decorate template="/templates/components/cards/card-simple.xhtml">
<ui:param name="title" value="Liste des Organisations" />
<ui:define name="content">
<!-- Note: p:dataTable avec var, sortBy, filterBy doit être directement dans la page -->
<p:dataTable id="dtOrganisations"
value="#{organisationsBean.organisationsFiltrees}"
var="org"
paginator="true"
rows="20"
rowsPerPageTemplate="10,20,50,100"
paginatorPosition="bottom"
emptyMessage="Aucune organisation trouvée"
styleClass="table-responsive"
size="small">
<!-- Logo (DRY/WOU: organisation-logo) -->
<p:column headerText="" style="width: 80px;">
<ui:include src="/templates/components/layout/organisation-logo.xhtml">
<ui:param name="logo" value="#{org.logo}"/>
<ui:param name="size" value="40"/>
</ui:include>
</p:column>
<!-- Nom avec sous-titre -->
<p:column headerText="Nom" sortBy="#{org.nom}" filterBy="#{org.nom}">
<h:outputText value="#{org.nom}" styleClass="font-bold"/>
<br/>
<h:outputText value="#{org.typeLibelle}" styleClass="text-sm text-500"/>
</p:column>
<!-- Type -->
<p:column headerText="Type" sortBy="#{org.typeAssociation}" style="width: 150px;">
<p:tag value="#{org.typeLibelle}"
severity="#{org.typeAssociation == 'LIONS_CLUB' ? 'info' : 'primary'}"/>
</p:column>
<!-- Localisation -->
<p:column headerText="Localisation" style="width: 200px;">
<i class="pi pi-map-marker mr-2 text-500"/>
<h:outputText value="#{org.ville}, #{org.region}"/>
</p:column>
<!-- Membres -->
<p:column headerText="Membres" styleClass="text-center" style="width: 100px;">
<p:tag value="#{org.nombreMembres}" severity="info" icon="pi pi-users"/>
</p:column>
<!-- Statut -->
<p:column headerText="Statut" sortBy="#{org.statut}" styleClass="text-center" style="width: 100px;">
<p:tag value="#{org.statut}"
severity="#{org.statut == organisationsBean.statutActive ? 'success' : 'warning'}"
icon="#{org.statut == organisationsBean.statutActive ? 'pi pi-check' : 'pi pi-times'}"/>
</p:column>
<!-- Actions (DRY/WOU: Composite Components) -->
<p:column headerText="Actions" style="width:200px">
<div class="flex gap-1">
<!-- DRY/WOU: Composite Component action-button-view -->
<uf:action-button-view itemId="#{org.id.toString()}"
detailPage="/pages/secure/organisation/detail.xhtml"
iconOnly="true"/>
<!-- DRY/WOU: button-icon pour Modifier -->
<p:commandButton icon="pi pi-pencil"
actionListener="#{organisationsBean.setOrganisationSelectionnee(org)}"
oncomplete="PF('dlgModifier').show();"
update=":formModifier"
styleClass="ui-button-rounded ui-button-warning"
title="Modifier"/>
<!-- DRY/WOU: button-icon pour Activer/Désactiver -->
<p:commandButton icon="#{org.statut == organisationsBean.statutActive ? 'pi pi-ban' : 'pi pi-check'}"
actionListener="#{organisationsBean.basculerStatutOrganisation(org)}"
update=":formOrganisations:dtOrganisations :formOrganisations:messages"
styleClass="ui-button-rounded #{org.statut == organisationsBean.statutActive ? 'ui-button-secondary' : 'ui-button-success'}"
title="#{org.statut == organisationsBean.statutActive ? 'Désactiver' : 'Activer'}">
<p:confirm header="Confirmation"
message="Êtes-vous sûr de vouloir changer le statut de cette organisation ?"
icon="pi pi-exclamation-triangle"/>
</p:commandButton>
<!-- DRY/WOU: button-icon pour Supprimer -->
<p:commandButton icon="pi pi-trash"
actionListener="#{organisationsBean.supprimerOrganisation(org)}"
update=":formOrganisations:dtOrganisations :formOrganisations:messages"
styleClass="ui-button-rounded ui-button-danger"
title="Supprimer">
<p:confirm header="Confirmation"
message="Êtes-vous sûr de vouloir supprimer cette organisation ? Cette action est irréversible."
icon="pi pi-exclamation-triangle"/>
</p:commandButton>
</div>
</p:column>
</p:dataTable>
</ui:define>
</ui:decorate>
<!-- Dialogue de confirmation global (DRY/WOU: confirm-dialog) -->
<ui:include src="/templates/components/dialogs/confirm-dialog.xhtml" />
</h:form>
<!-- Dialogue Modifier Organisation (DRY/WOU: form-dialog) -->
<ui:decorate template="/templates/components/dialogs/form-dialog.xhtml">
<ui:param name="dialogId" value="dlgModifier" />
<ui:param name="header" value="Modifier Organisation" />
<ui:param name="widgetVar" value="dlgModifier" />
<ui:param name="formId" value="formModifier" />
<ui:param name="width" value="900" />
<ui:param name="maximizable" value="true" />
<ui:param name="fitViewport" value="true" />
<ui:define name="content">
<ui:fragment rendered="#{organisationsBean.organisationSelectionnee != null}">
<ui:include src="/ui/includes/organisation-form.xhtml">
<ui:param name="model" value="#{organisationsBean.organisationSelectionnee}" />
<ui:param name="typesItems" value="#{organisationsBean.typesSelectItemsForForm}" />
</ui:include>
</ui:fragment>
</ui:define>
<ui:define name="footer">
<!-- Bouton Annuler : type="button" pour éviter la soumission -->
<p:commandButton value="Annuler"
icon="pi pi-times"
type="button"
onclick="PF('dlgModifier').hide();"
styleClass="ui-button-secondary" />
<!-- DRY/WOU: button-form-submit pour action backend -->
<ui:decorate template="/templates/components/buttons/button-form-submit.xhtml">
<ui:param name="value" value="Enregistrer" />
<ui:param name="icon" value="pi pi-check" />
<ui:param name="action" value="#{organisationsBean.modifierOrganisation}" />
<ui:param name="update" value=":formOrganisations:dtOrganisations :formOrganisations:messages" />
<ui:param name="oncomplete" value="if(!args.validationFailed) PF('dlgModifier').hide();" />
<ui:param name="severity" value="success" />
</ui:decorate>
</ui:define>
</ui:decorate>
</ui:define>
</ui:composition>
</html>

View File

@@ -0,0 +1,64 @@
<!DOCTYPE html>
<html 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">
<ui:composition template="/templates/main-template.xhtml">
<ui:param name="page" value="#{organisationsBean}"/>
<ui:define name="title">Nouvelle Organisation</ui:define>
<ui:define name="content">
<!-- Initialiser le modèle et le catalogue des types à chaque affichage de la vue -->
<f:event type="preRenderView" listener="#{organisationsBean.preparerNouvelleOrganisation}" />
<h:form id="formNouvelleOrganisation">
<p:messages id="messages" showDetail="true" closable="true"/>
<div class="card mb-3">
<div class="flex justify-content-between align-items-center flex-column md:flex-row">
<div class="mb-2 md:mb-0">
<h3 class="m-0">Nouvelle Organisation</h3>
<span class="text-600">
Renseignez l'ensemble des informations de l'organisation.
</span>
</div>
<div class="flex gap-2">
<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="outcome" value="/pages/secure/organisation/liste"/>
</ui:include>
</div>
</div>
</div>
<div class="card">
<h5 class="mb-3">Informations de l'Organisation</h5>
<ui:include src="/ui/includes/organisation-form.xhtml">
<ui:param name="model" value="#{organisationsBean.nouvelleOrganisation}" />
<ui:param name="typesItems" value="#{organisationsBean.typesSelectItemsForForm}" />
</ui:include>
</div>
<div class="mt-3 flex justify-content-end gap-2">
<!-- DRY/WOU: button-secondary pour navigation -->
<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="outcome" value="/pages/secure/organisation/liste"/>
</ui:include>
<!-- Bouton Créer : p:commandButton direct car action avec méthode backend -->
<p:commandButton value="Créer"
icon="pi pi-check"
action="#{organisationsBean.creerOrganisation}"
update=":formNouvelleOrganisation:messages"
styleClass="ui-button-success" />
</div>
</h:form>
</ui:define>
</ui:composition>
</html>