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
125 lines
9.4 KiB
HTML
125 lines
9.4 KiB
HTML
<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"
|
|
xmlns:fr="http://primefaces.org/freya">
|
|
|
|
<div class="menu-wrapper">
|
|
<div class="sidebar-logo">
|
|
<a href="dashboard.xhtml">
|
|
<p:graphicImage name="images/logo-freya-single.svg" library="freya-layout" />
|
|
</a>
|
|
<a href="#" class="sidebar-pin" title="Toggle Menu">
|
|
<span class="pin"></span>
|
|
</a>
|
|
</div>
|
|
<div class="layout-menu-container">
|
|
<h:form id="menuform">
|
|
<fr:menu widgetVar="FreyaMenuWidget">
|
|
<p:menuitem id="m_dashboard" value="Dashboard" icon="pi pi-home" outcome="/dashboard" />
|
|
|
|
<p:submenu id="m_chantiers" label="Chantiers" icon="pi pi-building">
|
|
<p:menuitem id="m_chantiers_liste" value="List" icon="pi pi-list" outcome="/chantiers" />
|
|
<p:menuitem id="m_chantiers_nouveau" value="New" icon="pi pi-plus-circle" outcome="/chantiers/nouveau" />
|
|
<p:menuitem id="m_chantiers_en_cours" value="In Progress" icon="pi pi-spin pi-spinner" outcome="/chantiers/en-cours" />
|
|
<p:menuitem id="m_chantiers_termines" value="Completed" icon="pi pi-check-circle" outcome="/chantiers/termines" />
|
|
<p:menuitem id="m_chantiers_planifies" value="Scheduled" icon="pi pi-calendar" outcome="/chantiers/planifies" />
|
|
</p:submenu>
|
|
|
|
<p:submenu id="m_clients" label="Clients" icon="pi pi-users">
|
|
<p:menuitem id="m_clients_liste" value="List" icon="pi pi-list" outcome="/clients" />
|
|
<p:menuitem id="m_clients_nouveau" value="New" icon="pi pi-user-plus" outcome="/clients/nouveau" />
|
|
<p:menuitem id="m_clients_recherche" value="Search" icon="pi pi-search" outcome="/clients/recherche" />
|
|
</p:submenu>
|
|
|
|
<p:submenu id="m_devis" label="Devis" icon="pi pi-file-edit">
|
|
<p:menuitem id="m_devis_liste" value="List" icon="pi pi-list" outcome="/devis" />
|
|
<p:menuitem id="m_devis_nouveau" value="New" icon="pi pi-plus" outcome="/devis/nouveau" />
|
|
<p:menuitem id="m_devis_attente" value="Pending" icon="pi pi-clock" outcome="/devis/attente" />
|
|
<p:menuitem id="m_devis_acceptes" value="Accepted" icon="pi pi-check" outcome="/devis/acceptes" />
|
|
<p:menuitem id="m_devis_expires" value="Expired" icon="pi pi-exclamation-triangle" outcome="/devis/expires" />
|
|
</p:submenu>
|
|
|
|
<p:submenu id="m_factures" label="Factures" icon="pi pi-dollar">
|
|
<p:menuitem id="m_factures_liste" value="List" icon="pi pi-list" outcome="/factures" />
|
|
<p:menuitem id="m_factures_nouvelle" value="New" icon="pi pi-plus" outcome="/factures/nouvelle" />
|
|
<p:menuitem id="m_factures_payees" value="Paid" icon="pi pi-check-circle" outcome="/factures/payees" />
|
|
<p:menuitem id="m_factures_impayees" value="Unpaid" icon="pi pi-exclamation-circle" outcome="/factures/impayees" />
|
|
<p:menuitem id="m_factures_retard" value="Overdue" icon="pi pi-clock" outcome="/factures/retard" />
|
|
</p:submenu>
|
|
|
|
<p:submenu id="m_materiels" label="Matériels" icon="pi pi-wrench">
|
|
<p:menuitem id="m_materiels_liste" value="Inventory" icon="pi pi-list" outcome="/materiels" />
|
|
<p:menuitem id="m_materiels_nouveau" value="New" icon="pi pi-plus" outcome="/materiels/nouveau" />
|
|
<p:menuitem id="m_materiels_disponibles" value="Available" icon="pi pi-check" outcome="/materiels/disponibles" />
|
|
<p:menuitem id="m_materiels_maintenance" value="Maintenance" icon="pi pi-cog" outcome="/materiels/maintenance-prevue" />
|
|
</p:submenu>
|
|
|
|
<p:submenu id="m_stock" label="Stock" icon="pi pi-box">
|
|
<p:menuitem id="m_stock_liste" value="Management" icon="pi pi-list" outcome="/stock" />
|
|
<p:menuitem id="m_stock_inventaire" value="Inventory" icon="pi pi-check-square" outcome="/stock/inventaire" />
|
|
<p:menuitem id="m_stock_commandes" value="Orders" icon="pi pi-shopping-cart" outcome="/stock/commandes" />
|
|
<p:menuitem id="m_stock_sorties" value="Outgoing" icon="pi pi-sign-out" outcome="/stock/sorties" />
|
|
</p:submenu>
|
|
|
|
<p:submenu id="m_employes" label="Employés" icon="pi pi-id-card">
|
|
<p:menuitem id="m_employes_liste" value="List" icon="pi pi-list" outcome="/employes" />
|
|
<p:menuitem id="m_employes_nouveau" value="New" icon="pi pi-user-plus" outcome="/employes/nouveau" />
|
|
<p:menuitem id="m_employes_actifs" value="Active" icon="pi pi-check-circle" outcome="/employes/actifs" />
|
|
<p:menuitem id="m_employes_disponibles" value="Available" icon="pi pi-users" outcome="/employes/disponibles" />
|
|
</p:submenu>
|
|
|
|
<p:submenu id="m_equipes" label="Équipes" icon="pi pi-users">
|
|
<p:menuitem id="m_equipes_liste" value="List" icon="pi pi-list" outcome="/equipes" />
|
|
<p:menuitem id="m_equipes_nouvelle" value="New" icon="pi pi-plus" outcome="/equipes/nouvelle" />
|
|
<p:menuitem id="m_equipes_disponibles" value="Available" icon="pi pi-check" outcome="/equipes/disponibles" />
|
|
<p:menuitem id="m_equipes_specialites" value="Specialties" icon="pi pi-tags" outcome="/equipes/specialites" />
|
|
</p:submenu>
|
|
|
|
<p:submenu id="m_planning" label="Planning" icon="pi pi-calendar">
|
|
<p:menuitem id="m_planning_calendrier" value="Calendar" icon="pi pi-calendar" outcome="/planning/calendrier" />
|
|
<p:menuitem id="m_planning_materiel" value="Equipment" icon="pi pi-wrench" outcome="/planning/materiel" />
|
|
<p:menuitem id="m_planning_equipes" value="Teams" icon="pi pi-users" outcome="/planning/equipes" />
|
|
</p:submenu>
|
|
|
|
<p:submenu id="m_maintenance" label="Maintenance" icon="pi pi-cog">
|
|
<p:menuitem id="m_maintenance_liste" value="List" icon="pi pi-list" outcome="/maintenance" />
|
|
<p:menuitem id="m_maintenance_nouvelle" value="New" icon="pi pi-plus" outcome="/maintenance/nouveau" />
|
|
<p:menuitem id="m_maintenance_preventive" value="Preventive" icon="pi pi-shield" outcome="/maintenance/preventive" />
|
|
<p:menuitem id="m_maintenance_corrective" value="Corrective" icon="pi pi-exclamation-triangle" outcome="/maintenance/corrective" />
|
|
<p:menuitem id="m_maintenance_urgente" value="Urgent" icon="pi pi-bolt" outcome="/maintenance/urgente" />
|
|
</p:submenu>
|
|
|
|
<p:submenu id="m_rapports" label="Rapports" icon="pi pi-chart-bar">
|
|
<p:menuitem id="m_rapports_liste" value="List" icon="pi pi-list" outcome="/rapports" />
|
|
<p:menuitem id="m_rapports_ca" value="Revenue" icon="pi pi-dollar" outcome="/rapports/ca" />
|
|
<p:menuitem id="m_rapports_rentabilite" value="Profitability" icon="pi pi-chart-line" outcome="/rapports/rentabilite" />
|
|
<p:menuitem id="m_rapports_clients" value="By Client" icon="pi pi-users" outcome="/rapports/clients" />
|
|
<p:menuitem id="m_rapports_equipes" value="By Team" icon="pi pi-id-card" outcome="/rapports/equipes" />
|
|
</p:submenu>
|
|
|
|
<p:submenu id="m_notifications" label="Notifications" icon="pi pi-bell">
|
|
<p:menuitem id="m_notifications_liste" value="All" icon="pi pi-list" outcome="/notifications" />
|
|
<p:menuitem id="m_notifications_recentes" value="Recent" icon="pi pi-clock" outcome="/notifications/recentes" />
|
|
<p:menuitem id="m_notifications_non_lues" value="Unread" icon="pi pi-envelope" outcome="/notifications/non-lues" />
|
|
<p:menuitem id="m_notifications_statistiques" value="Statistics" icon="pi pi-chart-pie" outcome="/notifications/statistiques" />
|
|
</p:submenu>
|
|
|
|
<p:submenu id="m_messages" label="Messages" icon="pi pi-comments">
|
|
<p:menuitem id="m_messages_liste" value="Inbox" icon="pi pi-inbox" outcome="/messages" />
|
|
<p:menuitem id="m_messages_nouveau" value="New" icon="pi pi-plus" outcome="/messages/nouveau" />
|
|
<p:menuitem id="m_messages_envoyes" value="Sent" icon="pi pi-send" outcome="/messages/envoyes" />
|
|
<p:menuitem id="m_messages_archives" value="Archived" icon="pi pi-archive" outcome="/messages/archives" />
|
|
</p:submenu>
|
|
|
|
<p:menuitem id="m_profile" value="Profile" icon="pi pi-user" outcome="/profile" />
|
|
<p:menuitem id="m_documentation" value="Documentation" icon="pi pi-book" outcome="/documentation" />
|
|
</fr:menu>
|
|
</h:form>
|
|
</div>
|
|
</div>
|
|
|
|
</ui:composition>
|
|
|