Refactoring
This commit is contained in:
@@ -1,64 +1,113 @@
|
||||
<!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 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: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>
|
||||
<!-- 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>
|
||||
<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>
|
||||
</ui:define>
|
||||
</ui:decorate>
|
||||
|
||||
<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>
|
||||
<!-- Dialog de confirmation global (DRY/WOU: confirm-dialog) -->
|
||||
<ui:include src="/templates/components/dialogs/confirm-dialog.xhtml" />
|
||||
|
||||
<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>
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user