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,301 @@
<!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">Mon Profil - UnionFlow</ui:define>
<ui:define name="content">
<h:form id="formProfil">
<!-- En-tête profil -->
<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 class="flex align-items-center gap-4">
<div class="w-6rem h-6rem border-circle bg-primary-100 flex align-items-center justify-content-center">
<h:graphicImage value="#{personnelBean.membre.photoUrl}"
style="width: 100%; height: 100%; object-fit: cover; border-radius: 50%;"
rendered="#{personnelBean.membre != null and personnelBean.membre.photoUrl != null}" />
<i class="pi pi-user text-primary text-4xl"
rendered="#{personnelBean.membre == null or personnelBean.membre.photoUrl == null}"></i>
</div>
<div>
<h2 class="text-900 font-bold text-3xl mb-2">
#{personnelBean.membre != null ? personnelBean.membre.nomComplet : 'Chargement...'}
</h2>
<p class="text-600 text-lg mb-1" rendered="#{personnelBean.membre != null and personnelBean.membre.dateAdhesion != null}">
Membre depuis le #{personnelBean.membre.dateAdhesionFormatee}
</p>
<div class="flex align-items-center gap-2" rendered="#{personnelBean.membre != null}">
<p:tag value="#{personnelBean.membre.statut}"
severity="#{personnelBean.membre.statutSeverity}"
styleClass="text-sm" />
<p:tag value="#{personnelBean.membre.typeMembre}"
severity="#{personnelBean.membre.typeSeverity}"
styleClass="text-sm" />
</div>
</div>
</div>
<div class="flex gap-2">
<ui:include src="/templates/components/buttons/button-primary.xhtml">
<ui:param name="value" value="Modifier" />
<ui:param name="icon" value="pi pi-pencil" />
<ui:param name="onclick" value="PF('modifierProfilDialog').show();" />
</ui:include>
<ui:include src="/templates/components/buttons/button-icon.xhtml">
<ui:param name="icon" value="pi pi-refresh" />
<ui:param name="action" value="#{personnelBean.actualiser}" />
<ui:param name="update" value="@form" />
<ui:param name="title" value="Actualiser" />
<ui:param name="rounded" value="true" />
<ui:param name="text" value="false" />
<ui:param name="styleClass" value="ui-button-outlined ui-button-secondary" />
</ui:include>
</div>
</div>
<!-- Statistiques profil -->
<div class="grid" rendered="#{personnelBean.statistiques != null}">
<ui:include src="/templates/components/cards/stat-card.xhtml">
<ui:param name="value" value="#{personnelBean.statistiques.actionsRealisees}" />
<ui:param name="label" value="Actions Réalisées" />
<ui:param name="subLabel" value="Ce mois-ci" />
<ui:param name="icon" value="pi pi-check-circle" />
<ui:param name="bgColor" value="blue" />
</ui:include>
<ui:include src="/templates/components/cards/stat-card.xhtml">
<ui:param name="value" value="#{personnelBean.statistiques.evenementsParticipes}" />
<ui:param name="label" value="Événements" />
<ui:param name="subLabel" value="Participés" />
<ui:param name="icon" value="pi pi-calendar" />
<ui:param name="bgColor" value="green" />
</ui:include>
<ui:include src="/templates/components/cards/stat-card.xhtml">
<ui:param name="value" value="#{personnelBean.statistiques.tauxParticipation}%" />
<ui:param name="label" value="Taux Participation" />
<ui:param name="subLabel" value="Global" />
<ui:param name="icon" value="pi pi-chart-line" />
<ui:param name="bgColor" value="purple" />
</ui:include>
<ui:include src="/templates/components/cards/stat-card.xhtml">
<ui:param name="value" value="#{personnelBean.statistiques.evaluationMoyenne}★" />
<ui:param name="label" value="Évaluation" />
<ui:param name="subLabel" value="Moyenne" />
<ui:param name="icon" value="pi pi-star" />
<ui:param name="bgColor" value="orange" />
</ui:include>
</div>
</div>
</div>
</div>
<!-- Informations personnelles -->
<div class="grid mb-4" rendered="#{personnelBean.membre != null}">
<div class="col-12 lg:col-8">
<div class="surface-card border-round p-4 h-full">
<h4 class="text-900 font-bold mb-4">
<i class="pi pi-id-card text-primary mr-2"></i>
Informations Personnelles
</h4>
<div class="grid">
<div class="col-12 lg:col-6">
<div class="surface-100 border-round p-3 mb-3">
<div class="text-600 text-sm mb-1">Nom complet</div>
<div class="text-900 font-semibold">#{personnelBean.membre.nomComplet}</div>
</div>
</div>
<div class="col-12 lg:col-6">
<div class="surface-100 border-round p-3 mb-3">
<div class="text-600 text-sm mb-1">Email</div>
<div class="text-900 font-semibold">#{personnelBean.membre.email}</div>
</div>
</div>
<div class="col-12 lg:col-6">
<div class="surface-100 border-round p-3 mb-3">
<div class="text-600 text-sm mb-1">Téléphone</div>
<div class="text-900 font-semibold">#{personnelBean.membre.telephone}</div>
</div>
</div>
<div class="col-12 lg:col-6" rendered="#{personnelBean.membre.dateNaissance != null}">
<div class="surface-100 border-round p-3 mb-3">
<div class="text-600 text-sm mb-1">Date de naissance</div>
<div class="text-900 font-semibold">#{personnelBean.membre.dateNaissanceFormatee}</div>
</div>
</div>
<div class="col-12" rendered="#{personnelBean.membre.adresse != null}">
<div class="surface-100 border-round p-3 mb-3">
<div class="text-600 text-sm mb-1">Adresse</div>
<div class="text-900 font-semibold">#{personnelBean.membre.adresse}</div>
</div>
</div>
<div class="col-12 lg:col-6" rendered="#{personnelBean.membre.profession != null}">
<div class="surface-100 border-round p-3 mb-3">
<div class="text-600 text-sm mb-1">Profession</div>
<div class="text-900 font-semibold">#{personnelBean.membre.profession}</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-12 lg:col-4">
<div class="surface-card border-round p-4 h-full">
<h4 class="text-900 font-bold mb-4">
<i class="pi pi-bookmark text-blue-500 mr-2"></i>
Adhésion et Statut
</h4>
<div class="surface-100 border-round p-3 mb-3">
<div class="text-600 text-sm mb-1">Numéro de membre</div>
<div class="text-900 font-bold text-lg">#{personnelBean.membre.numeroMembre}</div>
</div>
<div class="surface-100 border-round p-3 mb-3" rendered="#{personnelBean.membre.typeMembre != null}">
<div class="text-600 text-sm mb-1">Type d'adhésion</div>
<div class="text-900 font-semibold">#{personnelBean.membre.typeMembre}</div>
</div>
<div class="surface-100 border-round p-3 mb-3" rendered="#{personnelBean.membre.dateAdhesion != null}">
<div class="text-600 text-sm mb-1">Date d'inscription</div>
<div class="text-900 font-semibold">#{personnelBean.membre.dateAdhesionFormatee}</div>
</div>
</div>
</div>
</div>
<!-- Activités récentes -->
<div class="grid mb-4">
<div class="col-12 lg:col-6">
<div class="surface-card border-round p-4 h-full">
<h4 class="text-900 font-bold mb-4">
<i class="pi pi-history text-purple-500 mr-2"></i>
Activités Récentes
</h4>
<ui:repeat value="#{personnelBean.activitesRecentes}" var="activite">
<div class="surface-100 border-round p-3 mb-3">
<div class="flex align-items-center justify-content-between mb-2">
<span class="text-900 font-semibold text-sm">#{activite.titre}</span>
<span class="text-600 text-xs">#{activite.dateHeure}</span>
</div>
<div class="text-600 text-sm">#{activite.description}</div>
</div>
</ui:repeat>
<div class="text-center text-600 text-sm" rendered="#{empty personnelBean.activitesRecentes}">
Aucune activité récente
</div>
</div>
</div>
<div class="col-12 lg:col-6">
<div class="surface-card border-round p-4 h-full">
<h4 class="text-900 font-bold mb-4">
<i class="pi pi-shield text-orange-500 mr-2"></i>
Rôles et Permissions
</h4>
<div class="text-600 text-sm" rendered="#{userSession != null and userSession.roles != null}">
<ui:repeat value="#{userSession.roles}" var="role">
<div class="mb-2">
<p:tag value="#{role}" severity="info" styleClass="text-xs" />
</div>
</ui:repeat>
</div>
</div>
</div>
</div>
</h:form>
<!-- Dialog Modifier Profil -->
<p:dialog id="modifierProfilDialog"
widgetVar="modifierProfilDialog"
header="Modifier Mon Profil"
modal="true"
width="900"
styleClass="surface-0">
<h:form id="modifierProfilForm">
<div class="ui-fluid">
<div class="formgrid grid" rendered="#{personnelBean.membre != null}">
<div class="field col-12 lg:col-6">
<ui:include src="/templates/components/forms/form-field-text.xhtml">
<ui:param name="id" value="nom" />
<ui:param name="label" value="Nom *" />
<ui:param name="value" value="#{personnelBean.membre.nom}" />
<ui:param name="required" value="true" />
</ui:include>
</div>
<div class="field col-12 lg:col-6">
<ui:include src="/templates/components/forms/form-field-text.xhtml">
<ui:param name="id" value="prenom" />
<ui:param name="label" value="Prénom *" />
<ui:param name="value" value="#{personnelBean.membre.prenom}" />
<ui:param name="required" value="true" />
</ui:include>
</div>
<div class="field col-12">
<ui:include src="/templates/components/forms/form-field-text.xhtml">
<ui:param name="id" value="email" />
<ui:param name="label" value="Email *" />
<ui:param name="value" value="#{personnelBean.membre.email}" />
<ui:param name="required" value="true" />
</ui:include>
</div>
<div class="field col-12 lg:col-6">
<ui:include src="/templates/components/forms/form-field-text.xhtml">
<ui:param name="id" value="telephone" />
<ui:param name="label" value="Téléphone" />
<ui:param name="value" value="#{personnelBean.membre.telephone}" />
</ui:include>
</div>
<div class="field col-12 lg:col-6">
<ui:include src="/templates/components/forms/form-field-calendar.xhtml">
<ui:param name="id" value="dateNaissance" />
<ui:param name="label" value="Date de naissance" />
<ui:param name="value" value="#{personnelBean.membre.dateNaissance}" />
</ui:include>
</div>
<div class="field col-12">
<ui:include src="/templates/components/forms/form-field-textarea.xhtml">
<ui:param name="id" value="adresse" />
<ui:param name="label" value="Adresse" />
<ui:param name="value" value="#{personnelBean.membre.adresse}" />
<ui:param name="rows" value="3" />
</ui:include>
</div>
<div class="field col-12 lg:col-6">
<ui:include src="/templates/components/forms/form-field-text.xhtml">
<ui:param name="id" value="profession" />
<ui:param name="label" value="Profession" />
<ui:param name="value" value="#{personnelBean.membre.profession}" />
</ui:include>
</div>
</div>
<div class="flex justify-content-end gap-2 mt-4">
<p:commandButton value="Annuler"
styleClass="p-button-outlined"
onclick="PF('modifierProfilDialog').hide();"
type="button" />
<p:commandButton value="Enregistrer"
styleClass="p-button-primary"
icon="pi pi-save"
action="#{personnelBean.mettreAJourProfil}"
update="@form :formProfil"
onclick="if(!args.validationFailed) PF('modifierProfilDialog').hide();" />
</div>
</div>
</h:form>
</p:dialog>
</ui:define>
</ui:composition>