Refactoring

This commit is contained in:
dahoud
2026-03-01 22:00:28 +00:00
parent c0e2c4da45
commit 6b28cf751e
469 changed files with 26866 additions and 14768 deletions

View File

@@ -56,7 +56,7 @@
<p:column headerText="Date approbation" sortBy="#{demande.dateDemande}">
<h:outputText value="#{demande.dateDemande}">
<f:convertDateTime pattern="dd/MM/yyyy"/>
<f:convertDateTime pattern="dd/MM/yyyy" type="localDate"/>
</h:outputText>
</p:column>

View File

@@ -115,7 +115,7 @@
<p:column headerText="Date" sortBy="#{demande.dateDemande}">
<h:outputText value="#{demande.dateDemande}">
<f:convertDateTime pattern="dd/MM/yyyy"/>
<f:convertDateTime pattern="dd/MM/yyyy" type="localDate"/>
</h:outputText>
</p:column>

View File

@@ -62,7 +62,7 @@
<p:column headerText="Date" sortBy="#{demande.dateDemande}">
<h:outputText value="#{demande.dateDemande}">
<f:convertDateTime pattern="dd/MM/yyyy"/>
<f:convertDateTime pattern="dd/MM/yyyy" type="localDate"/>
</h:outputText>
</p:column>

View File

