Configure Maven repository for unionflow-server-api dependency
This commit is contained in:
@@ -0,0 +1,561 @@
|
||||
<!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">Gestion des Demandes d'Aide - UnionFlow</ui:define>
|
||||
|
||||
<ui:define name="content">
|
||||
<!-- En-tête -->
|
||||
<div class="grid">
|
||||
<div class="col-12">
|
||||
<div class="card">
|
||||
<div class="flex align-items-center justify-content-between">
|
||||
<div>
|
||||
<h3 class="mb-2">
|
||||
<i class="pi pi-heart text-red-500 mr-2"></i>
|
||||
Gestion des Demandes d'Aide
|
||||
</h3>
|
||||
<p class="text-600 m-0">Traitement et suivi des demandes d'assistance</p>
|
||||
</div>
|
||||
<h:form id="formActionsEntete">
|
||||
<div class="flex gap-2">
|
||||
<p:commandButton value="Nouvelle demande"
|
||||
icon="pi pi-plus"
|
||||
styleClass="ui-button-success"
|
||||
onclick="PF('dlgNouvelleDemande').show();" />
|
||||
<p:commandButton value="Import demandes"
|
||||
icon="pi pi-upload"
|
||||
styleClass="ui-button-outlined ui-button-info"
|
||||
onclick="PF('dlgImportDemandes').show();" />
|
||||
<p:commandButton value="Exporter"
|
||||
icon="pi pi-download"
|
||||
styleClass="ui-button-outlined ui-button-secondary"
|
||||
action="#{demandesBean.exporterDemandes}" />
|
||||
</div>
|
||||
</h:form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Statistiques -->
|
||||
<div class="grid">
|
||||
<div class="col-12 md:col-3">
|
||||
<div class="card bg-orange-100 border-left-3 border-orange-500">
|
||||
<div class="flex justify-content-between">
|
||||
<div>
|
||||
<div class="text-orange-900 font-bold text-2xl">#{demandeBean.enAttente}</div>
|
||||
<div class="text-orange-700">En Attente</div>
|
||||
</div>
|
||||
<div class="bg-orange-500 text-white border-round text-center"
|
||||
style="width: 3rem; height: 3rem; line-height: 3rem;">
|
||||
<i class="pi pi-clock text-xl"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-12 md:col-3">
|
||||
<div class="card bg-red-100 border-left-3 border-red-500">
|
||||
<div class="flex justify-content-between">
|
||||
<div>
|
||||
<div class="text-red-900 font-bold text-2xl">#{demandeBean.urgentes}</div>
|
||||
<div class="text-red-700">Urgentes</div>
|
||||
</div>
|
||||
<div class="bg-red-500 text-white border-round text-center"
|
||||
style="width: 3rem; height: 3rem; line-height: 3rem;">
|
||||
<i class="pi pi-exclamation-triangle text-xl"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-12 md:col-3">
|
||||
<div class="card bg-green-100 border-left-3 border-green-500">
|
||||
<div class="flex justify-content-between">
|
||||
<div>
|
||||
<div class="text-green-900 font-bold text-2xl">#{demandeBean.traitees}</div>
|
||||
<div class="text-green-700">Traitées</div>
|
||||
</div>
|
||||
<div class="bg-green-500 text-white border-round text-center"
|
||||
style="width: 3rem; height: 3rem; line-height: 3rem;">
|
||||
<i class="pi pi-check text-xl"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-12 md:col-3">
|
||||
<div class="card bg-blue-100 border-left-3 border-blue-500">
|
||||
<div class="flex justify-content-between">
|
||||
<div>
|
||||
<div class="text-blue-900 font-bold text-2xl">#{demandeBean.delaiMoyenTraitement}</div>
|
||||
<div class="text-blue-700">Délai Moyen (jours)</div>
|
||||
</div>
|
||||
<div class="bg-blue-500 text-white border-round text-center"
|
||||
style="width: 3rem; height: 3rem; line-height: 3rem;">
|
||||
<i class="pi pi-calendar text-xl"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Demandes urgentes et récentes -->
|
||||
<div class="grid">
|
||||
<div class="col-12 md:col-6">
|
||||
<div class="card">
|
||||
<h5>
|
||||
<i class="pi pi-exclamation-triangle text-red-500 mr-2"></i>
|
||||
Demandes Urgentes
|
||||
</h5>
|
||||
<ui:repeat value="#{demandeBean.demandesUrgentes}" var="demande" varStatus="status">
|
||||
<div class="flex align-items-start p-3 mb-2 border-round border-left-3 border-red-500"
|
||||
style="background: var(--red-50);">
|
||||
<div class="flex-1">
|
||||
<div class="flex align-items-center justify-content-between mb-2">
|
||||
<span class="font-medium text-900">#{demande.objet}</span>
|
||||
<p:tag value="#{demande.type}" severity="danger" />
|
||||
</div>
|
||||
<div class="text-600 mb-2">
|
||||
<i class="pi pi-user mr-1"></i>
|
||||
#{demande.demandeur} • #{demande.numeroMembre}
|
||||
</div>
|
||||
<div class="text-sm text-600">
|
||||
Déposée #{demande.dateDepotRelative} • Échéance: #{demande.dateEcheance}
|
||||
</div>
|
||||
</div>
|
||||
<h:form id="formActionsUrgentes">
|
||||
<div class="flex gap-1 ml-3">
|
||||
<p:commandButton icon="pi pi-eye"
|
||||
styleClass="ui-button-rounded ui-button-text ui-button-info"
|
||||
action="#{demandeBean.voirDemande(demande)}" />
|
||||
<p:commandButton icon="pi pi-check"
|
||||
styleClass="ui-button-rounded ui-button-text ui-button-success"
|
||||
action="#{demandeBean.traiterDemande(demande)}" />
|
||||
</div>
|
||||
</h:form>
|
||||
</div>
|
||||
</ui:repeat>
|
||||
|
||||
<h:form id="formVoirUrgentes">
|
||||
<p:commandButton value="Voir toutes les urgentes"
|
||||
icon="pi pi-arrow-right"
|
||||
styleClass="ui-button-outlined ui-button-danger w-full mt-2"
|
||||
action="#{demandeBean.filtrerUrgentes}" />
|
||||
</h:form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-12 md:col-6">
|
||||
<div class="card">
|
||||
<h5>
|
||||
<i class="pi pi-clock text-blue-500 mr-2"></i>
|
||||
Dernières Demandes
|
||||
</h5>
|
||||
<ui:repeat value="#{demandeBean.dernieresDemandes}" var="demande" varStatus="status">
|
||||
<div class="flex align-items-start p-3 mb-2 border-round"
|
||||
style="background: var(--surface-50);">
|
||||
<div class="border-round p-2 mr-3 #{demande.typeColorClass}">
|
||||
<i class="pi #{demande.typeIcon} text-white"></i>
|
||||
</div>
|
||||
<div class="flex-1">
|
||||
<div class="flex align-items-center justify-content-between mb-1">
|
||||
<span class="font-medium text-900">#{demande.objet}</span>
|
||||
<small class="text-600">#{demande.dateDepotRelative}</small>
|
||||
</div>
|
||||
<div class="text-600 text-sm mb-1">
|
||||
#{demande.demandeur} • #{demande.numeroMembre}
|
||||
</div>
|
||||
<p:tag value="#{demande.statut}" severity="#{demande.statutSeverity}" />
|
||||
</div>
|
||||
<h:form id="formActionsRecentes">
|
||||
<div class="flex gap-1 ml-2">
|
||||
<p:commandButton icon="pi pi-eye"
|
||||
styleClass="ui-button-rounded ui-button-text ui-button-sm"
|
||||
action="#{demandeBean.voirDemande(demande)}" />
|
||||
</div>
|
||||
</h:form>
|
||||
</div>
|
||||
</ui:repeat>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Graphiques -->
|
||||
<div class="grid">
|
||||
<div class="col-12 md:col-8">
|
||||
<div class="card">
|
||||
<h5>Évolution des Demandes</h5>
|
||||
<div class="surface-100 p-4 border-round text-center"><div class="text-2xl font-bold text-primary mb-2">📊</div><div class="text-600">Graphique temporaire</div></div><!--chart
|
||||
-->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-12 md:col-4">
|
||||
<div class="card">
|
||||
<h5>Répartition par Type</h5>
|
||||
<div class="surface-100 p-4 border-round text-center"><div class="text-2xl font-bold text-primary mb-2">📊</div><div class="text-600">Graphique temporaire</div></div><!--chart
|
||||
-->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Liste complète des demandes -->
|
||||
<div class="card">
|
||||
<h:form id="formDemandes">
|
||||
<h5>Toutes les Demandes</h5>
|
||||
|
||||
<!-- Filtres -->
|
||||
<p:toolbar>
|
||||
<p:toolbarGroup>
|
||||
<div class="flex align-items-center gap-2">
|
||||
<span class="p-input-icon-left">
|
||||
<i class="pi pi-search"></i>
|
||||
<p:inputText placeholder="Rechercher..."
|
||||
value="#{demandeBean.searchFilter}">
|
||||
<p:ajax event="keyup" update="dtDemandes" />
|
||||
</p:inputText>
|
||||
</span>
|
||||
|
||||
<p:selectOneMenu value="#{demandeBean.statutFilter}">
|
||||
<f:selectItem itemLabel="Tous les statuts" itemValue="" />
|
||||
<f:selectItem itemLabel="En attente" itemValue="EN_ATTENTE" />
|
||||
<f:selectItem itemLabel="En cours" itemValue="EN_COURS" />
|
||||
<f:selectItem itemLabel="Approuvée" itemValue="APPROUVEE" />
|
||||
<f:selectItem itemLabel="Rejetée" itemValue="REJETEE" />
|
||||
<f:selectItem itemLabel="Annulée" itemValue="ANNULEE" />
|
||||
<p:ajax update="dtDemandes" />
|
||||
</p:selectOneMenu>
|
||||
|
||||
<p:selectOneMenu value="#{demandeBean.typeFilter}">
|
||||
<f:selectItem itemLabel="Tous les types" itemValue="" />
|
||||
<f:selectItem itemLabel="Adhésion" itemValue="ADHESION" />
|
||||
<f:selectItem itemLabel="Aide financière" itemValue="AIDE_FINANCIERE" />
|
||||
<f:selectItem itemLabel="Certificat" itemValue="CERTIFICAT" />
|
||||
<f:selectItem itemLabel="Mutation" itemValue="MUTATION" />
|
||||
<f:selectItem itemLabel="Réclamation" itemValue="RECLAMATION" />
|
||||
<f:selectItem itemLabel="Autre" itemValue="AUTRE" />
|
||||
<p:ajax update="dtDemandes" />
|
||||
</p:selectOneMenu>
|
||||
|
||||
<p:selectOneMenu value="#{demandeBean.prioriteFilter}">
|
||||
<f:selectItem itemLabel="Toutes priorités" itemValue="" />
|
||||
<f:selectItem itemLabel="Urgente" itemValue="URGENTE" />
|
||||
<f:selectItem itemLabel="Haute" itemValue="HAUTE" />
|
||||
<f:selectItem itemLabel="Normale" itemValue="NORMALE" />
|
||||
<f:selectItem itemLabel="Basse" itemValue="BASSE" />
|
||||
<p:ajax update="dtDemandes" />
|
||||
</p:selectOneMenu>
|
||||
|
||||
<p:calendar value="#{demandeBean.dateFilter}"
|
||||
pattern="dd/MM/yyyy" showIcon="true"
|
||||
placeholder="Filtrer par date">
|
||||
<p:ajax event="dateSelect" update="dtDemandes" />
|
||||
</p:calendar>
|
||||
</div>
|
||||
</p:toolbarGroup>
|
||||
|
||||
<p:toolbarGroup align="right">
|
||||
<p:commandButton icon="pi pi-refresh"
|
||||
styleClass="ui-button-outlined ui-button-secondary"
|
||||
action="#{demandeBean.actualiser}"
|
||||
update="@form"
|
||||
title="Actualiser" />
|
||||
</p:toolbarGroup>
|
||||
</p:toolbar>
|
||||
|
||||
<!-- DataTable -->
|
||||
<p:dataTable id="dtDemandes"
|
||||
var="demande"
|
||||
value="#{demandeBean.demandes}"
|
||||
paginator="true"
|
||||
rows="15"
|
||||
paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
|
||||
rowsPerPageTemplate="10,15,25,50"
|
||||
currentPageReportTemplate="Affichage {startRecord}-{endRecord} sur {totalRecords}"
|
||||
selection="#{demandeBean.selectedDemandes}"
|
||||
rowKey="#{demande.id}"
|
||||
selectionMode="multiple"
|
||||
styleClass="mt-3">
|
||||
|
||||
<p:column selectionMode="multiple" style="width:50px" />
|
||||
|
||||
<p:column headerText="Référence" sortBy="#{demande.reference}" style="width:120px">
|
||||
<h:outputText value="#{demande.reference}" styleClass="font-mono font-bold" />
|
||||
</p:column>
|
||||
|
||||
<p:column headerText="Demandeur" sortBy="#{demande.nomDemandeur}">
|
||||
<div class="flex align-items-center">
|
||||
<div class="border-circle bg-primary text-white flex align-items-center justify-content-center mr-2"
|
||||
style="width: 30px; height: 30px;">
|
||||
<span style="font-size: 0.8rem;">#{demande.initialesDemandeur}</span>
|
||||
</div>
|
||||
<div>
|
||||
<div class="font-medium text-900">#{demande.nomCompletDemandeur}</div>
|
||||
<small class="text-600">#{demande.numeroMembre} • #{demande.telephoneDemandeur}</small>
|
||||
</div>
|
||||
</div>
|
||||
</p:column>
|
||||
|
||||
<p:column headerText="Type" sortBy="#{demande.type}" style="width:140px">
|
||||
<div class="flex align-items-center">
|
||||
<div class="border-round p-2 mr-2 #{demande.typeColorClass}">
|
||||
<i class="pi #{demande.typeIcon} text-white text-sm"></i>
|
||||
</div>
|
||||
<span>#{demande.type}</span>
|
||||
</div>
|
||||
</p:column>
|
||||
|
||||
<p:column headerText="Objet" sortBy="#{demande.objet}">
|
||||
<h:outputText value="#{demande.objet}" />
|
||||
</p:column>
|
||||
|
||||
<p:column headerText="Priorité" sortBy="#{demande.priorite}" style="width:100px">
|
||||
<p:tag value="#{demande.priorite}"
|
||||
severity="#{demande.prioriteSeverity}"
|
||||
icon="pi #{demande.prioriteIcon}" />
|
||||
</p:column>
|
||||
|
||||
<p:column headerText="Statut" sortBy="#{demande.statut}" style="width:120px">
|
||||
<p:tag value="#{demande.statut}"
|
||||
severity="#{demande.statutSeverity}"
|
||||
icon="pi #{demande.statutIcon}" />
|
||||
</p:column>
|
||||
|
||||
<p:column headerText="Date dépôt" sortBy="#{demande.dateDepot}" style="width:120px">
|
||||
<div>
|
||||
<div class="font-medium">#{demande.dateDepot}</div>
|
||||
<small class="text-600">#{demande.heureDepot}</small>
|
||||
</div>
|
||||
</p:column>
|
||||
|
||||
<p:column headerText="Échéance" sortBy="#{demande.dateEcheance}" style="width:120px">
|
||||
<h:outputText value="#{demande.dateEcheance}"
|
||||
styleClass="#{demande.echeanceClass}">
|
||||
<f:convertDateTime pattern="dd/MM/yyyy" type="localDate" />
|
||||
</h:outputText>
|
||||
</p:column>
|
||||
|
||||
<p:column headerText="Assignée à" sortBy="#{demande.assigneA}" style="width:120px">
|
||||
<h:outputText value="#{demande.assigneA}" rendered="#{demande.assigneA != null}" />
|
||||
<span class="text-400" rendered="#{demande.assigneA == null}">Non assignée</span>
|
||||
</p:column>
|
||||
|
||||
<p:column headerText="Actions" style="width:200px">
|
||||
<div class="flex gap-1">
|
||||
<p:commandButton icon="pi pi-eye"
|
||||
styleClass="ui-button-rounded ui-button-text ui-button-info"
|
||||
action="#{demandeBean.voirDemande(demande)}"
|
||||
title="Voir détails" />
|
||||
<p:commandButton icon="pi pi-user"
|
||||
styleClass="ui-button-rounded ui-button-text ui-button-secondary"
|
||||
action="#{demandeBean.assignerDemande(demande)}"
|
||||
title="Assigner"
|
||||
rendered="#{demande.assigneA == null}" />
|
||||
<p:commandButton icon="pi pi-cog"
|
||||
styleClass="ui-button-rounded ui-button-text ui-button-warning"
|
||||
action="#{demandeBean.traiterDemande(demande)}"
|
||||
title="Traiter"
|
||||
rendered="#{demande.statut == 'EN_ATTENTE' or demande.statut == 'EN_COURS'}" />
|
||||
<p:commandButton icon="pi pi-check"
|
||||
styleClass="ui-button-rounded ui-button-text ui-button-success"
|
||||
action="#{demandeBean.approuverDemande(demande)}"
|
||||
title="Approuver"
|
||||
rendered="#{demande.statut == 'EN_COURS'}" />
|
||||
<p:commandButton icon="pi pi-times"
|
||||
styleClass="ui-button-rounded ui-button-text ui-button-danger"
|
||||
action="#{demandeBean.rejeterDemande(demande)}"
|
||||
onclick="return confirm('Êtes-vous sûr de vouloir rejeter cette demande ?');"
|
||||
title="Rejeter"
|
||||
rendered="#{demande.statut == 'EN_COURS'}" />
|
||||
<p:commandButton icon="pi pi-file"
|
||||
styleClass="ui-button-rounded ui-button-text ui-button-secondary"
|
||||
action="#{demandeBean.voirPiecesJointes(demande)}"
|
||||
title="Pièces jointes"
|
||||
rendered="#{demande.hasPiecesJointes}" />
|
||||
</div>
|
||||
</p:column>
|
||||
</p:dataTable>
|
||||
|
||||
<!-- Actions groupées -->
|
||||
<div class="mt-3 flex justify-content-between align-items-center">
|
||||
<div>
|
||||
<span class="text-600">#{demandeBean.selectedDemandes.size()} demande(s) sélectionnée(s)</span>
|
||||
</div>
|
||||
<div class="flex gap-2">
|
||||
<p:commandButton value="Assigner en lot"
|
||||
icon="pi pi-users"
|
||||
styleClass="ui-button-outlined ui-button-secondary"
|
||||
onclick="PF('dlgAssignationLot').show();"
|
||||
disabled="#{empty demandeBean.selectedDemandes}" />
|
||||
<p:commandButton value="Marquer traitées"
|
||||
icon="pi pi-check-circle"
|
||||
styleClass="ui-button-outlined ui-button-success"
|
||||
action="#{demandeBean.marquerTraitees}"
|
||||
disabled="#{empty demandeBean.selectedDemandes}" />
|
||||
<p:commandButton value="Exporter sélection"
|
||||
icon="pi pi-file-excel"
|
||||
styleClass="ui-button-outlined ui-button-info"
|
||||
action="#{demandeBean.exporterSelection}"
|
||||
disabled="#{empty demandeBean.selectedDemandes}" />
|
||||
</div>
|
||||
</div>
|
||||
</h:form>
|
||||
</div>
|
||||
|
||||
<!-- Dialog Nouvelle Demande -->
|
||||
<p:dialog header="Nouvelle Demande" widgetVar="dlgNouvelleDemande" modal="true" width="700">
|
||||
<h:form id="formNouvelleDemande">
|
||||
<div class="ui-fluid">
|
||||
<div class="grid">
|
||||
<div class="col-12 md:col-6">
|
||||
<div class="field">
|
||||
<p:outputLabel for="demandeurSelect" value="Demandeur" />
|
||||
<p:autoComplete id="demandeurSelect"
|
||||
value="#{demandeBean.membreDemandeur}"
|
||||
completeMethod="#{demandeBean.rechercherMembres}"
|
||||
var="membre" itemLabel="#{membre.nomComplet}" itemValue="#{membre}"
|
||||
converter="membreConverter"
|
||||
placeholder="Rechercher un membre...">
|
||||
<p:column>
|
||||
<div class="flex align-items-center">
|
||||
<div class="border-circle bg-primary text-white flex align-items-center justify-content-center mr-2"
|
||||
style="width: 30px; height: 30px;">
|
||||
<span style="font-size: 0.8rem;">#{membre.initiales}</span>
|
||||
</div>
|
||||
<div>
|
||||
<div class="font-medium">#{membre.nomComplet}</div>
|
||||
<small class="text-600">#{membre.numeroMembre}</small>
|
||||
</div>
|
||||
</div>
|
||||
</p:column>
|
||||
</p:autoComplete>
|
||||
</div>
|
||||
|
||||
<div class="field">
|
||||
<p:outputLabel for="typeDemande" value="Type de demande" />
|
||||
<p:selectOneMenu id="typeDemande" value="#{demandeBean.nouvelleDemande.type}" required="true">
|
||||
<f:selectItem itemLabel="Sélectionner..." itemValue="" />
|
||||
<f:selectItem itemLabel="📋 Adhésion" itemValue="ADHESION" />
|
||||
<f:selectItem itemLabel="💰 Aide financière" itemValue="AIDE_FINANCIERE" />
|
||||
<f:selectItem itemLabel="📄 Certificat" itemValue="CERTIFICAT" />
|
||||
<f:selectItem itemLabel="🔄 Mutation" itemValue="MUTATION" />
|
||||
<f:selectItem itemLabel="⚠️ Réclamation" itemValue="RECLAMATION" />
|
||||
<f:selectItem itemLabel="🔧 Autre" itemValue="AUTRE" />
|
||||
</p:selectOneMenu>
|
||||
</div>
|
||||
|
||||
<div class="field">
|
||||
<p:outputLabel for="prioriteDemande" value="Priorité" />
|
||||
<p:selectOneMenu id="prioriteDemande" value="#{demandeBean.nouvelleDemande.priorite}">
|
||||
<f:selectItem itemLabel="🔴 Urgente" itemValue="URGENTE" />
|
||||
<f:selectItem itemLabel="🟡 Haute" itemValue="HAUTE" />
|
||||
<f:selectItem itemLabel="🟢 Normale" itemValue="NORMALE" />
|
||||
<f:selectItem itemLabel="⚪ Basse" itemValue="BASSE" />
|
||||
</p:selectOneMenu>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-12 md:col-6">
|
||||
<div class="field">
|
||||
<p:outputLabel for="objetDemande" value="Objet" />
|
||||
<p:inputText id="objetDemande" value="#{demandeBean.nouvelleDemande.objet}"
|
||||
required="true" placeholder="Résumé de la demande" />
|
||||
</div>
|
||||
|
||||
<div class="field">
|
||||
<p:outputLabel for="dateEcheanceDemande" value="Date d'échéance" />
|
||||
<p:calendar id="dateEcheanceDemande" value="#{demandeBean.nouvelleDemande.dateEcheance}"
|
||||
pattern="dd/MM/yyyy" showIcon="true" />
|
||||
</div>
|
||||
|
||||
<div class="field">
|
||||
<p:outputLabel for="assignerA" value="Assigner à" />
|
||||
<p:selectOneMenu id="assignerA" value="#{demandeBean.nouvelleDemande.assigneA}">
|
||||
<f:selectItem itemLabel="Non assigné" itemValue="" />
|
||||
<f:selectItems value="#{demandeBean.gestionnairesDisponibles}"
|
||||
var="gestionnaire"
|
||||
itemLabel="#{gestionnaire.nom}"
|
||||
itemValue="#{gestionnaire.id}" />
|
||||
</p:selectOneMenu>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-12">
|
||||
<div class="field">
|
||||
<p:outputLabel for="descriptionDemande" value="Description détaillée" />
|
||||
<p:inputTextarea id="descriptionDemande" value="#{demandeBean.nouvelleDemande.description}"
|
||||
rows="4" placeholder="Décrivez la demande en détail..." />
|
||||
</div>
|
||||
|
||||
<div class="field">
|
||||
<p:outputLabel for="piecesJointes" value="Pièces jointes" />
|
||||
<p:fileUpload id="piecesJointes" mode="advanced"
|
||||
multiple="true" dragDropSupport="true"
|
||||
uploadLabel="Télécharger" cancelLabel="Annuler" chooseLabel="Sélectionner"
|
||||
sizeLimit="5000000" fileLimit="5" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="flex gap-2 mt-3">
|
||||
<p:commandButton value="Créer la demande" icon="pi pi-check"
|
||||
styleClass="ui-button-success"
|
||||
action="#{demandeBean.creerDemande}"
|
||||
update="@form :formDemandes"
|
||||
oncomplete="if(!args.validationFailed) PF('dlgNouvelleDemande').hide();" />
|
||||
<p:commandButton value="Annuler" icon="pi pi-times"
|
||||
styleClass="ui-button-secondary"
|
||||
onclick="PF('dlgNouvelleDemande').hide();" type="button" />
|
||||
</div>
|
||||
</h:form>
|
||||
</p:dialog>
|
||||
|
||||
<!-- Dialog Assignation en Lot -->
|
||||
<p:dialog header="Assignation en Lot" widgetVar="dlgAssignationLot" modal="true" width="400">
|
||||
<h:form id="formAssignationLot">
|
||||
<div class="ui-fluid">
|
||||
<div class="field">
|
||||
<p:outputLabel for="gestionnaireAssignation" value="Assigner à" />
|
||||
<p:selectOneMenu id="gestionnaireAssignation" value="#{demandeBean.gestionnaireAssignation}" required="true">
|
||||
<f:selectItem itemLabel="Sélectionner..." itemValue="" />
|
||||
<f:selectItems value="#{demandeBean.gestionnairesDisponibles}"
|
||||
var="gestionnaire"
|
||||
itemLabel="#{gestionnaire.nom}"
|
||||
itemValue="#{gestionnaire.id}" />
|
||||
</p:selectOneMenu>
|
||||
</div>
|
||||
|
||||
<div class="field">
|
||||
<p:outputLabel for="commentaireAssignation" value="Commentaire" />
|
||||
<p:inputTextarea id="commentaireAssignation" value="#{demandeBean.commentaireAssignation}"
|
||||
rows="3" placeholder="Commentaire optionnel..." />
|
||||
</div>
|
||||
|
||||
<div class="surface-50 p-3 border-round">
|
||||
<div class="font-medium mb-2">Demandes sélectionnées :</div>
|
||||
<div class="text-600">#{demandeBean.selectedDemandes.size()} demande(s) seront assignées</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="flex gap-2 mt-3">
|
||||
<p:commandButton value="Assigner" icon="pi pi-check"
|
||||
styleClass="ui-button-warning"
|
||||
action="#{demandeBean.effectuerAssignationLot}"
|
||||
update="@form :formDemandes"
|
||||
oncomplete="if(!args.validationFailed) PF('dlgAssignationLot').hide();" />
|
||||
<p:commandButton value="Annuler" icon="pi pi-times"
|
||||
styleClass="ui-button-secondary"
|
||||
onclick="PF('dlgAssignationLot').hide();" type="button" />
|
||||
</div>
|
||||
</h:form>
|
||||
</p:dialog>
|
||||
</ui:define>
|
||||
|
||||
</ui:composition>
|
||||
Reference in New Issue
Block a user