Files

184 lines
9.4 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">Calendrier 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-calendar-plus text-blue-500" />
<ui:param name="title" value="Calendrier des Événements" />
<ui:param name="description" value="Vue calendrier de tous les événements de l'organisation" />
<ui:define name="actions">
<h:form id="formActionsCalendrier">
<div class="flex gap-2">
<ui:include src="/templates/components/buttons/button-success.xhtml">
<ui:param name="value" value="Nouvel événement" />
<ui:param name="icon" value="pi pi-plus" />
<ui:param name="outcome" value="/pages/secure/evenement/creation.xhtml" />
</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>
<!-- Calendrier -->
<div class="card">
<h:form id="formCalendrier">
<h5>Calendrier</h5>
<div class="text-center p-4">
<i class="pi pi-calendar text-4xl text-blue-500 mb-3"></i>
<h5>Calendrier des Événements</h5>
<p class="text-600">La vue calendrier interactive sera disponible prochainement</p>
<p class="text-600 mt-2">En attendant, utilisez la liste des événements à venir ci-dessous</p>
</div>
</h:form>
</div>
<!-- Liste des événements à venir -->
<div class="card">
<h:form id="formListeProchains">
<h5>Événements à Venir</h5>
<p:dataTable id="dtProchains"
value="#{evenementsBean.evenementsProchains}"
var="evenement"
paginator="false"
emptyMessage="Aucun événement à venir"
rowKey="#{evenement.id}">
<p:column headerText="Date">
<div>
<div class="font-medium">#{evenement.dateDebutFormatee}</div>
<div class="text-sm text-600">#{evenement.heureDebutFormatee} - #{evenement.heureFinFormatee}</div>
</div>
</p:column>
<p:column headerText="Événement">
<div class="flex align-items-center gap-2">
<i class="#{evenement.typeEvenementIcon} text-#{evenement.typeEvenementSeverity}"></i>
<div>
<div class="font-semibold">#{evenement.titre}</div>
<div class="text-sm text-600">#{evenement.lieu}</div>
</div>
</div>
</p:column>
<p:column headerText="Statut">
<p:tag value="#{evenement.statutLibelle}"
severity="#{evenement.statutSeverity}"
icon="#{evenement.statutIcon}" />
</p:column>
<p:column headerText="Participants">
<div>#{evenement.participantsInscrits} / #{evenement.capaciteMax}</div>
</p:column>
<p:column headerText="Actions">
<p:commandButton icon="pi pi-eye"
title="Voir détails"
styleClass="p-button-text p-button-rounded"
action="#{evenementsBean.selectionnerEvenement(evenement)}"
update=":formCalendrier:dlgDetails"
oncomplete="PF('dlgDetails').show();" />
</p:column>
</p:dataTable>
</h:form>
</div>
<!-- Dialog Détails -->
<h:form id="formDetails">
<p:dialog id="dlgDetails" header="Détails de l'Événement"
widgetVar="dlgDetails"
modal="true"
resizable="false"
style="width: 90vw; max-width: 700px;">
<div class="grid" rendered="#{evenementsBean.evenementSelectionne != null}">
<div class="col-12">
<h4>#{evenementsBean.evenementSelectionne.titre}</h4>
<p class="text-600">#{evenementsBean.evenementSelectionne.description}</p>
</div>
<div class="col-12 md:col-6">
<div class="field">
<label class="font-semibold">Type</label>
<p:tag value="#{evenementsBean.evenementSelectionne.typeEvenementLibelle}"
severity="#{evenementsBean.evenementSelectionne.typeEvenementSeverity}" />
</div>
</div>
<div class="col-12 md:col-6">
<div class="field">
<label class="font-semibold">Statut</label>
<p:tag value="#{evenementsBean.evenementSelectionne.statutLibelle}"
severity="#{evenementsBean.evenementSelectionne.statutSeverity}" />
</div>
</div>
<div class="col-12 md:col-6">
<div class="field">
<label class="font-semibold">Date de début</label>
<div>#{evenementsBean.evenementSelectionne.dateDebutFormatee}</div>
<div class="text-sm text-600">#{evenementsBean.evenementSelectionne.heureDebutFormatee}</div>
</div>
</div>
<div class="col-12 md:col-6">
<div class="field">
<label class="font-semibold">Lieu</label>
<div>#{evenementsBean.evenementSelectionne.lieu}</div>
<div class="text-sm text-600">#{evenementsBean.evenementSelectionne.adresseComplete}</div>
</div>
</div>
<div class="col-12 md:col-6">
<div class="field">
<label class="font-semibold">Participants</label>
<div>#{evenementsBean.evenementSelectionne.participantsInscrits} / #{evenementsBean.evenementSelectionne.capaciteMax}</div>
<p:progressBar value="#{evenementsBean.evenementSelectionne.tauxRemplissage}"
showValue="true" />
</div>
</div>
<div class="col-12 md:col-6">
<div class="field">
<label class="font-semibold">Budget</label>
<div>#{evenementsBean.evenementSelectionne.budgetFormate}</div>
</div>
</div>
</div>
<f:facet name="footer">
<div class="flex gap-2">
<p:commandButton value="Voir détails"
icon="pi pi-eye"
outcome="/pages/secure/evenement/gestion.xhtml"
styleClass="p-button-outlined" />
<p:commandButton value="Fermer"
icon="pi pi-times"
onclick="PF('dlgDetails').hide();"
styleClass="p-button-secondary p-button-outlined" />
</div>
</f:facet>
</p:dialog>
</h:form>
</ui:define>
</ui:composition>