Configure Maven repository for unionflow-server-api dependency

This commit is contained in:
dahoud
2025-12-10 01:12:54 +00:00
commit 2910809949
1173 changed files with 435718 additions and 0 deletions

View File

@@ -0,0 +1,510 @@
<!DOCTYPE html>
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:p="http://primefaces.org/ui"
template="/templates/main-template.xhtml">
<ui:param name="page" value="#{personnelBean}"/>
<ui:define name="title">Mes Préférences - UnionFlow</ui:define>
<ui:define name="content">
<div class="ui-fluid">
<!-- En-tête -->
<div class="grid mb-4">
<div class="col-12">
<div class="surface-card border-round p-4">
<div class="flex align-items-center justify-content-between mb-4">
<div>
<h2 class="text-900 font-bold text-4xl mb-2">
<i class="pi pi-cog text-blue-500 mr-3"></i>
Mes Préférences
</h2>
<p class="text-600 text-lg mb-0">
Personnalisez votre expérience UnionFlow selon vos besoins
</p>
</div>
<div class="flex gap-2">
<p:commandButton value="Réinitialiser"
styleClass="p-button-outlined"
icon="pi pi-refresh"
action="#{preferencesBean.reinitialiserPreferences}"
update="@form" />
<p:commandButton value="Enregistrer"
styleClass="p-button-primary"
icon="pi pi-save"
action="#{preferencesBean.sauvegarderPreferences}"
update="@form" />
</div>
</div>
<!-- Raccourcis préférences -->
<div class="grid">
<div class="col-12 lg:col-4">
<div class="surface-100 hover:surface-200 border-round p-4 text-center cursor-pointer transition-duration-200">
<i class="pi pi-palette text-3xl text-purple-500 mb-3"></i>
<h6 class="text-900 font-semibold mb-2">Apparence</h6>
<p class="text-600 text-sm mb-0">Thème, couleurs, mise en page</p>
</div>
</div>
<div class="col-12 lg:col-4">
<div class="surface-100 hover:surface-200 border-round p-4 text-center cursor-pointer transition-duration-200">
<i class="pi pi-bell text-3xl text-orange-500 mb-3"></i>
<h6 class="text-900 font-semibold mb-2">Notifications</h6>
<p class="text-600 text-sm mb-0">Alertes, emails, SMS</p>
</div>
</div>
<div class="col-12 lg:col-4">
<div class="surface-100 hover:surface-200 border-round p-4 text-center cursor-pointer transition-duration-200">
<i class="pi pi-shield text-3xl text-green-500 mb-3"></i>
<h6 class="text-900 font-semibold mb-2">Confidentialité</h6>
<p class="text-600 text-sm mb-0">Sécurité, permissions</p>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Préférences d'apparence -->
<div class="grid mb-4">
<div class="col-12">
<div class="surface-card border-round p-4">
<h4 class="text-900 font-bold mb-4">
<i class="pi pi-palette text-purple-500 mr-2"></i>
Apparence et Interface
</h4>
<h:form id="apparenceForm">
<div class="grid">
<div class="col-12 lg:col-6">
<div class="surface-100 border-round p-4">
<h6 class="text-900 font-semibold mb-3">Thème</h6>
<p:selectOneRadio id="theme" value="#{preferencesBean.theme}" layout="custom">
<f:selectItem itemLabel="Clair" itemValue="light" />
<f:selectItem itemLabel="Sombre" itemValue="dark" />
</p:selectOneRadio>
<div class="grid">
<div class="col-6">
<div class="field-radiobutton">
<p:radioButton id="themeLight" for="theme" itemIndex="0" />
<label for="themeLight" class="ml-2">
<div class="surface-100 border-round p-3 cursor-pointer">
<i class="pi pi-sun text-yellow-500 text-xl mb-2"></i>
<div class="text-900 font-semibold text-sm">Clair</div>
<div class="text-600 text-xs">Mode jour</div>
</div>
</label>
</div>
</div>
<div class="col-6">
<div class="field-radiobutton">
<p:radioButton id="themeDark" for="theme" itemIndex="1" />
<label for="themeDark" class="ml-2">
<div class="surface-800 border-round p-3 cursor-pointer">
<i class="pi pi-moon text-blue-400 text-xl mb-2"></i>
<div class="text-white font-semibold text-sm">Sombre</div>
<div class="text-300 text-xs">Mode nuit</div>
</div>
</label>
</div>
</div>
</div>
</div>
</div>
<div class="col-12 lg:col-6">
<div class="surface-100 border-round p-4">
<h6 class="text-900 font-semibold mb-3">Couleur d'accent</h6>
<p:selectOneRadio id="accentColor" value="#{preferencesBean.couleurAccent}" layout="custom">
<f:selectItem itemLabel="Bleu" itemValue="blue" />
<f:selectItem itemLabel="Vert" itemValue="green" />
<f:selectItem itemLabel="Violet" itemValue="purple" />
<f:selectItem itemLabel="Orange" itemValue="orange" />
</p:selectOneRadio>
<div class="grid">
<div class="col-3">
<div class="field-radiobutton">
<p:radioButton id="colorBlue" for="accentColor" itemIndex="0" />
<label for="colorBlue" class="w-2rem h-2rem border-circle bg-blue-500 cursor-pointer block ml-2"></label>
</div>
</div>
<div class="col-3">
<div class="field-radiobutton">
<p:radioButton id="colorGreen" for="accentColor" itemIndex="1" />
<label for="colorGreen" class="w-2rem h-2rem border-circle bg-green-500 cursor-pointer block ml-2"></label>
</div>
</div>
<div class="col-3">
<div class="field-radiobutton">
<p:radioButton id="colorPurple" for="accentColor" itemIndex="2" />
<label for="colorPurple" class="w-2rem h-2rem border-circle bg-purple-500 cursor-pointer block ml-2"></label>
</div>
</div>
<div class="col-3">
<div class="field-radiobutton">
<p:radioButton id="colorOrange" for="accentColor" itemIndex="3" />
<label for="colorOrange" class="w-2rem h-2rem border-circle bg-orange-500 cursor-pointer block ml-2"></label>
</div>
</div>
</div>
</div>
</div>
<div class="col-12 lg:col-4">
<div class="field">
<label for="langue" class="block text-900 font-semibold mb-2">Langue</label>
<p:selectOneMenu id="langue" value="#{preferencesBean.langue}" styleClass="w-full">
<f:selectItem itemLabel="Français" itemValue="fr" />
<f:selectItem itemLabel="English" itemValue="en" />
<f:selectItem itemLabel="العربية" itemValue="ar" />
<f:selectItem itemLabel="Wolof" itemValue="wo" />
</p:selectOneMenu>
</div>
</div>
<div class="col-12 lg:col-4">
<div class="field">
<label for="fuseau" class="block text-900 font-semibold mb-2">Fuseau horaire</label>
<p:selectOneMenu id="fuseau" value="#{preferencesBean.fuseauHoraire}" styleClass="w-full">
<f:selectItem itemLabel="GMT (Casablanca)" itemValue="GMT" />
<f:selectItem itemLabel="GMT+1 (Paris)" itemValue="CET" />
<f:selectItem itemLabel="GMT-5 (New York)" itemValue="EST" />
</p:selectOneMenu>
</div>
</div>
<div class="col-12 lg:col-4">
<div class="field">
<label for="format" class="block text-900 font-semibold mb-2">Format de date</label>
<p:selectOneMenu id="format" value="#{preferencesBean.formatDate}" styleClass="w-full">
<f:selectItem itemLabel="DD/MM/YYYY" itemValue="dd/mm/yyyy" />
<f:selectItem itemLabel="MM/DD/YYYY" itemValue="mm/dd/yyyy" />
<f:selectItem itemLabel="YYYY-MM-DD" itemValue="yyyy-mm-dd" />
</p:selectOneMenu>
</div>
</div>
</div>
</h:form>
</div>
</div>
</div>
<!-- Préférences de notifications -->
<div class="grid mb-4">
<div class="col-12">
<div class="surface-card border-round p-4">
<h4 class="text-900 font-bold mb-4">
<i class="pi pi-bell text-orange-500 mr-2"></i>
Notifications et Alertes
</h4>
<h:form id="notificationsForm">
<div class="grid">
<div class="col-12 lg:col-4">
<div class="surface-100 border-round p-4">
<h6 class="text-900 font-semibold mb-3">
<i class="pi pi-desktop mr-2"></i>Notifications navigateur
</h6>
<div class="field-checkbox mb-3">
<p:selectBooleanCheckbox id="notifEvenements" value="#{preferencesBean.notifEvenements}" />
<label for="notifEvenements" class="ml-2 text-900">Nouveaux événements</label>
</div>
<div class="field-checkbox mb-3">
<p:selectBooleanCheckbox id="notifMessages" value="#{preferencesBean.notifMessages}" />
<label for="notifMessages" class="ml-2 text-900">Messages privés</label>
</div>
<div class="field-checkbox mb-3">
<p:selectBooleanCheckbox id="notifCotisations" value="#{preferencesBean.notifCotisations}" />
<label for="notifCotisations" class="ml-2 text-900">Rappels cotisations</label>
</div>
<div class="field-checkbox">
<p:selectBooleanCheckbox id="notifSysteme" value="#{preferencesBean.notifSysteme}" />
<label for="notifSysteme" class="ml-2 text-900">Mises à jour système</label>
</div>
</div>
</div>
<div class="col-12 lg:col-4">
<div class="surface-100 border-round p-4">
<h6 class="text-900 font-semibold mb-3">
<i class="pi pi-envelope mr-2"></i>Notifications email
</h6>
<div class="field-checkbox mb-3">
<p:selectBooleanCheckbox id="emailQuotidien" value="#{preferencesBean.emailQuotidien}" />
<label for="emailQuotidien" class="ml-2 text-900">Résumé quotidien</label>
</div>
<div class="field-checkbox mb-3">
<p:selectBooleanCheckbox id="emailHebdo" value="#{preferencesBean.emailHebdo}" />
<label for="emailHebdo" class="ml-2 text-900">Newsletter hebdomadaire</label>
</div>
<div class="field-checkbox mb-3">
<p:selectBooleanCheckbox id="emailUrgent" value="#{preferencesBean.emailUrgent}" />
<label for="emailUrgent" class="ml-2 text-900">Alertes urgentes</label>
</div>
<div class="field-checkbox">
<p:selectBooleanCheckbox id="emailPromo" value="#{preferencesBean.emailPromo}" />
<label for="emailPromo" class="ml-2 text-900">Offres promotionnelles</label>
</div>
</div>
</div>
<div class="col-12 lg:col-4">
<div class="surface-100 border-round p-4">
<h6 class="text-900 font-semibold mb-3">
<i class="pi pi-mobile mr-2"></i>Notifications SMS
</h6>
<div class="field-checkbox mb-3">
<p:selectBooleanCheckbox id="smsUrgent" value="#{preferencesBean.smsUrgent}" />
<label for="smsUrgent" class="ml-2 text-900">Urgences uniquement</label>
</div>
<div class="field-checkbox mb-3">
<p:selectBooleanCheckbox id="smsRappels" value="#{preferencesBean.smsRappels}" />
<label for="smsRappels" class="ml-2 text-900">Rappels importants</label>
</div>
<div class="field-checkbox mb-3">
<p:selectBooleanCheckbox id="smsEvenements" value="#{preferencesBean.smsEvenements}" />
<label for="smsEvenements" class="ml-2 text-900">Événements du jour</label>
</div>
<div class="field">
<label for="heuresSMS" class="block text-900 font-semibold mb-2">Heures autorisées</label>
<p:selectOneMenu id="heuresSMS" value="#{preferencesBean.heuresSMS}" styleClass="w-full">
<f:selectItem itemLabel="08h - 20h" itemValue="08-20" />
<f:selectItem itemLabel="09h - 18h" itemValue="09-18" />
<f:selectItem itemLabel="24h/24" itemValue="00-24" />
</p:selectOneMenu>
</div>
</div>
</div>
</div>
</h:form>
</div>
</div>
</div>
<!-- Préférences de confidentialité -->
<div class="grid mb-4">
<div class="col-12">
<div class="surface-card border-round p-4">
<h4 class="text-900 font-bold mb-4">
<i class="pi pi-shield text-green-500 mr-2"></i>
Confidentialité et Sécurité
</h4>
<h:form id="confidentialiteForm">
<div class="grid">
<div class="col-12 lg:col-6">
<div class="surface-100 border-round p-4">
<h6 class="text-900 font-semibold mb-3">Visibilité du profil</h6>
<p:selectOneRadio id="visibilite" value="#{preferencesBean.visibiliteProfil}" layout="custom">
<f:selectItem itemLabel="Public" itemValue="publique" />
<f:selectItem itemLabel="Limité" itemValue="limitee" />
<f:selectItem itemLabel="Privé" itemValue="prive" />
</p:selectOneRadio>
<div class="field-radiobutton mb-3">
<p:radioButton id="visibilitePublique" for="visibilite" itemIndex="0" />
<label for="visibilitePublique" class="ml-2">
<div class="text-900 font-semibold">Public</div>
<div class="text-600 text-sm">Visible par tous les membres</div>
</label>
</div>
<div class="field-radiobutton mb-3">
<p:radioButton id="visibiliteLimitee" for="visibilite" itemIndex="1" />
<label for="visibiliteLimitee" class="ml-2">
<div class="text-900 font-semibold">Limité</div>
<div class="text-600 text-sm">Visible par les administrateurs</div>
</label>
</div>
<div class="field-radiobutton">
<p:radioButton id="visibilitePrive" for="visibilite" itemIndex="2" />
<label for="visibilitePrive" class="ml-2">
<div class="text-900 font-semibold">Privé</div>
<div class="text-600 text-sm">Visible par vous uniquement</div>
</label>
</div>
</div>
</div>
<div class="col-12 lg:col-6">
<div class="surface-100 border-round p-4">
<h6 class="text-900 font-semibold mb-3">Paramètres de sécurité</h6>
<div class="field-checkbox mb-3">
<p:selectBooleanCheckbox id="doubleAuth" value="#{preferencesBean.doubleAuth}" />
<label for="doubleAuth" class="ml-2 text-900">Authentification à deux facteurs</label>
</div>
<div class="field-checkbox mb-3">
<p:selectBooleanCheckbox id="connexionSecure" value="#{preferencesBean.connexionSecure}" />
<label for="connexionSecure" class="ml-2 text-900">Connexion HTTPS obligatoire</label>
</div>
<div class="field-checkbox mb-3">
<p:selectBooleanCheckbox id="deconnexionAuto" value="#{preferencesBean.deconnexionAuto}" />
<label for="deconnexionAuto" class="ml-2 text-900">Déconnexion automatique</label>
</div>
<div class="field">
<label for="dureeSession" class="block text-900 font-semibold mb-2">Durée max session</label>
<p:selectOneMenu id="dureeSession" styleClass="w-full">
<f:selectItem itemLabel="30 minutes" itemValue="30" />
<f:selectItem itemLabel="1 heure" itemValue="60" />
<f:selectItem itemLabel="2 heures" itemValue="120" />
<f:selectItem itemLabel="4 heures" itemValue="240" />
<f:selectItem itemLabel="8 heures" itemValue="480" />
</p:selectOneMenu>
</div>
</div>
</div>
</div>
</h:form>
</div>
</div>
</div>
<!-- Préférences tableau de bord -->
<div class="grid mb-4">
<div class="col-12">
<div class="surface-card border-round p-4">
<h4 class="text-900 font-bold mb-4">
<i class="pi pi-chart-bar text-blue-500 mr-2"></i>
Tableau de Bord Personnel
</h4>
<h:form id="dashboardForm">
<div class="grid">
<div class="col-12 lg:col-6">
<div class="surface-100 border-round p-4">
<h6 class="text-900 font-semibold mb-3">Widgets à afficher</h6>
<div class="field-checkbox mb-2">
<p:selectBooleanCheckbox id="widgetActivites" value="#{preferencesBean.widgetActivites}" />
<label for="widgetActivites" class="ml-2 text-900">Activités récentes</label>
</div>
<div class="field-checkbox mb-2">
<p:selectBooleanCheckbox id="widgetEvenements" value="#{preferencesBean.widgetEvenements}" />
<label for="widgetEvenements" class="ml-2 text-900">Événements à venir</label>
</div>
<div class="field-checkbox mb-2">
<p:selectBooleanCheckbox id="widgetCotisations" value="#{preferencesBean.widgetCotisations}" />
<label for="widgetCotisations" class="ml-2 text-900">État des cotisations</label>
</div>
<div class="field-checkbox mb-2">
<p:selectBooleanCheckbox id="widgetNotifications" value="#{preferencesBean.widgetNotifications}" />
<label for="widgetNotifications" class="ml-2 text-900">Notifications récentes</label>
</div>
<div class="field-checkbox mb-2">
<p:selectBooleanCheckbox id="widgetStatistiques" value="#{preferencesBean.widgetStatistiques}" />
<label for="widgetStatistiques" class="ml-2 text-900">Mes statistiques</label>
</div>
<div class="field-checkbox">
<p:selectBooleanCheckbox id="widgetMeteo" value="#{preferencesBean.widgetMeteo}" />
<label for="widgetMeteo" class="ml-2 text-900">Météo locale</label>
</div>
</div>
</div>
<div class="col-12 lg:col-6">
<div class="surface-100 border-round p-4">
<h6 class="text-900 font-semibold mb-3">Configuration d'affichage</h6>
<div class="field">
<label for="layoutDashboard" class="block text-900 font-semibold mb-2">Disposition</label>
<p:selectOneMenu id="layoutDashboard" value="#{preferencesBean.layoutDashboard}" styleClass="w-full">
<f:selectItem itemLabel="Grille 2 colonnes" itemValue="grid-2" />
<f:selectItem itemLabel="Grille 3 colonnes" itemValue="grid-3" />
<f:selectItem itemLabel="Liste verticale" itemValue="list" />
<f:selectItem itemLabel="Compact" itemValue="compact" />
</p:selectOneMenu>
</div>
<div class="field">
<label for="pageAccueil" class="block text-900 font-semibold mb-2">Page d'accueil</label>
<p:selectOneMenu id="pageAccueil" value="#{preferencesBean.pageAccueil}" styleClass="w-full">
<f:selectItem itemLabel="Tableau de bord" itemValue="dashboard" />
<f:selectItem itemLabel="Mes activités" itemValue="activites" />
<f:selectItem itemLabel="Mon agenda" itemValue="agenda" />
<f:selectItem itemLabel="Dernière page visitée" itemValue="last" />
</p:selectOneMenu>
</div>
<div class="field">
<label for="elementsPage" class="block text-900 font-semibold mb-2">Éléments par page</label>
<p:selectOneMenu id="elementsPage" value="#{preferencesBean.elementsPage}" styleClass="w-full">
<f:selectItem itemLabel="10" itemValue="10" />
<f:selectItem itemLabel="25" itemValue="25" />
<f:selectItem itemLabel="50" itemValue="50" />
<f:selectItem itemLabel="100" itemValue="100" />
</p:selectOneMenu>
</div>
<div class="field-checkbox">
<p:selectBooleanCheckbox id="animations" value="#{preferencesBean.animations}" />
<label for="animations" class="ml-2 text-900">Activer les animations</label>
</div>
</div>
</div>
</div>
</h:form>
</div>
</div>
</div>
<!-- Actions -->
<div class="grid">
<div class="col-12">
<div class="surface-card border-round p-4">
<div class="flex align-items-center justify-content-between">
<div>
<h6 class="text-900 font-semibold mb-1">Enregistrer les modifications</h6>
<p class="text-600 text-sm mb-0">Vos préférences seront appliquées immédiatement</p>
</div>
<div class="flex gap-2">
<p:commandButton value="Annuler"
styleClass="p-button-outlined"
icon="pi pi-times" />
<p:commandButton value="Réinitialiser par défaut"
styleClass="p-button-secondary"
icon="pi pi-refresh" />
<p:commandButton value="Enregistrer les préférences"
styleClass="p-button-primary"
icon="pi pi-save" />
</div>
</div>
<div class="surface-blue-50 border-left-3 border-blue-500 p-3 mt-3">
<p class="text-blue-700 text-sm mb-0">
<i class="pi pi-info-circle mr-2"></i>
Certaines modifications nécessiteront une reconnexion pour être appliquées.
</p>
</div>
</div>
</div>
</div>
</div>
</ui:define>
</ui:composition>