Corrections appliquées: - menu.xhtml: /equipes/nouvelle -> /equipes/nouveau - equipes.xhtml: createPath /equipes/nouvelle -> /equipes/nouveau Vérification complète effectuée: ✅ Tous les outcomes du menu résolus (150+ routes) ✅ Tous les createPath résolus (8 modules) ✅ Aucun fichier manquant ✅ Nomenclature standardisée: nouveau.xhtml partout Respect strict DRY et cohérence.
94 lines
5.4 KiB
HTML
94 lines
5.4 KiB
HTML
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
|
|
xmlns:h="http://java.sun.com/jsf/html"
|
|
xmlns:f="http://java.sun.com/jsf/core"
|
|
xmlns:ui="http://java.sun.com/jsf/facelets"
|
|
xmlns:p="http://primefaces.org/ui"
|
|
template="/WEB-INF/template.xhtml">
|
|
|
|
<ui:define name="title">Équipes - BTP Xpress</ui:define>
|
|
|
|
<ui:define name="content">
|
|
<div class="layout-dashboard">
|
|
<div class="grid">
|
|
<div class="col-12">
|
|
<div class="card">
|
|
<div class="flex align-items-center justify-content-between mb-3">
|
|
<h1>Gestion des Équipes</h1>
|
|
<p:commandButton value="Nouvelle équipe" icon="pi pi-users"
|
|
action="#{equipeView.createNew()}"
|
|
styleClass="ui-button-primary"/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="col-12">
|
|
<ui:include src="/WEB-INF/components/liste-filters.xhtml">
|
|
<ui:param name="formId" value="filtresForm"/>
|
|
<ui:param name="viewBean" value="#{equipeView}"/>
|
|
<ui:param name="tableId" value="equipesTable"/>
|
|
<ui:define name="filter-fields">
|
|
<div class="grid">
|
|
<div class="col-12 md:col-4">
|
|
<h:outputLabel for="filtreNom" value="Nom de l'équipe"/>
|
|
<p:inputText id="filtreNom" value="#{equipeView.filtreNom}"
|
|
placeholder="Rechercher par nom..." style="width: 100%;"/>
|
|
</div>
|
|
<div class="col-12 md:col-4">
|
|
<h:outputLabel for="filtreSpecialite" value="Spécialité"/>
|
|
<p:inputText id="filtreSpecialite" value="#{equipeView.filtreSpecialite}"
|
|
placeholder="Rechercher par spécialité..." style="width: 100%;"/>
|
|
</div>
|
|
<div class="col-12 md:col-4">
|
|
<h:outputLabel for="filtreStatut" value="Statut"/>
|
|
<p:selectOneMenu id="filtreStatut" value="#{equipeView.filtreStatut}" style="width: 100%;">
|
|
<f:selectItem itemLabel="Tous" itemValue="TOUS"/>
|
|
<f:selectItem itemLabel="Active" itemValue="ACTIVE"/>
|
|
<f:selectItem itemLabel="Inactive" itemValue="INACTIVE"/>
|
|
</p:selectOneMenu>
|
|
</div>
|
|
</div>
|
|
</ui:define>
|
|
</ui:include>
|
|
</div>
|
|
|
|
<div class="col-12">
|
|
<ui:include src="/WEB-INF/components/liste-table.xhtml">
|
|
<ui:param name="formId" value="equipesForm"/>
|
|
<ui:param name="tableId" value="equipesTable"/>
|
|
<ui:param name="viewBean" value="#{equipeView}"/>
|
|
<ui:param name="var" value="equipe"/>
|
|
<ui:param name="title" value="Liste des équipes"/>
|
|
<ui:param name="createPath" value="/equipes/nouveau"/>
|
|
<ui:define name="columns">
|
|
<p:column headerText="Nom" sortBy="#{equipe.nom}">
|
|
<h:outputText value="#{equipe.nom}"/>
|
|
</p:column>
|
|
<p:column headerText="Chef d'équipe" sortBy="#{equipe.chef}">
|
|
<h:outputText value="#{equipe.chef}"/>
|
|
</p:column>
|
|
<p:column headerText="Spécialité" sortBy="#{equipe.specialite}">
|
|
<h:outputText value="#{equipe.specialite}"/>
|
|
</p:column>
|
|
<p:column headerText="Nombre de membres">
|
|
<p:tag value="#{equipe.nombreMembres}" severity="info"/>
|
|
</p:column>
|
|
<p:column headerText="Description">
|
|
<h:outputText value="#{equipe.description}"/>
|
|
</p:column>
|
|
<p:column headerText="Statut" sortBy="#{equipe.statut}">
|
|
<p:tag value="#{equipe.statut}"
|
|
severity="#{equipe.statut == 'ACTIVE' ? 'success' : 'warning'}"/>
|
|
</p:column>
|
|
<p:column headerText="Actions" style="width: 150px;">
|
|
<p:commandButton icon="pi pi-eye" title="Voir les détails"
|
|
styleClass="ui-button-text"
|
|
action="#{equipeView.viewDetails(equipe.id)}"/>
|
|
</p:column>
|
|
</ui:define>
|
|
</ui:include>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</ui:define>
|
|
</ui:composition>
|