feat: Migration complète vers Quarkus PrimeFaces Freya
Migration du frontend React/Next.js vers Quarkus + PrimeFaces Freya 5.0.0 Dashboard: - Extension de BtpXpressApiClient avec tous les endpoints dashboard - Création de DashboardService pour récupérer les données API - Refactorisation DashboardView : uniquement données réelles de l'API - Restructuration dashboard.xhtml avec tous les aspects métiers BTP - Suppression complète de toutes les données fictives Topbar: - Amélioration du menu profil utilisateur avec header professionnel - Ajout UserSessionBean pour gérer les informations utilisateur - Styles CSS personnalisés pour une disposition raffinée - Badges de notifications conditionnels Configuration: - Intégration du thème Freya 5.0.0-jakarta - Configuration OIDC pour Keycloak (security.lions.dev) - Gestion des erreurs HTTP 431 (headers size) - Support du format Fcfa avec séparateurs d'espaces Converters: - Création de FcfaConverter pour formater les montants en Fcfa avec espaces (x xxx xxx format) Code Quality: - Code entièrement documenté en français avec Javadoc exemplaire - Respect du principe Java 'Write once, use many times' - Logging complet pour le débogage - Gestion d'erreurs robuste
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:h="http://java.sun.com/jsf/html"
|
||||
xmlns:f="http://java.sun.com/jsf/core"
|
||||
xmlns:ui="http://java.sun.com/jsf/facelets"
|
||||
xmlns:p="http://primefaces.org/ui">
|
||||
|
||||
<ui:param name="formId" value="filtresForm"/>
|
||||
<ui:param name="viewBean" value=""/>
|
||||
<ui:param name="tableId" value=""/>
|
||||
|
||||
<div class="card">
|
||||
<h5>Recherche et filtres</h5>
|
||||
<h:form id="#{formId}">
|
||||
<ui:insert name="filter-fields">
|
||||
<!-- Les champs de filtre spécifiques à chaque page -->
|
||||
</ui:insert>
|
||||
<div class="col-12">
|
||||
<p:commandButton value="Rechercher"
|
||||
icon="pi pi-search"
|
||||
action="#{viewBean.search()}"
|
||||
update="#{tableId}"
|
||||
styleClass="ui-button-primary"/>
|
||||
<p:commandButton value="Réinitialiser"
|
||||
icon="pi pi-refresh"
|
||||
action="#{viewBean.resetFilters()}"
|
||||
update="#{tableId} #{formId}"
|
||||
styleClass="ui-button-secondary"/>
|
||||
</div>
|
||||
</h:form>
|
||||
</div>
|
||||
|
||||
</ui:composition>
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:h="http://java.sun.com/jsf/html"
|
||||
xmlns:f="http://java.sun.com/jsf/core"
|
||||
xmlns:ui="http://java.sun.com/jsf/facelets"
|
||||
xmlns:p="http://primefaces.org/ui">
|
||||
|
||||
<div class="card">
|
||||
<div class="flex align-items-center justify-content-between mb-3">
|
||||
<h5>#{title}</h5>
|
||||
<p:commandButton value="Nouveau"
|
||||
icon="pi pi-plus"
|
||||
action="#{viewBean.createNew()}"
|
||||
styleClass="ui-button-primary"
|
||||
rendered="#{not empty createPath}"/>
|
||||
</div>
|
||||
<h:form id="#{formId}">
|
||||
<p:dataTable id="#{tableId}"
|
||||
value="#{viewBean.items}"
|
||||
var="#{var}"
|
||||
paginator="true"
|
||||
rows="10"
|
||||
rowsPerPageTemplate="10,20,50"
|
||||
emptyMessage="Aucun résultat trouvé"
|
||||
loading="#{viewBean.loading}"
|
||||
selection="#{viewBean.selectedItem}"
|
||||
selectionMode="single">
|
||||
<f:facet name="header">
|
||||
<div class="flex align-items-center justify-content-between">
|
||||
<span>Total : #{viewBean.items.size()} élément(s)</span>
|
||||
<p:commandButton icon="pi pi-trash"
|
||||
title="Supprimer"
|
||||
disabled="#{empty viewBean.selectedItem}"
|
||||
action="#{viewBean.delete()}"
|
||||
update="#{tableId}"
|
||||
styleClass="ui-button-danger ui-button-text"/>
|
||||
</div>
|
||||
</f:facet>
|
||||
<ui:insert name="columns"/>
|
||||
</p:dataTable>
|
||||
</h:form>
|
||||
</div>
|
||||
|
||||
</ui:composition>
|
||||
Reference in New Issue
Block a user