Files
unionflow-client-quarkus-pr…/target/classes/META-INF/resources/pages/secure/organisation/nouvelle.xhtml
2026-03-01 22:00:28 +00:00

114 lines
6.4 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">Nouvelle Organisation</ui:define>
<ui:define name="content">
<f:event type="preRenderView" listener="#{organisationsBean.preparerNouvelleOrganisation}" />
<h:form id="formNouvelleOrganisation">
<!-- En-tête avec titre et actions (DRY/WOU: card-header) -->
<ui:decorate template="/templates/components/cards/card-header.xhtml">
<ui:param name="title" value="Nouvelle Organisation" />
<ui:param name="subtitle" value="Créez une nouvelle organisation en renseignant les informations essentielles." />
<ui:param name="icon" value="pi pi-building" />
<ui:param name="styleClass" value="mb-3" />
<ui:define name="actions">
<!-- Bouton Enregistrer (MethodExpression direct) -->
<p:commandButton value="Enregistrer"
icon="pi pi-save"
action="#{organisationsBean.creerOrganisation}"
update="formNouvelleOrganisation messages"
styleClass="p-button-success p-button-lg"
validateClient="true">
<p:confirm header="Confirmation"
message="Voulez-vous créer cette organisation ?"
icon="pi pi-question-circle"/>
</p:commandButton>
<!-- DRY/WOU: button-secondary pour Annuler -->
<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>
</ui:define>
<ui:define name="info">
<p class="text-500 text-sm m-0">
<i class="pi pi-asterisk text-red-500 mr-1" style="font-size: 0.5rem;"/>
Les champs marqués d'un astérisque sont obligatoires
</p>
</ui:define>
</ui:decorate>
<!-- Messages globaux -->
<p:messages id="messages" showDetail="true" closable="true" styleClass="mb-3"/>
<!-- Formulaire (DRY/WOU: card-simple) -->
<ui:decorate template="/templates/components/cards/card-simple.xhtml">
<ui:param name="styleClass" value="shadow-2" />
<ui:define name="content">
<!-- DRY/WOU: organisation-form.xhtml include réutilisable -->
<ui:include src="/ui/includes/organisation-form.xhtml">
<ui:param name="model" value="#{organisationsBean.nouvelleOrganisation}" />
<ui:param name="typesItems" value="#{organisationsBean.typesSelectItemsForForm}" />
<ui:param name="completionBean" value="#{organisationsBean}" />
</ui:include>
<!-- Actions du formulaire (bas de page) -->
<p:divider styleClass="mt-5"/>
<div class="flex justify-content-between align-items-center flex-column md:flex-row gap-3 mt-4">
<div class="text-600">
<i class="pi pi-shield mr-2"/>
Toutes les données sont sécurisées et conformes
</div>
<div class="flex gap-2">
<!-- Bouton Réinitialiser avec confirmation -->
<p:commandButton value="Réinitialiser"
icon="pi pi-refresh"
action="#{organisationsBean.preparerNouvelleOrganisation}"
update="formNouvelleOrganisation"
styleClass="p-button-outlined p-button-warning"
immediate="true">
<p:confirm header="Confirmation"
message="Réinitialiser le formulaire ? Toutes les données seront perdues."
icon="pi pi-exclamation-triangle"/>
</p:commandButton>
<!-- DRY/WOU: button-secondary pour Annuler -->
<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 l'organisation (MethodExpression direct) -->
<p:commandButton value="Créer l'organisation"
icon="pi pi-check"
action="#{organisationsBean.creerOrganisation}"
update="formNouvelleOrganisation messages"
styleClass="p-button-success p-button-lg"
validateClient="true">
<p:confirm header="Confirmation de création"
message="Créer cette organisation avec les informations saisies ?"
icon="pi pi-question-circle"/>
</p:commandButton>
</div>
</div>
</ui:define>
</ui:decorate>
<!-- Dialog de confirmation global (DRY/WOU: confirm-dialog) -->
<ui:include src="/templates/components/dialogs/confirm-dialog.xhtml" />
</h:form>
</ui:define>
</ui:composition>