@@ -6,7 +6,7 @@
xmlns:p="http://primefaces.org/ui"
template="/templates/main-template.xhtml">
<ui:param name="page" value="#{demandesAideBean}"/>
<ui:param name="page" value="#{suggestionBean}"/>
<ui:define name="title">Suggestions et Feedback - UnionFlow</ui:define>
<ui:define name="content">
@@ -30,7 +30,8 @@
<p:commandButton value="Nouvelle Suggestion"
styleClass="p-button-primary"
icon="pi pi-plus"
onclick="PF('nouvelleSuggestionDialog').show()" />
action="#{suggestionBean.ouvrirDialogNouvelleSuggestion}"
update="@form" />
<p:commandButton value="Mes Suggestions"
styleClass="p-button-outlined"
icon="pi pi-user" />
@@ -41,28 +42,28 @@
<div class="grid">
<div class="col-12 lg:col-3">
<div class="surface-100 border-round p-4 text-center" style="min-height: 9rem">
<div class="text-2xl font-bold text-blue-500 mb-2">247</div>
<div class="text-2xl font-bold text-blue-500 mb-2">#{suggestionBean.totalSuggestions}</div>
<div class="text-900 font-semibold mb-1">Suggestions</div>
<div class="text-600 text-sm">Soumises</div>
</div>
</div>
<div class="col-12 lg:col-3">
<div class="surface-100 border-round p-4 text-center" style="min-height: 9rem">
<div class="text-2xl font-bold text-green-500 mb-2">43</div>
<div class="text-2xl font-bold text-green-500 mb-2">#{suggestionBean.suggestionsImplementees}</div>
<div class="text-900 font-semibold mb-1">Implémentées</div>
<div class="text-600 text-sm">Dans la v2.0</div>
</div>
</div>
<div class="col-12 lg:col-3">
<div class="surface-100 border-round p-4 text-center" style="min-height: 9rem">
<div class="text-2xl font-bold text-purple-500 mb-2">1,523</div>
<div class="text-2xl font-bold text-purple-500 mb-2">#{suggestionBean.totalVotes}</div>
<div class="text-900 font-semibold mb-1">Votes</div>
<div class="text-600 text-sm">Ce mois-ci</div>
</div>
</div>
<div class="col-12 lg:col-3">
<div class="surface-100 border-round p-4 text-center" style="min-height: 9rem">
<div class="text-2xl font-bold text-orange-500 mb-2">156</div>
<div class="text-2xl font-bold text-orange-500 mb-2">#{suggestionBean.contributeursActifs}</div>
<div class="text-900 font-semibold mb-1">Contributeurs</div>
<div class="text-600 text-sm">Actifs</div>
</div>
@@ -388,41 +389,48 @@
header="Soumettre une Nouvelle Suggestion"
modal="true"
width="800"
styleClass="surface-0">
styleClass="surface-0"
visible="#{suggestionBean.afficherDialogNouvelleSuggestion}">
<h:form id="nouvelleSuggestionForm">
<div class="ui-fluid">
<div class="formgrid grid">
<div class="field col-12 lg:col-6">
<label for="categorieSugg" class="block text-900 font-semibold mb-2">Catégorie *</label>
<p:selectOneMenu id="categorieSugg" styleClass="w-full">
<p:selectOneMenu id="categorieSugg"
value="#{suggestionBean.nouvelleSuggestion.categorie}"
styleClass="w-full">
<f:selectItem itemLabel="Sélectionnez une catégorie" itemValue="" />
<f:selectItem itemLabel="Interface Utilisateur" itemValue="ui" />
<f:selectItem itemLabel="Nouvelle Fonctionnalité" itemValue="feature" />
<f:selectItem itemLabel="Amélioration Performance" itemValue="performance" />
<f:selectItem itemLabel="Sécurité" itemValue="securite" />
<f:selectItem itemLabel="Intégration Externe" itemValue="integration" />
<f:selectItem itemLabel="Application Mobile" itemValue="mobile" />
<f:selectItem itemLabel="Rapports et Analytics" itemValue="reporting" />
<f:selectItem itemLabel="Interface Utilisateur" itemValue="UI" />
<f:selectItem itemLabel="Nouvelle Fonctionnalité" itemValue="FEATURE" />
<f:selectItem itemLabel="Amélioration Performance" itemValue="PERFORMANCE" />
<f:selectItem itemLabel="Sécurité" itemValue="SECURITE" />
<f:selectItem itemLabel="Intégration Externe" itemValue="INTEGRATION" />
<f:selectItem itemLabel="Application Mobile" itemValue="MOBILE" />
<f:selectItem itemLabel="Rapports et Analytics" itemValue="REPORTING" />
</p:selectOneMenu>
</div>
<div class="field col-12 lg:col-6">
<label for="prioriteSugg" class="block text-900 font-semibold mb-2">Priorité estimée</label>
<p:selectOneMenu id="prioriteSugg" styleClass="w-full">
<f:selectItem itemLabel="Basse" itemValue="basse" />
<f:selectItem itemLabel="Moyenne" itemValue="moyenne" />
<f:selectItem itemLabel="Haute" itemValue="haute" />
<f:selectItem itemLabel="Critique" itemValue="critique" />
<p:selectOneMenu id="prioriteSugg"
value="#{suggestionBean.nouvelleSuggestion.prioriteEstimee}"
styleClass="w-full">
<f:selectItem itemLabel="Basse" itemValue="BASSE" />
<f:selectItem itemLabel="Moyenne" itemValue="MOYENNE" />
<f:selectItem itemLabel="Haute" itemValue="HAUTE" />
<f:selectItem itemLabel="Critique" itemValue="CRITIQUE" />
</p:selectOneMenu>
</div>
<div class="field col-12">
<label for="titreSugg" class="block text-900 font-semibold mb-2">Titre de votre suggestion *</label>
<p:inputText id="titreSugg"
value="#{suggestionBean.nouvelleSuggestion.titre}"
placeholder="Résumez votre idée en une phrase claire"
styleClass="w-full" />
</div>
<div class="field col-12">
<label for="descriptionSugg" class="block text-900 font-semibold mb-2">Description détaillée *</label>
<p:inputTextarea id="descriptionSugg"
value="#{suggestionBean.nouvelleSuggestion.description}"
rows="6"
placeholder="Décrivez votre suggestion : problème rencontré, solution proposée, bénéfices attendus..."
styleClass="w-full" />
@@ -430,6 +438,7 @@
<div class="field col-12">
<label for="justificationSugg" class="block text-900 font-semibold mb-2">Justification métier</label>
<p:inputTextarea id="justificationSugg"
value="#{suggestionBean.nouvelleSuggestion.justification}"
rows="3"
placeholder="Expliquez pourquoi cette fonctionnalité serait utile et pour quels utilisateurs..."
styleClass="w-full" />
@@ -447,11 +456,14 @@
<div class="flex justify-content-end gap-2 mt-4">
<p:commandButton value="Annuler"
styleClass="p-button-outlined"
onclick="PF('nouvelleSuggestionDialog').hide()"
action="#{suggestionBean.fermerDialogNouvelleSuggestion}"
update="@form"
type="button" />
<p:commandButton value="Soumettre la Suggestion"
styleClass="p-button-primary"
icon="pi pi-send" />
icon="pi pi-send"
action="#{suggestionBean.creerSuggestion}"
update="@form" />
</div>
</div>
</h:form>

View File

