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,66 @@
quarkus.application.name=BTP Xpress Client
quarkus.application.version=1.0.0
primefaces.THEME=freya-purple-light
primefaces.FONT_AWESOME=true
primefaces.UPLOADER=auto
primefaces.MOVE_SCRIPTS_TO_BOTTOM=true
primefaces.CLIENT_SIDE_VALIDATION=true
jakarta.faces.PROJECT_STAGE=Development
jakarta.faces.STATE_SAVING_METHOD=server
jakarta.faces.DATETIMECONVERTER_DEFAULT_TIMEZONE_IS_SYSTEM_TIMEZONE=true
jakarta.faces.PARTIAL_STATE_SAVING=true
jakarta.faces.VALIDATE_EMPTY_FIELDS=auto
quarkus.arc.remove-unused-beans=false
quarkus.http.port=8081
quarkus.http.cors=true
quarkus.http.cors.origins=http://localhost:8080,https://security.lions.dev
%dev.quarkus.oidc.enabled=false
%prod.quarkus.oidc.enabled=true
quarkus.oidc.auth-server-url=https://security.lions.dev/realms/btpxpress
quarkus.oidc.client-id=btpxpress-frontend
quarkus.oidc.application-type=web-app
quarkus.oidc.tls.verification=required
quarkus.oidc.authentication.redirect-path=/
quarkus.oidc.authentication.restore-path-after-redirect=true
quarkus.oidc.authentication.cookie-path=/
quarkus.oidc.authentication.session-age-extension=PT30M
quarkus.oidc.token.issuer=https://security.lions.dev/realms/btpxpress
quarkus.oidc.discovery-enabled=true
quarkus.oidc.token-state-manager.split-tokens=true
quarkus.oidc.token-state-manager.strategy=id-refresh-tokens
quarkus.oidc.token-state-manager.encryption-required=false
quarkus.oidc.token-state-manager.cookie-max-size=8192
quarkus.http.max-headers-size=128K
quarkus.http.max-request-body-size=10M
quarkus.http.max-parameters=1000
quarkus.http.max-parameter-size=2048
quarkus.vertx.max-headers-size=128K
vertx.http.maxHeaderSize=131072
quarkus.security.users.embedded.enabled=false
quarkus.http.auth.proactive=false
quarkus.security.deny-unannotated-endpoints=false
quarkus.log.level=INFO
quarkus.log.category."dev.lions.btpxpress".level=DEBUG
quarkus.log.console.enable=true
quarkus.log.console.format=%d{HH:mm:ss} %-5p [%c{2.}] (%t) %s%e%n
btpxpress.api.base-url=http://localhost:8080
btpxpress.api.timeout=30000
quarkus.rest-client."dev.lions.btpxpress.service.BtpXpressApiClient".url=${btpxpress.api.base-url}
quarkus.rest-client."dev.lions.btpxpress.service.BtpXpressApiClient".scope=jakarta.inject.Singleton
quarkus.locale=fr_FR
quarkus.http.auth.permission.public.paths=/*,/login.xhtml,/index.xhtml,/dashboard.xhtml,/chantiers.xhtml,/chantiers/*,/clients.xhtml,/clients/*
quarkus.http.auth.permission.public.policy=permit