Files
unionflow-client-quarkus-pr…/target/classes/META-INF/resources/pages/secure/evenement/logistique.xhtml

181 lines
9.1 KiB
HTML

<!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:param name="page" value="#{evenementsBean}"/>
<ui:define name="title">Logistique des Événements - UnionFlow</ui:define>
<ui:define name="content">
<!-- En-tête -->
<ui:include src="/templates/components/layout/page-header.xhtml">
<ui:param name="icon" value="pi pi-truck text-purple-500" />
<ui:param name="title" value="Logistique des Événements" />
<ui:param name="description" value="Gérez le matériel, les équipements et les ressources nécessaires pour vos événements" />
<ui:define name="actions">
<h:form id="formActionsLogistique">
<div class="flex gap-2">
<ui:include src="/templates/components/buttons/button-success.xhtml">
<ui:param name="value" value="Nouvelle demande" />
<ui:param name="icon" value="pi pi-plus" />
<ui:param name="onclick" value="PF('dlgNouvelleDemande').show();" />
</ui:include>
<ui:include src="/templates/components/buttons/button-icon.xhtml">
<ui:param name="icon" value="pi pi-refresh" />
<ui:param name="action" value="#{evenementsBean.actualiser}" />
<ui:param name="update" value="@form" />
<ui:param name="title" value="Actualiser" />
<ui:param name="rounded" value="true" />
<ui:param name="text" value="false" />
<ui:param name="styleClass" value="ui-button-outlined ui-button-secondary" />
</ui:include>
</div>
</h:form>
</ui:define>
</ui:include>
<!-- Statistiques -->
<div class="grid mb-3">
<ui:include src="/templates/components/cards/stat-card.xhtml">
<ui:param name="value" value="0" />
<ui:param name="label" value="Demandes actives" />
<ui:param name="icon" value="pi pi-shopping-cart" />
<ui:param name="bgColor" value="blue" />
</ui:include>
<ui:include src="/templates/components/cards/stat-card.xhtml">
<ui:param name="value" value="0" />
<ui:param name="label" value="Matériel disponible" />
<ui:param name="icon" value="pi pi-box" />
<ui:param name="bgColor" value="green" />
</ui:include>
<ui:include src="/templates/components/cards/stat-card.xhtml">
<ui:param name="value" value="0" />
<ui:param name="label" value="En attente livraison" />
<ui:param name="icon" value="pi pi-hourglass" />
<ui:param name="bgColor" value="orange" />
</ui:include>
<ui:include src="/templates/components/cards/stat-card.xhtml">
<ui:param name="value" value="0" />
<ui:param name="label" value="Fournisseurs" />
<ui:param name="icon" value="pi pi-building" />
<ui:param name="bgColor" value="purple" />
</ui:include>
</div>
<!-- Filtres et recherche (DRY/WOU: filter-bar) -->
<ui:decorate template="/templates/components/cards/filter-bar.xhtml">
<ui:param name="title" value="Filtres" />
<ui:param name="styleClass" value="mb-3" />
<ui:define name="filters">
<div class="col-12 md:col-4">
<div class="field">
<p:outputLabel for="searchLogistique" value="Rechercher" />
<span class="p-input-icon-left w-full">
<i class="pi pi-search"></i>
<p:inputText id="searchLogistique"
placeholder="Événement, matériel..."
styleClass="w-full">
<p:ajax event="keyup" delay="500"/>
</p:inputText>
</span>
</div>
</div>
<div class="col-12 md:col-2">
<div class="field">
<p:outputLabel for="filtreTypeMateriel" value="Type matériel" />
<p:selectOneMenu id="filtreTypeMateriel" styleClass="w-full">
<f:selectItem itemLabel="Tous types" itemValue="" />
<f:selectItem itemLabel="Sonorisation" itemValue="SONO" />
<f:selectItem itemLabel="Éclairage" itemValue="ECLAIRAGE" />
<f:selectItem itemLabel="Mobilier" itemValue="MOBILIER" />
<f:selectItem itemLabel="Catering" itemValue="CATERING" />
</p:selectOneMenu>
</div>
</div>
<div class="col-12 md:col-2">
<div class="field">
<p:outputLabel for="filtreStatut" value="Statut" />
<p:selectOneMenu id="filtreStatut" styleClass="w-full">
<f:selectItem itemLabel="Tous les statuts" itemValue="" />
<f:selectItem itemLabel="En attente" itemValue="EN_ATTENTE" />
<f:selectItem itemLabel="Validé" itemValue="VALIDE" />
<f:selectItem itemLabel="Livré" itemValue="LIVRE" />
</p:selectOneMenu>
</div>
</div>
</ui:define>
<ui:define name="actions">
<div class="col-12 md:col-2">
<div class="field">
<label class="invisible">Actions</label>
<p:commandButton value="Réinitialiser"
icon="pi pi-filter-slash"
styleClass="ui-button-secondary w-full" />
</div>
</div>
</ui:define>
</ui:decorate>
<!-- Liste des demandes logistiques -->
<div class="card">
<h:form id="formLogistique">
<h5>Demandes Logistiques</h5>
<p:dataTable id="dtLogistique"
value="#{evenementsBean.evenementsFiltres}"
var="evenement"
paginator="true"
rows="20"
rowsPerPageTemplate="10,20,50,100"
emptyMessage="Aucune demande logistique trouvée"
styleClass="table-responsive">
<p:column headerText="Événement" sortBy="#{evenement.titre}">
<span class="font-semibold">#{evenement.titre}</span>
</p:column>
<p:column headerText="Type matériel">
<p:tag value="À définir" severity="info" />
</p:column>
<p:column headerText="Quantité">
<span>0</span>
</p:column>
<p:column headerText="Date livraison">
<span class="text-600">À planifier</span>
</p:column>
<p:column headerText="Statut">
<p:tag value="En attente" severity="warning" />
</p:column>
<p:column headerText="Actions" style="width: 200px;">
<p:commandButton icon="pi pi-eye"
title="Voir détails"
styleClass="ui-button-rounded ui-button-text ui-button-secondary mr-2" />
<p:commandButton icon="pi pi-pencil"
title="Modifier"
styleClass="ui-button-rounded ui-button-text ui-button-secondary mr-2" />
</p:column>
</p:dataTable>
</h:form>
</div>
<!-- Message d'information -->
<div class="card">
<div class="flex align-items-center gap-3 p-3">
<i class="pi pi-info-circle text-blue-500 text-2xl"></i>
<div>
<h6 class="m-0">Fonctionnalité en développement</h6>
<p class="m-0 text-600">La gestion logistique complète des événements sera disponible prochainement.</p>
</div>
</div>
</div>
</ui:define>
</ui:composition>