@@ -6,7 +6,7 @@
xmlns:p="http://primefaces.org/ui"
template="/templates/main-template.xhtml">
<ui:param name="page" value="#{demandesAideBean}"/>
<ui:param name="page" value="#{ticketBean}"/>
<ui:define name="title">Mes Tickets Support - UnionFlow</ui:define>
<ui:define name="content">
@@ -30,7 +30,8 @@
<p:commandButton value="Nouveau Ticket"
styleClass="p-button-primary"
icon="pi pi-plus"
onclick="PF('nouveauTicketDialog').show()" />
action="#{ticketBean.ouvrirDialogNouveauTicket}"
update="@form" />
<p:commandButton value="FAQ"
styleClass="p-button-outlined"
icon="pi pi-question-circle" />
@@ -41,28 +42,28 @@
<div class="grid">
<div class="col-12 lg:col-3">
<div class="surface-100 border-round p-4 text-center" style="min-height: 9rem">
<div class="text-2xl font-bold text-blue-500 mb-2">12</div>
<div class="text-2xl font-bold text-blue-500 mb-2">#{ticketBean.totalTickets}</div>
<div class="text-900 font-semibold mb-1">Tickets Créés</div>
<div class="text-600 text-sm">Au total</div>
</div>
</div>
<div class="col-12 lg:col-3">
<div class="surface-100 border-round p-4 text-center" style="min-height: 9rem">
<div class="text-2xl font-bold text-orange-500 mb-2">3</div>
<div class="text-2xl font-bold text-orange-500 mb-2">#{ticketBean.ticketsEnAttente}</div>
<div class="text-900 font-semibold mb-1">En Attente</div>
<div class="text-600 text-sm">Réponse support</div>
</div>
</div>
<div class="col-12 lg:col-3">
<div class="surface-100 border-round p-4 text-center" style="min-height: 9rem">
<div class="text-2xl font-bold text-green-500 mb-2">8</div>
<div class="text-2xl font-bold text-green-500 mb-2">#{ticketBean.ticketsResolus}</div>
<div class="text-900 font-semibold mb-1">Résolus</div>
<div class="text-600 text-sm">Avec succès</div>
</div>
</div>
<div class="col-12 lg:col-3">
<div class="surface-100 border-round p-4 text-center" style="min-height: 9rem">
<div class="text-2xl font-bold text-red-500 mb-2">1</div>
<div class="text-2xl font-bold text-red-500 mb-2">#{ticketBean.ticketsFermes}</div>
<div class="text-900 font-semibold mb-1">Fermé</div>
<div class="text-600 text-sm">Sans résolution</div>
</div>
@@ -130,191 +131,84 @@
Historique de vos Tickets
</h4>
<!-- Ticket 1 - En cours -->
<div class="surface-100 hover:surface-200 border-round p-4 mb-3 cursor-pointer transition-duration-200">
<ui:repeat value="#{ticketBean.tickets}" var="ticket">
<!-- Ticket dynamique -->
<div class="surface-100 hover:surface-200 border-round p-4 mb-3 cursor-pointer transition-duration-200 #{ticket.statut == 'FERME' ? 'opacity-70' : ''}">
<div class="flex align-items-center justify-content-between mb-3">
<div class="flex align-items-center gap-3">
<div class="w-3rem h-3rem border-circle bg-orange-100 flex align-items-center justify-content-center">
<i class="pi pi-clock text-orange-600 text-xl"></i>
<div class="w-3rem h-3rem border-circle #{ticket.statut == 'RESOLU' ? 'bg-green-100' : (ticket.statut == 'EN_ATTENTE' ? 'bg-blue-100' : (ticket.statut == 'FERME' ? 'bg-red-100' : 'bg-orange-100'))} flex align-items-center justify-content-center">
<i class="pi #{ticket.statut == 'RESOLU' ? 'pi-check' : (ticket.statut == 'EN_ATTENTE' ? 'pi-pause' : (ticket.statut == 'FERME' ? 'pi-times' : 'pi-clock'))} #{ticket.statut == 'RESOLU' ? 'text-green-600' : (ticket.statut == 'EN_ATTENTE' ? 'text-blue-600' : (ticket.statut == 'FERME' ? 'text-red-600' : 'text-orange-600'))} text-xl"></i>
</div>
<div>
<h6 class="text-900 font-semibold mb-1">#TK-2024-0157 - Problème d'export Excel</h6>
<h6 class="text-900 font-semibold mb-1">#{ticket.numeroTicket} - #{ticket.sujet}</h6>
<div class="flex align-items-center gap-2 mb-1">
<p:tag value="EN COURS" severity="warning" styleClass="text-xs" />
<p:tag value="HAUTE" severity="danger" styleClass="text-xs" />
<p:tag value="TECHNIQUE" severity="info" styleClass="text-xs" />
<p:tag value="#{ticket.statut}"
severity="#{ticket.statut == 'RESOLU' ? 'success' : (ticket.statut == 'FERME' ? 'danger' : (ticket.statut == 'EN_ATTENTE' ? 'info' : 'warning'))}"
styleClass="text-xs" />
<p:tag value="#{ticket.priorite}"
severity="#{ticket.priorite == 'URGENTE' or ticket.priorite == 'HAUTE' ? 'danger' : (ticket.priorite == 'NORMALE' ? 'success' : 'secondary')}"
styleClass="text-xs" />
<p:tag value="#{ticket.categorie}"
severity="info"
styleClass="text-xs" />
</div>
<p class="text-600 text-sm mb-0">Créé le 15 janvier 2024 • Dernière réponse il y a 2h</p>
<p class="text-600 text-sm mb-0">
Créé le #{ticket.dateCreation != null ? ticket.dateCreation : 'N/A'}
#{ticket.dateDerniereReponse != null ? ' • Dernière réponse ' + ticket.dateDerniereReponse : ''}
</p>
</div>
</div>
<div class="text-right">
<div class="text-600 text-sm mb-2">Agent: Marie Dubois</div>
#{ticket.agentNom != null ? '<div class="text-600 text-sm mb-2">Agent: ' + ticket.agentNom + '</div>' : ''}
<p:commandButton value="Voir Détails"
styleClass="p-button-outlined p-button-sm"
icon="pi pi-eye" />
icon="pi pi-eye"
action="#{ticketBean.voirDetails}"
update="@form">
<f:setPropertyActionListener target="#{ticketBean.ticketSelectionne}" value="#{ticket}" />
</p:commandButton>
</div>
</div>
<p class="text-700 line-height-3 mb-3">
Impossible d'exporter la liste des membres en format Excel. Le fichier généré est corrompu
et ne s'ouvre pas dans Excel. Cela concerne tous les exports depuis la version 2.1.
#{ticket.description != null ? ticket.description : 'Aucune description'}
</p>
#{ticket.resolution != null ? '<div class="surface-green-50 border-left-3 border-green-500 p-3 mb-3"><p class="text-green-700 text-sm mb-0"><i class="pi pi-check-circle mr-2"></i><strong>Résolution:</strong> ' + ticket.resolution + '</p></div>' : ''}
<div class="flex align-items-center justify-content-between">
<div class="flex align-items-center gap-2">
<i class="pi pi-comments text-blue-500"></i>
<span class="text-600 text-sm">5 messages</span>
<i class="pi pi-paperclip text-600 ml-3"></i>
<span class="text-600 text-sm">2 fichiers</span>
</div>
<div class="flex align-items-center gap-2">
<i class="pi pi-clock text-600"></i>
<span class="text-600 text-sm">SLA: 4h restantes</span>
</div>
</div>
</div>
<!-- Ticket 2 - En attente -->
<div class="surface-100 hover:surface-200 border-round p-4 mb-3 cursor-pointer transition-duration-200">
<div class="flex align-items-center justify-content-between mb-3">
<div class="flex align-items-center gap-3">
<div class="w-3rem h-3rem border-circle bg-blue-100 flex align-items-center justify-content-center">
<i class="pi pi-pause text-blue-600 text-xl"></i>
</div>
<div>
<h6 class="text-900 font-semibold mb-1">#TK-2024-0143 - Demande de formation personnalisée</h6>
<div class="flex align-items-center gap-2 mb-1">
<p:tag value="EN ATTENTE" severity="info" styleClass="text-xs" />
<p:tag value="NORMALE" severity="success" styleClass="text-xs" />
<p:tag value="FONCTIONNALITÉ" severity="help" styleClass="text-xs" />
</div>
<p class="text-600 text-sm mb-0">Créé le 12 janvier 2024 • En attente de votre réponse</p>
</div>
</div>
<div class="text-right">
<div class="text-600 text-sm mb-2">Agent: Thomas Martin</div>
<p:commandButton value="Répondre"
styleClass="p-button-primary p-button-sm"
icon="pi pi-reply" />
</div>
</div>
<p class="text-700 line-height-3 mb-3">
Souhaitons organiser une formation sur mesure pour notre équipe administrative.
Besoin de devis pour 15 personnes sur 2 jours.
</p>
<div class="surface-blue-50 border-left-3 border-blue-500 p-3 mb-3">
<p class="text-blue-700 text-sm mb-0">
<i class="pi pi-info-circle mr-2"></i>
<strong>Action requise:</strong> Merci de préciser vos disponibilités pour les dates proposées.
</p>
</div>
<div class="flex align-items-center justify-content-between">
<div class="flex align-items-center gap-2">
<i class="pi pi-comments text-blue-500"></i>
<span class="text-600 text-sm">3 messages</span>
</div>
<div class="flex align-items-center gap-2">
<i class="pi pi-exclamation-triangle text-orange-500"></i>
<span class="text-orange-600 text-sm">Réponse attendue depuis 3 jours</span>
</div>
</div>
</div>
<!-- Ticket 3 - Résolu -->
<div class="surface-100 hover:surface-200 border-round p-4 mb-3 cursor-pointer transition-duration-200">
<div class="flex align-items-center justify-content-between mb-3">
<div class="flex align-items-center gap-3">
<div class="w-3rem h-3rem border-circle bg-green-100 flex align-items-center justify-content-center">
<i class="pi pi-check text-green-600 text-xl"></i>
</div>
<div>
<h6 class="text-900 font-semibold mb-1">#TK-2024-0128 - Problème de connexion mobile</h6>
<div class="flex align-items-center gap-2 mb-1">
<p:tag value="RÉSOLU" severity="success" styleClass="text-xs" />
<p:tag value="BASSE" severity="secondary" styleClass="text-xs" />
<p:tag value="TECHNIQUE" severity="info" styleClass="text-xs" />
</div>
<p class="text-600 text-sm mb-0">Créé le 8 janvier 2024 • Résolu le 10 janvier 2024</p>
</div>
</div>
<div class="text-right">
<div class="text-600 text-sm mb-2">Agent: Sophie Leroy</div>
<div class="flex gap-2">
<p:commandButton value="Noter"
styleClass="p-button-outlined p-button-sm"
icon="pi pi-star" />
<p:commandButton value="Détails"
styleClass="p-button-outlined p-button-sm"
icon="pi pi-eye" />
</div>
</div>
</div>
<p class="text-700 line-height-3 mb-3">
Application ne se charge pas sur smartphone Android. Écran blanc après connexion.
</p>
<div class="surface-green-50 border-left-3 border-green-500 p-3 mb-3">
<p class="text-green-700 text-sm mb-0">
<i class="pi pi-check-circle mr-2"></i>
<strong>Résolution:</strong> Problème résolu en vidant le cache de l'application mobile.
</p>
</div>
<div class="flex align-items-center justify-content-between">
<div class="flex align-items-center gap-2">
<i class="pi pi-comments text-blue-500"></i>
<span class="text-600 text-sm">6 messages</span>
<i class="pi pi-clock text-600 ml-3"></i>
<span class="text-600 text-sm">Résolu en 2 jours</span>
</div>
<div class="flex align-items-center gap-1">
<i class="pi pi-star-fill text-yellow-400"></i>
<span class="text-600 text-sm">Note: 5/5</span>
</div>
</div>
</div>
<!-- Ticket 4 - Fermé -->
<div class="surface-100 hover:surface-200 border-round p-4 cursor-pointer transition-duration-200 opacity-70">
<div class="flex align-items-center justify-content-between mb-3">
<div class="flex align-items-center gap-3">
<div class="w-3rem h-3rem border-circle bg-red-100 flex align-items-center justify-content-center">
<i class="pi pi-times text-red-600 text-xl"></i>
</div>
<div>
<h6 class="text-900 font-semibold mb-1">#TK-2024-0095 - Demande modification base</h6>
<div class="flex align-items-center gap-2 mb-1">
<p:tag value="FERMÉ" severity="danger" styleClass="text-xs" />
<p:tag value="HAUTE" severity="danger" styleClass="text-xs" />
<p:tag value="FONCTIONNALITÉ" severity="help" styleClass="text-xs" />
</div>
<p class="text-600 text-sm mb-0">Créé le 28 décembre 2023 • Fermé le 5 janvier 2024</p>
</div>
</div>
<div class="text-right">
<div class="text-600 text-sm mb-2">Agent: Marc Durand</div>
<p:commandButton value="Rouvrir"
styleClass="p-button-outlined p-button-sm"
icon="pi pi-replay" />
</div>
</div>
<p class="text-700 line-height-3 mb-3">
Demande de modification des champs de la base de données membres pour ajouter
des informations métier spécifiques.
</p>
<div class="surface-red-50 border-left-3 border-red-500 p-3 mb-3">
<p class="text-red-700 text-sm mb-0">
<i class="pi pi-times-circle mr-2"></i>
<strong>Fermé:</strong> Demande non compatible avec l'architecture actuelle.
</p>
</div>
<div class="flex align-items-center justify-content-between">
<div class="flex align-items-center gap-2">
<i class="pi pi-comments text-blue-500"></i>
<span class="text-600 text-sm">8 messages</span>
</div>
<div class="flex align-items-center gap-2">
<i class="pi pi-ban text-red-500"></i>
<span class="text-red-600 text-sm">Non résolu</span>
<span class="text-600 text-sm">#{ticket.nbMessages != null ? ticket.nbMessages : 0} message#{ticket.nbMessages != null and ticket.nbMessages > 1 ? 's' : ''}</span>
#{ticket.nbFichiers != null and ticket.nbFichiers > 0 ? '<i class="pi pi-paperclip text-600 ml-3"></i><span class="text-600 text-sm">' + ticket.nbFichiers + ' fichier' + (ticket.nbFichiers > 1 ? 's' : '') + '</span>' : ''}
</div>
#{ticket.noteSatisfaction != null ? '<div class="flex align-items-center gap-1"><i class="pi pi-star-fill text-yellow-400"></i><span class="text-600 text-sm">Note: ' + ticket.noteSatisfaction + '/5</span></div>' : ''}
</div>
</div>
</ui:repeat>
<p:dataTable value="#{ticketBean.tickets}"
var="ticket"
emptyMessage="Aucun ticket trouvé"
rendered="#{empty ticketBean.tickets}">
<p:column headerText="Numéro">#{ticket.numeroTicket}</p:column>
<p:column headerText="Sujet">#{ticket.sujet}</p:column>
<p:column headerText="Statut">
<p:tag value="#{ticket.statut}"
severity="#{ticket.statut == 'RESOLU' ? 'success' : (ticket.statut == 'FERME' ? 'danger' : (ticket.statut == 'EN_ATTENTE' ? 'info' : 'warning'))}" />
</p:column>
<p:column headerText="Priorité">
<p:tag value="#{ticket.priorite}"
severity="#{ticket.priorite == 'URGENTE' or ticket.priorite == 'HAUTE' ? 'danger' : (ticket.priorite == 'NORMALE' ? 'success' : 'secondary')}" />
</p:column>
<p:column headerText="Date Création">#{ticket.dateCreation}</p:column>
<p:column headerText="Actions">
<p:commandButton icon="pi pi-eye"
styleClass="p-button-text p-button-sm"
title="Voir détails"
action="#{ticketBean.voirDetails}"
update="@form">
<f:setPropertyActionListener target="#{ticketBean.ticketSelectionne}" value="#{ticket}" />
</p:commandButton>
</p:column>
</p:dataTable>
</div>
</div>
</div>
@@ -371,7 +265,8 @@
header="Créer un Nouveau Ticket"
modal="true"
width="800"
styleClass="surface-0">
styleClass="surface-0"
visible="#{ticketBean.afficherDialogNouveauTicket}">
<h:form id="nouveauTicketForm">
<div class="ui-fluid">
<div class="formgrid grid">
@@ -421,11 +316,14 @@
<div class="flex justify-content-end gap-2 mt-4">
<p:commandButton value="Annuler"
styleClass="p-button-outlined"
onclick="PF('nouveauTicketDialog').hide()"
action="#{ticketBean.fermerDialogNouveauTicket}"
update="@form"
type="button" />
<p:commandButton value="Créer le Ticket"
styleClass="p-button-primary"
icon="pi pi-send" />
icon="pi pi-send"
action="#{ticketBean.creerTicket}"
update="@form" />
</div>
</div>
</h:form>

View File

@@ -132,7 +132,7 @@
<p:column headerText="Date" sortBy="#{demande.dateDemande}">
<h:outputText value="#{demande.dateDemande}">
<f:convertDateTime pattern="dd/MM/yyyy"/>
<f:convertDateTime pattern="dd/MM/yyyy" type="localDate"/>
</h:outputText>
</p:column>