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:
dahoud
2025-11-01 19:55:30 +00:00
commit b749f2df37
269 changed files with 29252 additions and 0 deletions

View File

@@ -0,0 +1,65 @@
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui">
<div class="layout-rightpanel">
<div class="rightpanel-wrapper">
<div class="rightpanel-section tasks-section">
<div class="section-header">
<h6>Mes Tâches</h6>
<h:form>
<p:commandButton type="button" icon="pi pi-plus" styleClass="ui-button-secondary ui-button-flat rounded-button" />
</h:form>
</div>
<ul>
<li>
<div class="task-info">
<h6>Réviser le devis pour le chantier A</h6>
<span>-Validation budgétaire</span>
<span>-Vérification matériaux</span>
</div>
</li>
<li>
<div class="task-info">
<h6>Planifier la maintenance préventive</h6>
<span>Matériel : Pelleteuse BX-2024</span>
</div>
</li>
<li class="done">
<div class="task-info">
<h6>Finaliser le rapport hebdomadaire</h6>
</div>
<i class="pi pi-check"></i>
</li>
</ul>
</div>
<div class="rightpanel-section favorites-section">
<div class="section-header">
<h6>Favoris</h6>
</div>
<div class="favorite-items">
<a href="dashboard.xhtml" class="favorite-item">
<i class="pi pi-home" style="font-size: 1.5rem;"></i>
</a>
<a href="chantiers.xhtml" class="favorite-item">
<i class="pi pi-building" style="font-size: 1.5rem;"></i>
</a>
<a href="clients.xhtml" class="favorite-item">
<i class="pi pi-users" style="font-size: 1.5rem;"></i>
</a>
<a href="rapports.xhtml" class="favorite-item">
<i class="pi pi-chart-bar" style="font-size: 1.5rem;"></i>
</a>
<a href="#" class="add-item">
<i class="pi pi-plus"></i>
</a>
</div>
</div>
</div>
</div>
</ui:composition>