Configure Maven repository for unionflow-server-api dependency
This commit is contained in:
@@ -0,0 +1,714 @@
|
||||
<!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">
|
||||
<div class="ui-fluid">
|
||||
<!-- En-tête principal avec composant réutilisable -->
|
||||
<ui:include src="/templates/components/layout/page-header.xhtml">
|
||||
<ui:param name="icon" value="pi pi-heart text-red-500" />
|
||||
<ui:param name="title" value="Gestion des Demandes d'Aide" />
|
||||
<ui:param name="description" value="Traitement et suivi des demandes d'assistance • #{demandeBean.demandes.size()} demandes • #{demandeBean.enAttente} en attente" />
|
||||
<ui:define name="actions">
|
||||
<h:form id="formActionsEntete">
|
||||
<ui:include src="/templates/components/buttons/button-success.xhtml">
|
||||
<ui:param name="value" value="" />
|
||||
<ui:param name="icon" value="pi pi-plus" />
|
||||
<ui:param name="title" value="Nouvelle demande" />
|
||||
<ui:param name="onclick" value="PF('dlgNouvelleDemande').show();" />
|
||||
<ui:param name="styleClass" value="ui-button-sm mr-3" />
|
||||
</ui:include>
|
||||
<ui:include src="/templates/components/buttons/button-info.xhtml">
|
||||
<ui:param name="value" value="" />
|
||||
<ui:param name="icon" value="pi pi-upload" />
|
||||
<ui:param name="title" value="Import demandes" />
|
||||
<ui:param name="onclick" value="PF('dlgImportDemandes').show();" />
|
||||
<ui:param name="outlined" value="true" />
|
||||
<ui:param name="styleClass" value="ui-button-sm mr-3" />
|
||||
</ui:include>
|
||||
<ui:include src="/templates/components/buttons/button-secondary.xhtml">
|
||||
<ui:param name="value" value="" />
|
||||
<ui:param name="icon" value="pi pi-download" />
|
||||
<ui:param name="title" value="Exporter" />
|
||||
<ui:param name="action" value="#{demandeBean.exporterDemandes}" />
|
||||
<ui:param name="update" value="none" />
|
||||
<ui:param name="outlined" value="true" />
|
||||
<ui:param name="styleClass" value="ui-button-sm" />
|
||||
</ui:include>
|
||||
</h:form>
|
||||
</ui:define>
|
||||
</ui:include>
|
||||
|
||||
<!-- KPIs avec composant réutilisable -->
|
||||
<div class="formgrid grid">
|
||||
<!-- KPI 1: En Attente -->
|
||||
<ui:include src="/templates/components/cards/kpi-card.xhtml">
|
||||
<ui:param name="title" value="En Attente" />
|
||||
<ui:param name="value" value="#{demandeBean.enAttente}" />
|
||||
<ui:param name="icon" value="pi-clock" />
|
||||
<ui:param name="iconColor" value="orange-600" />
|
||||
<ui:param name="showGrowth" value="false" />
|
||||
<ui:param name="showProgress" value="false" />
|
||||
<ui:param name="colSize" value="col-12 md:col-6 lg:col-3" />
|
||||
</ui:include>
|
||||
|
||||
<!-- KPI 2: Demandes Urgentes -->
|
||||
<ui:include src="/templates/components/cards/kpi-card.xhtml">
|
||||
<ui:param name="title" value="Urgentes" />
|
||||
<ui:param name="value" value="#{demandeBean.urgentes}" />
|
||||
<ui:param name="icon" value="pi-exclamation-triangle" />
|
||||
<ui:param name="iconColor" value="red-600" />
|
||||
<ui:param name="showGrowth" value="false" />
|
||||
<ui:param name="showProgress" value="false" />
|
||||
<ui:param name="colSize" value="col-12 md:col-6 lg:col-3" />
|
||||
</ui:include>
|
||||
|
||||
<!-- KPI 3: Traitées -->
|
||||
<ui:include src="/templates/components/cards/kpi-card.xhtml">
|
||||
<ui:param name="title" value="Traitées" />
|
||||
<ui:param name="value" value="#{demandeBean.traitees}" />
|
||||
<ui:param name="icon" value="pi-check" />
|
||||
<ui:param name="iconColor" value="green-600" />
|
||||
<ui:param name="showGrowth" value="false" />
|
||||
<ui:param name="showProgress" value="false" />
|
||||
<ui:param name="colSize" value="col-12 md:col-6 lg:col-3" />
|
||||
</ui:include>
|
||||
|
||||
<!-- KPI 4: Délai Moyen -->
|
||||
<ui:include src="/templates/components/cards/kpi-card.xhtml">
|
||||
<ui:param name="title" value="Délai Moyen" />
|
||||
<ui:param name="value" value="#{demandeBean.delaiMoyenTraitement} jours" />
|
||||
<ui:param name="icon" value="pi-calendar" />
|
||||
<ui:param name="iconColor" value="blue-600" />
|
||||
<ui:param name="showGrowth" value="false" />
|
||||
<ui:param name="showProgress" value="false" />
|
||||
<ui:param name="colSize" value="col-12 md:col-6 lg:col-3" />
|
||||
</ui:include>
|
||||
</div>
|
||||
|
||||
<!-- Demandes urgentes et récentes -->
|
||||
<div class="formgrid grid">
|
||||
<div class="field col-12 md:col-8">
|
||||
<div class="card surface-0 hover:surface-100 border-round-lg transition-all transition-duration-200">
|
||||
<div class="p-3">
|
||||
<h5 class="text-900 font-bold mb-3">
|
||||
<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="surface-100 border-round-lg p-3 mb-3 border-left-3 border-red-500 hover:surface-200 transition-colors transition-duration-150">
|
||||
<div class="flex align-items-start justify-content-between">
|
||||
<div class="flex align-items-start">
|
||||
<div class="flex align-items-center justify-content-center surface-100 border-round-lg mr-3"
|
||||
style="width: 2.5rem; height: 2.5rem;">
|
||||
<i class="pi #{demande.typeIcon} text-red-600"></i>
|
||||
</div>
|
||||
<div class="flex-1">
|
||||
<div class="flex align-items-center justify-content-between mb-2">
|
||||
<h6 class="text-900 font-medium m-0">#{demande.objet}</h6>
|
||||
<p:tag value="#{demande.priorite}"
|
||||
severity="#{demande.prioriteSeverity}"
|
||||
styleClass="text-xs" />
|
||||
</div>
|
||||
<div class="text-600 mb-2 text-sm">
|
||||
<i class="pi pi-user mr-2"></i>
|
||||
<span class="font-medium">#{demande.demandeur}</span> • #{demande.numeroMembre}
|
||||
</div>
|
||||
<div class="flex align-items-center text-xs text-500">
|
||||
<i class="pi pi-clock mr-1"></i>
|
||||
<span>Déposée #{demande.dateDepotRelative}</span>
|
||||
<span class="mx-2">•</span>
|
||||
<i class="pi pi-calendar mr-1"></i>
|
||||
<span>Échéance: #{demande.dateEcheance}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<h:form>
|
||||
<div class="flex gap-2">
|
||||
<ui:include src="/templates/components/buttons/button-info.xhtml">
|
||||
<ui:param name="value" value="" />
|
||||
<ui:param name="icon" value="pi pi-eye" />
|
||||
<ui:param name="title" value="Voir détails" />
|
||||
<ui:param name="action" value="#{demandeBean.voirDemande(demande)}" />
|
||||
<ui:param name="update" value="none" />
|
||||
<ui:param name="styleClass" value="ui-button-rounded ui-button-text ui-button-sm" />
|
||||
</ui:include>
|
||||
<ui:include src="/templates/components/buttons/button-success.xhtml">
|
||||
<ui:param name="value" value="" />
|
||||
<ui:param name="icon" value="pi pi-check" />
|
||||
<ui:param name="title" value="Traiter" />
|
||||
<ui:param name="action" value="#{demandeBean.traiterDemande(demande)}" />
|
||||
<ui:param name="update" value=":formDemandes:dtDemandes" />
|
||||
<ui:param name="styleClass" value="ui-button-rounded ui-button-text ui-button-sm" />
|
||||
</ui:include>
|
||||
</div>
|
||||
</h:form>
|
||||
</div>
|
||||
</div>
|
||||
</ui:repeat>
|
||||
|
||||
<div class="mt-3">
|
||||
<h:form>
|
||||
<ui:include src="/templates/components/buttons/button-secondary.xhtml">
|
||||
<ui:param name="value" value="Voir toutes les urgentes" />
|
||||
<ui:param name="icon" value="pi pi-arrow-right" />
|
||||
<ui:param name="action" value="#{demandeBean.filtrerUrgentes}" />
|
||||
<ui:param name="update" value="none" />
|
||||
<ui:param name="outlined" value="true" />
|
||||
<ui:param name="styleClass" value="ui-button-danger ui-button-sm w-full" />
|
||||
</ui:include>
|
||||
</h:form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="field col-12 md:col-4">
|
||||
<div class="card surface-0 hover:surface-100 border-round-lg transition-all transition-duration-200">
|
||||
<div class="p-3">
|
||||
<h5 class="text-900 font-bold mb-3">
|
||||
<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="surface-100 border-round-lg p-3 mb-3 hover:surface-200 transition-colors transition-duration-150">
|
||||
<div class="flex align-items-start justify-content-between">
|
||||
<div class="flex align-items-start">
|
||||
<div class="flex align-items-center justify-content-center border-round-lg mr-3 #{demande.typeColorClass}"
|
||||
style="width: 2.5rem; height: 2.5rem;">
|
||||
<i class="pi #{demande.typeIcon} text-white"></i>
|
||||
</div>
|
||||
<div class="flex-1">
|
||||
<div class="flex align-items-center justify-content-between mb-2">
|
||||
<h6 class="text-900 font-medium m-0">#{demande.objet}</h6>
|
||||
<small class="text-500 text-xs">#{demande.dateDepotRelative}</small>
|
||||
</div>
|
||||
<div class="text-600 mb-2 text-sm">
|
||||
<i class="pi pi-user mr-2"></i>
|
||||
<span class="font-medium">#{demande.demandeur}</span> • #{demande.numeroMembre}
|
||||
</div>
|
||||
<p:tag value="#{demande.statut}"
|
||||
severity="#{demande.statutSeverity}"
|
||||
icon="pi #{demande.statutIcon}"
|
||||
styleClass="text-xs" />
|
||||
</div>
|
||||
</div>
|
||||
<h:form>
|
||||
<div class="flex gap-2">
|
||||
<ui:include src="/templates/components/buttons/button-info.xhtml">
|
||||
<ui:param name="value" value="" />
|
||||
<ui:param name="icon" value="pi pi-eye" />
|
||||
<ui:param name="title" value="Voir détails" />
|
||||
<ui:param name="action" value="#{demandeBean.voirDemande(demande)}" />
|
||||
<ui:param name="update" value="none" />
|
||||
<ui:param name="styleClass" value="ui-button-rounded ui-button-text ui-button-sm" />
|
||||
</ui:include>
|
||||
</div>
|
||||
</h:form>
|
||||
</div>
|
||||
</div>
|
||||
</ui:repeat>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Section Filtres avec composant réutilisable -->
|
||||
<ui:decorate template="/templates/components/cards/filter-bar.xhtml">
|
||||
<ui:param name="title" value="Filtres et Recherche" />
|
||||
<ui:define name="filters">
|
||||
<h:form id="formFiltres">
|
||||
<div class="formgrid grid">
|
||||
<div class="field col-12 md:col-6 lg:col-3">
|
||||
<ui:include src="/templates/components/forms/form-field-search-text.xhtml">
|
||||
<ui:param name="id" value="searchFilter" />
|
||||
<ui:param name="label" value="Rechercher" />
|
||||
<ui:param name="value" value="#{demandeBean.searchFilter}" />
|
||||
<ui:param name="placeholder" value="Rechercher..." />
|
||||
<ui:param name="update" value=":formDemandes:dtDemandes" />
|
||||
<ui:param name="event" value="keyup" />
|
||||
</ui:include>
|
||||
</div>
|
||||
|
||||
<div class="field col-12 md:col-6 lg:col-3">
|
||||
<ui:include src="/templates/components/forms/form-field-select.xhtml">
|
||||
<ui:param name="id" value="statutFilter" />
|
||||
<ui:param name="label" value="Statut" />
|
||||
<ui:param name="value" value="#{demandeBean.statutFilter}" />
|
||||
<ui:define name="items">
|
||||
<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" />
|
||||
</ui:define>
|
||||
<ui:define name="ajax">
|
||||
<p:ajax update=":formDemandes:dtDemandes" />
|
||||
</ui:define>
|
||||
</ui:include>
|
||||
</div>
|
||||
|
||||
<div class="field col-12 md:col-6 lg:col-3">
|
||||
<ui:include src="/templates/components/forms/form-field-select.xhtml">
|
||||
<ui:param name="id" value="typeFilter" />
|
||||
<ui:param name="label" value="Type" />
|
||||
<ui:param name="value" value="#{demandeBean.typeFilter}" />
|
||||
<ui:define name="items">
|
||||
<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" />
|
||||
</ui:define>
|
||||
<ui:define name="ajax">
|
||||
<p:ajax update=":formDemandes:dtDemandes" />
|
||||
</ui:define>
|
||||
</ui:include>
|
||||
</div>
|
||||
|
||||
<div class="field col-12 md:col-6 lg:col-3">
|
||||
<ui:include src="/templates/components/forms/form-field-select.xhtml">
|
||||
<ui:param name="id" value="prioriteFilter" />
|
||||
<ui:param name="label" value="Priorité" />
|
||||
<ui:param name="value" value="#{demandeBean.prioriteFilter}" />
|
||||
<ui:define name="items">
|
||||
<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" />
|
||||
</ui:define>
|
||||
<ui:define name="ajax">
|
||||
<p:ajax update=":formDemandes:dtDemandes" />
|
||||
</ui:define>
|
||||
</ui:include>
|
||||
</div>
|
||||
|
||||
<div class="field col-12 md:col-6 lg:col-4">
|
||||
<ui:include src="/templates/components/forms/form-field-calendar.xhtml">
|
||||
<ui:param name="id" value="dateFilter" />
|
||||
<ui:param name="label" value="Date" />
|
||||
<ui:param name="value" value="#{demandeBean.dateFilter}" />
|
||||
<ui:param name="update" value=":formDemandes:dtDemandes" />
|
||||
</ui:include>
|
||||
</div>
|
||||
</div>
|
||||
</h:form>
|
||||
</ui:define>
|
||||
<ui:define name="actions">
|
||||
<div class="field col-12 md:col-6 lg:col-8">
|
||||
<h:form id="formActionsFiltres">
|
||||
<ui:include src="/templates/components/buttons/button-secondary.xhtml">
|
||||
<ui:param name="value" value="Réinitialiser" />
|
||||
<ui:param name="icon" value="pi pi-refresh" />
|
||||
<ui:param name="action" value="#{demandeBean.actualiser}" />
|
||||
<ui:param name="update" value=":formFiltres :formDemandes:dtDemandes" />
|
||||
<ui:param name="outlined" value="true" />
|
||||
<ui:param name="styleClass" value="ui-button-sm" />
|
||||
</ui:include>
|
||||
</h:form>
|
||||
</div>
|
||||
</ui:define>
|
||||
</ui:decorate>
|
||||
|
||||
<!-- Liste complète des demandes -->
|
||||
<div class="card surface-0 hover:surface-100 border-round-lg transition-all transition-duration-200">
|
||||
<div class="p-4">
|
||||
<h:form id="formDemandes">
|
||||
<div class="flex align-items-center justify-content-between mb-4">
|
||||
<h5 class="m-0">
|
||||
<i class="pi pi-list text-primary mr-2"></i>
|
||||
Toutes les Demandes
|
||||
</h5>
|
||||
<div class="flex gap-3 align-items-center">
|
||||
<ui:include src="/templates/components/buttons/button-secondary.xhtml">
|
||||
<ui:param name="value" value="Assigner en lot" />
|
||||
<ui:param name="icon" value="pi pi-users" />
|
||||
<ui:param name="onclick" value="PF('dlgAssignationLot').show();" />
|
||||
<ui:param name="disabled" value="#{empty demandeBean.selectedDemandes}" />
|
||||
<ui:param name="outlined" value="true" />
|
||||
<ui:param name="styleClass" value="ui-button-sm" />
|
||||
</ui:include>
|
||||
<ui:include src="/templates/components/buttons/button-success.xhtml">
|
||||
<ui:param name="value" value="Marquer traitées" />
|
||||
<ui:param name="icon" value="pi pi-check-circle" />
|
||||
<ui:param name="action" value="#{demandeBean.marquerTraitees}" />
|
||||
<ui:param name="update" value=":formDemandes:dtDemandes" />
|
||||
<ui:param name="disabled" value="#{empty demandeBean.selectedDemandes}" />
|
||||
<ui:param name="outlined" value="true" />
|
||||
<ui:param name="styleClass" value="ui-button-sm" />
|
||||
</ui:include>
|
||||
<ui:include src="/templates/components/buttons/button-info.xhtml">
|
||||
<ui:param name="value" value="Exporter sélection" />
|
||||
<ui:param name="icon" value="pi pi-file-excel" />
|
||||
<ui:param name="action" value="#{demandeBean.exporterSelection}" />
|
||||
<ui:param name="update" value="none" />
|
||||
<ui:param name="disabled" value="#{empty demandeBean.selectedDemandes}" />
|
||||
<ui:param name="outlined" value="true" />
|
||||
<ui:param name="styleClass" value="ui-button-sm" />
|
||||
</ui:include>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 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}"
|
||||
styleClass="p-datatable-sm p-datatable-gridlines p-datatable-striped"
|
||||
emptyMessage="Aucune demande trouvée">
|
||||
|
||||
<p:column selectionMode="multiple" style="width:3rem" exportable="false"/>
|
||||
|
||||
<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 flex-shrink-0"
|
||||
style="width: 2.5rem; height: 2.5rem; min-width: 2.5rem;">
|
||||
<span class="text-sm font-semibold">#{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-lg flex align-items-center justify-content-center mr-2 flex-shrink-0 #{demande.typeColorClass}"
|
||||
style="width: 2.5rem; height: 2.5rem; min-width: 2.5rem;">
|
||||
<i class="pi #{demande.typeIcon} text-white"></i>
|
||||
</div>
|
||||
<span class="text-sm font-medium">#{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 class="text-center">
|
||||
<div class="font-medium text-900 text-sm">
|
||||
<h:outputText value="#{demande.dateDepot}">
|
||||
<f:convertDateTime pattern="dd/MM/yyyy" type="localDate" />
|
||||
</h:outputText>
|
||||
</div>
|
||||
<small class="text-600">#{demande.heureDepot}</small>
|
||||
</div>
|
||||
</p:column>
|
||||
|
||||
<p:column headerText="Échéance" sortBy="#{demande.dateEcheance}" style="width:120px">
|
||||
<div class="text-center">
|
||||
<div class="font-medium text-sm #{demande.echeanceClass}">
|
||||
<h:outputText value="#{demande.dateEcheance}">
|
||||
<f:convertDateTime pattern="dd/MM/yyyy" type="localDate" />
|
||||
</h:outputText>
|
||||
</div>
|
||||
<small class="text-500 text-xs">#{demande.dateDepotRelative}</small>
|
||||
</div>
|
||||
</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>
|
||||
|
||||
<!-- Colonne Actions -->
|
||||
<p:column headerText="Actions" style="width:200px" exportable="false">
|
||||
<div class="flex gap-1 justify-content-center">
|
||||
<ui:include src="/templates/components/buttons/button-info.xhtml">
|
||||
<ui:param name="value" value="" />
|
||||
<ui:param name="icon" value="pi pi-eye" />
|
||||
<ui:param name="title" value="Voir détails" />
|
||||
<ui:param name="action" value="#{demandeBean.voirDemande(demande)}" />
|
||||
<ui:param name="update" value="none" />
|
||||
<ui:param name="styleClass" value="ui-button-rounded ui-button-text ui-button-sm" />
|
||||
</ui:include>
|
||||
<ui:include src="/templates/components/buttons/button-secondary.xhtml">
|
||||
<ui:param name="value" value="" />
|
||||
<ui:param name="icon" value="pi pi-user" />
|
||||
<ui:param name="title" value="Assigner" />
|
||||
<ui:param name="action" value="#{demandeBean.assignerDemande(demande)}" />
|
||||
<ui:param name="update" value=":formDemandes:dtDemandes" />
|
||||
<ui:param name="rendered" value="#{demande.assigneA == null}" />
|
||||
<ui:param name="styleClass" value="ui-button-rounded ui-button-text ui-button-sm" />
|
||||
</ui:include>
|
||||
<ui:include src="/templates/components/buttons/button-warning.xhtml">
|
||||
<ui:param name="value" value="" />
|
||||
<ui:param name="icon" value="pi pi-cog" />
|
||||
<ui:param name="title" value="Traiter" />
|
||||
<ui:param name="action" value="#{demandeBean.traiterDemande(demande)}" />
|
||||
<ui:param name="update" value=":formDemandes:dtDemandes" />
|
||||
<ui:param name="rendered" value="#{demande.statut == 'EN_ATTENTE' or demande.statut == 'EN_COURS'}" />
|
||||
<ui:param name="styleClass" value="ui-button-rounded ui-button-text ui-button-sm" />
|
||||
</ui:include>
|
||||
<ui:include src="/templates/components/buttons/button-success.xhtml">
|
||||
<ui:param name="value" value="" />
|
||||
<ui:param name="icon" value="pi pi-check" />
|
||||
<ui:param name="title" value="Approuver" />
|
||||
<ui:param name="action" value="#{demandeBean.approuverDemande(demande)}" />
|
||||
<ui:param name="update" value=":formDemandes:dtDemandes" />
|
||||
<ui:param name="rendered" value="#{demande.statut == 'EN_COURS'}" />
|
||||
<ui:param name="styleClass" value="ui-button-rounded ui-button-text ui-button-sm" />
|
||||
</ui:include>
|
||||
<ui:include src="/templates/components/buttons/button-secondary.xhtml">
|
||||
<ui:param name="value" value="" />
|
||||
<ui:param name="icon" value="pi pi-times" />
|
||||
<ui:param name="title" value="Rejeter" />
|
||||
<ui:param name="action" value="#{demandeBean.rejeterDemande(demande)}" />
|
||||
<ui:param name="onclick" value="return confirm('Êtes-vous sûr de vouloir rejeter cette demande ?');" />
|
||||
<ui:param name="update" value=":formDemandes:dtDemandes" />
|
||||
<ui:param name="rendered" value="#{demande.statut == 'EN_COURS'}" />
|
||||
<ui:param name="styleClass" value="ui-button-rounded ui-button-text ui-button-danger ui-button-sm" />
|
||||
</ui:include>
|
||||
<ui:include src="/templates/components/buttons/button-secondary.xhtml">
|
||||
<ui:param name="value" value="" />
|
||||
<ui:param name="icon" value="pi pi-file" />
|
||||
<ui:param name="title" value="Pièces jointes" />
|
||||
<ui:param name="action" value="#{demandeBean.voirPiecesJointes(demande)}" />
|
||||
<ui:param name="update" value="none" />
|
||||
<ui:param name="rendered" value="#{demande.hasPiecesJointes}" />
|
||||
<ui:param name="styleClass" value="ui-button-rounded ui-button-text ui-button-sm" />
|
||||
</ui:include>
|
||||
</div>
|
||||
</p:column>
|
||||
</p:dataTable>
|
||||
</h:form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Dialog Nouvelle Demande avec composant réutilisable -->
|
||||
<ui:decorate template="/templates/components/dialogs/form-dialog.xhtml">
|
||||
<ui:param name="dialogId" value="dlgNouvelleDemande" />
|
||||
<ui:param name="header" value="Nouvelle Demande" />
|
||||
<ui:param name="widgetVar" value="dlgNouvelleDemande" />
|
||||
<ui:param name="formId" value="formNouvelleDemande" />
|
||||
<ui:param name="width" value="800" />
|
||||
<ui:define name="content">
|
||||
<div class="formgrid grid">
|
||||
<div class="field col-12 md:col-6">
|
||||
<label for="demandeurSelect" class="block text-900 font-medium mb-2">Demandeur *</label>
|
||||
<p:autoComplete id="demandeurSelect"
|
||||
value="#{demandeBean.membreDemandeur}"
|
||||
completeMethod="#{demandeBean.rechercherMembres}"
|
||||
var="membre" itemLabel="#{membre.nomComplet}" itemValue="#{membre}"
|
||||
converter="membreConverter"
|
||||
placeholder="Rechercher un membre..."
|
||||
styleClass="w-full">
|
||||
<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 col-12 md:col-6">
|
||||
<ui:include src="/templates/components/forms/form-field-select.xhtml">
|
||||
<ui:param name="id" value="typeDemande" />
|
||||
<ui:param name="label" value="Type de demande *" />
|
||||
<ui:param name="value" value="#{demandeBean.nouvelleDemande.type}" />
|
||||
<ui:param name="required" value="true" />
|
||||
<ui:define name="items">
|
||||
<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" />
|
||||
</ui:define>
|
||||
</ui:include>
|
||||
</div>
|
||||
|
||||
<div class="field col-12 md:col-6">
|
||||
<ui:include src="/templates/components/forms/form-field-text.xhtml">
|
||||
<ui:param name="id" value="objetDemande" />
|
||||
<ui:param name="label" value="Objet *" />
|
||||
<ui:param name="value" value="#{demandeBean.nouvelleDemande.objet}" />
|
||||
<ui:param name="required" value="true" />
|
||||
<ui:param name="placeholder" value="Résumé de la demande" />
|
||||
</ui:include>
|
||||
</div>
|
||||
|
||||
<div class="field col-12 md:col-6">
|
||||
<ui:include src="/templates/components/forms/form-field-select.xhtml">
|
||||
<ui:param name="id" value="prioriteDemande" />
|
||||
<ui:param name="label" value="Priorité" />
|
||||
<ui:param name="value" value="#{demandeBean.nouvelleDemande.priorite}" />
|
||||
<ui:define name="items">
|
||||
<f:selectItem itemLabel="Urgente" itemValue="URGENTE" />
|
||||
<f:selectItem itemLabel="Haute" itemValue="HAUTE" />
|
||||
<f:selectItem itemLabel="Normale" itemValue="NORMALE" />
|
||||
<f:selectItem itemLabel="Basse" itemValue="BASSE" />
|
||||
</ui:define>
|
||||
</ui:include>
|
||||
</div>
|
||||
|
||||
<div class="field col-12 md:col-6">
|
||||
<ui:include src="/templates/components/forms/form-field-calendar.xhtml">
|
||||
<ui:param name="id" value="dateEcheanceDemande" />
|
||||
<ui:param name="label" value="Date d'échéance" />
|
||||
<ui:param name="value" value="#{demandeBean.nouvelleDemande.dateEcheance}" />
|
||||
</ui:include>
|
||||
</div>
|
||||
|
||||
<div class="field col-12 md:col-6">
|
||||
<ui:include src="/templates/components/forms/form-field-select.xhtml">
|
||||
<ui:param name="id" value="assignerA" />
|
||||
<ui:param name="label" value="Assigner à" />
|
||||
<ui:param name="value" value="#{demandeBean.nouvelleDemande.assigneA}" />
|
||||
<ui:define name="items">
|
||||
<f:selectItem itemLabel="Non assigné" itemValue="" />
|
||||
<f:selectItems value="#{demandeBean.gestionnairesDisponibles}"
|
||||
var="gestionnaire"
|
||||
itemLabel="#{gestionnaire.nom}"
|
||||
itemValue="#{gestionnaire.id}" />
|
||||
</ui:define>
|
||||
</ui:include>
|
||||
</div>
|
||||
|
||||
<div class="field col-12">
|
||||
<ui:include src="/templates/components/forms/form-field-textarea.xhtml">
|
||||
<ui:param name="id" value="descriptionDemande" />
|
||||
<ui:param name="label" value="Description détaillée" />
|
||||
<ui:param name="value" value="#{demandeBean.nouvelleDemande.description}" />
|
||||
<ui:param name="rows" value="4" />
|
||||
<ui:param name="placeholder" value="Décrivez la demande en détail..." />
|
||||
</ui:include>
|
||||
</div>
|
||||
|
||||
<div class="field col-12">
|
||||
<label for="piecesJointes" class="block text-900 font-medium mb-2">Pièces jointes</label>
|
||||
<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>
|
||||
</ui:define>
|
||||
<ui:define name="footer">
|
||||
<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="onclick" value="PF('dlgNouvelleDemande').hide();" />
|
||||
<ui:param name="outlined" value="true" />
|
||||
<ui:param name="styleClass" value="ui-button-sm" />
|
||||
</ui:include>
|
||||
<ui:include src="/templates/components/buttons/button-success.xhtml">
|
||||
<ui:param name="value" value="Créer la demande" />
|
||||
<ui:param name="icon" value="pi pi-check" />
|
||||
<ui:param name="action" value="#{demandeBean.creerDemande}" />
|
||||
<ui:param name="update" value=":formNouvelleDemande :formDemandes" />
|
||||
<ui:param name="oncomplete" value="if(!args.validationFailed) PF('dlgNouvelleDemande').hide();" />
|
||||
<ui:param name="styleClass" value="ui-button-sm" />
|
||||
</ui:include>
|
||||
</ui:define>
|
||||
</ui:decorate>
|
||||
|
||||
<!-- Dialog Assignation en Lot avec composant réutilisable -->
|
||||
<ui:decorate template="/templates/components/dialogs/form-dialog.xhtml">
|
||||
<ui:param name="dialogId" value="dlgAssignationLot" />
|
||||
<ui:param name="header" value="Assignation en Lot" />
|
||||
<ui:param name="widgetVar" value="dlgAssignationLot" />
|
||||
<ui:param name="formId" value="formAssignationLot" />
|
||||
<ui:param name="width" value="500" />
|
||||
<ui:define name="content">
|
||||
<div class="formgrid grid">
|
||||
<div class="field col-12">
|
||||
<ui:include src="/templates/components/forms/form-field-select.xhtml">
|
||||
<ui:param name="id" value="gestionnaireAssignation" />
|
||||
<ui:param name="label" value="Assigner à *" />
|
||||
<ui:param name="value" value="#{demandeBean.gestionnaireAssignation}" />
|
||||
<ui:param name="required" value="true" />
|
||||
<ui:define name="items">
|
||||
<f:selectItem itemLabel="Sélectionner..." itemValue="" />
|
||||
<f:selectItems value="#{demandeBean.gestionnairesDisponibles}"
|
||||
var="gestionnaire"
|
||||
itemLabel="#{gestionnaire.nom}"
|
||||
itemValue="#{gestionnaire.id}" />
|
||||
</ui:define>
|
||||
</ui:include>
|
||||
</div>
|
||||
|
||||
<div class="field col-12">
|
||||
<ui:include src="/templates/components/forms/form-field-textarea.xhtml">
|
||||
<ui:param name="id" value="commentaireAssignation" />
|
||||
<ui:param name="label" value="Commentaire" />
|
||||
<ui:param name="value" value="#{demandeBean.commentaireAssignation}" />
|
||||
<ui:param name="rows" value="3" />
|
||||
<ui:param name="placeholder" value="Commentaire optionnel..." />
|
||||
</ui:include>
|
||||
</div>
|
||||
|
||||
<div class="field col-12">
|
||||
<div class="surface-50 border-round-lg p-3">
|
||||
<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>
|
||||
</ui:define>
|
||||
<ui:define name="footer">
|
||||
<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="onclick" value="PF('dlgAssignationLot').hide();" />
|
||||
<ui:param name="outlined" value="true" />
|
||||
<ui:param name="styleClass" value="ui-button-sm" />
|
||||
</ui:include>
|
||||
<ui:include src="/templates/components/buttons/button-warning.xhtml">
|
||||
<ui:param name="value" value="Assigner" />
|
||||
<ui:param name="icon" value="pi pi-check" />
|
||||
<ui:param name="action" value="#{demandeBean.effectuerAssignationLot}" />
|
||||
<ui:param name="update" value=":formAssignationLot :formDemandes" />
|
||||
<ui:param name="oncomplete" value="if(!args.validationFailed) PF('dlgAssignationLot').hide();" />
|
||||
<ui:param name="styleClass" value="ui-button-sm" />
|
||||
</ui:include>
|
||||
</ui:define>
|
||||
</ui:decorate>
|
||||
</ui:define>
|
||||
|
||||
</ui:composition>
|
||||
Reference in New Issue
Block a user