Refactoring

This commit is contained in:
dahoud
2026-03-01 22:00:28 +00:00
parent c0e2c4da45
commit 6b28cf751e
469 changed files with 26866 additions and 14768 deletions

View File

@@ -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>