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

146 lines
8.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="#{rapportDetailsBean}"/>
<ui:define name="title">Détails du Rapport - UnionFlow</ui:define>
<ui:define name="content">
<h:form id="formDetails">
<p:messages id="messages" showDetail="true" closable="true"/>
<!-- En-tête -->
<div class="card mb-3">
<div class="flex justify-content-between align-items-center flex-column md:flex-row">
<div class="flex align-items-center gap-3 mb-2 md:mb-0">
<div class="bg-primary text-white border-round text-center"
style="width: 64px; height: 64px; line-height: 64px;">
<i class="pi #{rapportDetailsBean.rapport.typeIcon} text-3xl"></i>
</div>
<div>
<h3 class="m-0">#{rapportDetailsBean.rapport.typeLibelle}</h3>
<div class="mt-2 flex align-items-center gap-2">
<p:tag value="#{rapportDetailsBean.rapport.statut}"
severity="#{rapportDetailsBean.rapport.statutSeverity}" />
<span class="text-600">Généré le #{rapportDetailsBean.dateGenerationFormatee}</span>
</div>
</div>
</div>
<div class="flex gap-2">
<ui:include src="/templates/components/buttons/button-secondary.xhtml">
<ui:param name="value" value="Retour"/>
<ui:param name="icon" value="pi pi-arrow-left"/>
<ui:param name="action" value="#{rapportDetailsBean.retourner}"/>
</ui:include>
<p:commandButton value="Télécharger"
icon="pi pi-download"
styleClass="ui-button-success"
action="#{rapportDetailsBean.telechargerRapport}"
update="messages"
rendered="#{rapportDetailsBean.isRapportDisponible()}"/>
<p:commandButton value="Régénérer"
icon="pi pi-refresh"
styleClass="ui-button-outlined ui-button-warning"
action="#{rapportDetailsBean.regenererRapport}"
update="messages"/>
</div>
</div>
</div>
<h:panelGroup rendered="#{not empty rapportDetailsBean.rapport}">
<div class="grid">
<!-- Informations générales -->
<div class="col-12 md:col-6">
<div class="card">
<h5 class="mb-3">Informations Générales</h5>
<ui:include src="/templates/components/forms/detail-field.xhtml">
<ui:param name="label" value="Type de rapport"/>
<ui:param name="value" value="#{rapportDetailsBean.rapport.typeLibelle}"/>
</ui:include>
<ui:include src="/templates/components/forms/detail-field.xhtml">
<ui:param name="label" value="Date de génération"/>
<ui:param name="value" value="#{rapportDetailsBean.dateGenerationFormatee}"/>
</ui:include>
<ui:include src="/templates/components/forms/detail-field.xhtml">
<ui:param name="label" value="Période couverte"/>
<ui:param name="value" value="#{rapportDetailsBean.rapport.periodeCouverte}"/>
</ui:include>
<ui:include src="/templates/components/forms/detail-field.xhtml">
<ui:param name="label" value="Généré par"/>
<ui:param name="value" value="#{rapportDetailsBean.rapport.generePar}"/>
</ui:include>
<ui:include src="/templates/components/forms/detail-field.xhtml">
<ui:param name="label" value="Statut"/>
<ui:param name="value" value="#{rapportDetailsBean.rapport.statut}"/>
</ui:include>
</div>
</div>
<!-- Résumé du rapport -->
<div class="col-12 md:col-6">
<div class="card">
<h5 class="mb-3">Résumé</h5>
<div class="surface-50 p-3 border-round">
<p class="text-600 m-0">
Ce rapport contient les données analytiques et statistiques
pour la période sélectionnée. Les informations détaillées
sont disponibles dans le fichier téléchargeable.
</p>
</div>
</div>
</div>
</div>
<!-- Actions rapides -->
<div class="card mt-3">
<h5 class="mb-3">Actions</h5>
<div class="flex flex-wrap gap-2">
<p:commandButton value="Télécharger PDF"
icon="pi pi-file-pdf"
styleClass="ui-button-success"
action="#{rapportDetailsBean.telechargerRapport}"
update="messages"
rendered="#{rapportDetailsBean.isRapportDisponible()}"/>
<p:commandButton value="Télécharger Excel"
icon="pi pi-file-excel"
styleClass="ui-button-outlined ui-button-success"
action="#{rapportDetailsBean.telechargerRapport}"
update="messages"
rendered="#{rapportDetailsBean.isRapportDisponible()}"/>
<p:commandButton value="Régénérer le rapport"
icon="pi pi-refresh"
styleClass="ui-button-outlined ui-button-warning"
action="#{rapportDetailsBean.regenererRapport}"
update="messages"/>
<p:commandButton value="Partager"
icon="pi pi-share-alt"
styleClass="ui-button-outlined ui-button-info"
onclick="PF('dlgPartage').show();"/>
</div>
</div>
</h:panelGroup>
<!-- Message si rapport non trouvé -->
<h:panelGroup rendered="#{empty rapportDetailsBean.rapport}">
<div class="card">
<div class="text-center p-5">
<i class="pi pi-exclamation-triangle text-6xl text-orange-500 mb-3"></i>
<h3 class="mb-2">Rapport introuvable</h3>
<p class="text-600 mb-4">Le rapport demandé n'a pas été trouvé.</p>
<ui:include src="/templates/components/buttons/button-secondary.xhtml">
<ui:param name="value" value="Retour aux rapports"/>
<ui:param name="icon" value="pi pi-arrow-left"/>
<ui:param name="action" value="#{rapportDetailsBean.retourner}"/>
</ui:include>
</div>
</div>
</h:panelGroup>
</h:form>
</ui:define>
</ui:composition>