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:
85
target/classes/META-INF/resources/login.xhtml
Normal file
85
target/classes/META-INF/resources/login.xhtml
Normal file
@@ -0,0 +1,85 @@
|
||||
<!DOCTYPE html>
|
||||
<html 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"
|
||||
lang="fr">
|
||||
|
||||
<h:head>
|
||||
<f:facet name="first">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
|
||||
<link rel="icon" href="#{request.contextPath}/resources/freya-layout/images/favicon.ico" type="image/x-icon"/>
|
||||
</f:facet>
|
||||
<title>Connexion - BTP Xpress</title>
|
||||
<h:outputStylesheet name="css/primeicons.css" library="freya-layout" />
|
||||
<h:outputStylesheet name="css/primeflex.min.css" library="freya-layout" />
|
||||
<h:outputStylesheet name="css/layout-light.css" library="freya-layout" />
|
||||
<h:outputStylesheet name="css/freya-purple-light.css" library="freya-layout" />
|
||||
</h:head>
|
||||
|
||||
<h:body class="login-body">
|
||||
<div class="login-wrapper">
|
||||
<div class="login-container">
|
||||
<div class="login-left">
|
||||
<div class="login-content">
|
||||
<h1>BTP Xpress</h1>
|
||||
<p class="subtitle">Votre plateforme de gestion BTP</p>
|
||||
<p>Gérez vos projets, clients, matériels et équipes en toute simplicité.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="login-right">
|
||||
<div class="login-box">
|
||||
<h2>Connexion</h2>
|
||||
<p class="login-subtitle">Connectez-vous à votre compte</p>
|
||||
|
||||
<h:form id="loginForm">
|
||||
<div class="login-input-group">
|
||||
<label for="username">Nom d'utilisateur ou email</label>
|
||||
<p:inputText id="username"
|
||||
value="#{loginView.username}"
|
||||
placeholder="Votre nom d'utilisateur"
|
||||
required="true"
|
||||
requiredMessage="Le nom d'utilisateur est requis"
|
||||
styleClass="ui-input-filled"
|
||||
style="width: 100%;"/>
|
||||
</div>
|
||||
|
||||
<div class="login-input-group">
|
||||
<label for="password">Mot de passe</label>
|
||||
<p:password id="password"
|
||||
value="#{loginView.password}"
|
||||
placeholder="Votre mot de passe"
|
||||
required="true"
|
||||
requiredMessage="Le mot de passe est requis"
|
||||
feedback="false"
|
||||
toggleMask="true"
|
||||
styleClass="ui-input-filled"
|
||||
style="width: 100%;"/>
|
||||
</div>
|
||||
|
||||
<div class="login-options">
|
||||
<p:selectBooleanCheckbox id="rememberMe"
|
||||
value="#{loginView.rememberMe}"
|
||||
label="Se souvenir de moi"/>
|
||||
<a href="#" style="text-decoration: none; color: var(--primary-color);">Mot de passe oublié ?</a>
|
||||
</div>
|
||||
|
||||
<p:commandButton value="Se connecter"
|
||||
icon="pi pi-sign-in"
|
||||
action="#{loginView.login()}"
|
||||
style="width: 100%; margin-top: 1rem;"
|
||||
update="@form"
|
||||
process="@form"/>
|
||||
|
||||
<p:messages id="messages" showDetail="true" closable="true"/>
|
||||
</h:form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</h:body>
|
||||
</html>
|
||||
|
||||
Reference in New Issue
Block a user