176 lines
9.8 KiB
HTML
176 lines
9.8 KiB
HTML
<!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:define name="title">Tableau de Bord - Lions User Manager</ui:define>
|
|
|
|
<ui:define name="content">
|
|
<h:form id="formDashboard">
|
|
<div class="grid">
|
|
<!-- En-tête -->
|
|
<div class="col-12">
|
|
<ui:include src="/templates/components/layout/page-header.xhtml">
|
|
<ui:param name="icon" value="pi pi-home text-blue-500" />
|
|
<ui:param name="title" value="Tableau de Bord" />
|
|
<ui:param name="description" value="Vue d'ensemble de la gestion des utilisateurs Keycloak" />
|
|
<ui:define name="actions">
|
|
<h:form id="formRefresh">
|
|
<p:commandButton
|
|
value="Rafraîchir"
|
|
icon="pi pi-refresh"
|
|
styleClass="p-button-secondary"
|
|
action="#{dashboardBean.refreshStatistics}"
|
|
update=":formDashboard" />
|
|
</h:form>
|
|
</ui:define>
|
|
</ui:include>
|
|
</div>
|
|
|
|
<!-- KPIs Principaux avec composant réutilisable -->
|
|
<div class="col-12">
|
|
<ui:include src="/templates/components/shared/dashboard/kpi-group.xhtml">
|
|
<ui:param name="title" value="Statistiques Principales" />
|
|
<ui:param name="columns" value="4" />
|
|
<ui:define name="kpi-content">
|
|
<!-- KPI 1: Utilisateurs Actifs -->
|
|
<ui:include src="/templates/components/shared/cards/kpi-card.xhtml">
|
|
<ui:param name="title" value="Utilisateurs Actifs" />
|
|
<ui:param name="value" value="#{dashboardBean.totalUsersDisplay}" />
|
|
<ui:param name="icon" value="pi-users" />
|
|
<ui:param name="iconColor" value="blue-600" />
|
|
<ui:param name="subtitle" value="Total utilisateurs" />
|
|
<ui:param name="clickable" value="true" />
|
|
<ui:param name="clickOutcome" value="/pages/user-manager/users/list" />
|
|
</ui:include>
|
|
|
|
<!-- KPI 2: Rôles Realm -->
|
|
<ui:include src="/templates/components/shared/cards/kpi-card.xhtml">
|
|
<ui:param name="title" value="Rôles Realm" />
|
|
<ui:param name="value" value="#{dashboardBean.totalRolesDisplay}" />
|
|
<ui:param name="icon" value="pi-shield" />
|
|
<ui:param name="iconColor" value="green-600" />
|
|
<ui:param name="subtitle" value="Rôles configurés" />
|
|
<ui:param name="clickable" value="true" />
|
|
<ui:param name="clickOutcome" value="/pages/user-manager/roles/list" />
|
|
</ui:include>
|
|
|
|
<!-- KPI 3: Actions Récentes -->
|
|
<ui:include src="/templates/components/shared/cards/kpi-card.xhtml">
|
|
<ui:param name="title" value="Actions Récentes" />
|
|
<ui:param name="value" value="#{dashboardBean.recentActionsDisplay}" />
|
|
<ui:param name="icon" value="pi-history" />
|
|
<ui:param name="iconColor" value="orange-600" />
|
|
<ui:param name="subtitle" value="Dernières 24h" />
|
|
<ui:param name="clickable" value="true" />
|
|
<ui:param name="clickOutcome" value="/pages/user-manager/audit/logs" />
|
|
</ui:include>
|
|
|
|
<!-- KPI 4: Rôles Client -->
|
|
<ui:include src="/templates/components/shared/cards/kpi-card.xhtml">
|
|
<ui:param name="title" value="Rôles Client" />
|
|
<ui:param name="value" value="-" />
|
|
<ui:param name="icon" value="pi-key" />
|
|
<ui:param name="iconColor" value="purple-600" />
|
|
<ui:param name="subtitle" value="Rôles clients configurés" />
|
|
<ui:param name="clickable" value="true" />
|
|
<ui:param name="clickOutcome" value="/pages/user-manager/roles/list" />
|
|
</ui:include>
|
|
</ui:define>
|
|
</ui:include>
|
|
</div>
|
|
|
|
<!-- Actions Rapides -->
|
|
<ui:include src="/templates/components/shared/dashboard/dashboard-section.xhtml">
|
|
<ui:param name="title" value="Actions Rapides" />
|
|
<ui:param name="icon" value="pi-bolt" />
|
|
<ui:param name="colSize" value="col-12 lg:col-6" />
|
|
<ui:define name="section-content">
|
|
<div class="grid">
|
|
<div class="col-12 md:col-6">
|
|
<h:form>
|
|
<p:commandButton
|
|
value="Nouvel Utilisateur"
|
|
icon="pi pi-user-plus"
|
|
styleClass="w-full p-button-success"
|
|
outcome="/pages/user-manager/users/create" />
|
|
</h:form>
|
|
</div>
|
|
<div class="col-12 md:col-6">
|
|
<h:form>
|
|
<p:commandButton
|
|
value="Liste des Utilisateurs"
|
|
icon="pi pi-users"
|
|
styleClass="w-full p-button-primary"
|
|
outcome="/pages/user-manager/users/list" />
|
|
</h:form>
|
|
</div>
|
|
<div class="col-12 md:col-6">
|
|
<h:form>
|
|
<p:commandButton
|
|
value="Gestion des Rôles"
|
|
icon="pi pi-shield"
|
|
styleClass="w-full p-button-info"
|
|
outcome="/pages/user-manager/roles/list" />
|
|
</h:form>
|
|
</div>
|
|
<div class="col-12 md:col-6">
|
|
<h:form>
|
|
<p:commandButton
|
|
value="Journal d'Audit"
|
|
icon="pi pi-history"
|
|
styleClass="w-full p-button-help"
|
|
outcome="/pages/user-manager/audit/logs" />
|
|
</h:form>
|
|
</div>
|
|
</div>
|
|
</ui:define>
|
|
</ui:include>
|
|
|
|
<!-- Informations Système -->
|
|
<ui:include src="/templates/components/shared/dashboard/dashboard-section.xhtml">
|
|
<ui:param name="title" value="Informations Système" />
|
|
<ui:param name="icon" value="pi-info-circle" />
|
|
<ui:param name="colSize" value="col-12 lg:col-6" />
|
|
<ui:define name="section-content">
|
|
<div class="flex flex-column gap-2">
|
|
<div class="flex align-items-center justify-content-between">
|
|
<span class="text-600">Version</span>
|
|
<span class="font-semibold">1.0.0</span>
|
|
</div>
|
|
<div class="flex align-items-center justify-content-between">
|
|
<span class="text-600">Realm Keycloak</span>
|
|
<span class="font-semibold">lions-user-manager</span>
|
|
</div>
|
|
<div class="flex align-items-center justify-content-between">
|
|
<span class="text-600">Statut</span>
|
|
<p:tag value="Opérationnel" severity="success" />
|
|
</div>
|
|
<div class="flex align-items-center justify-content-between">
|
|
<span class="text-600">Application</span>
|
|
<span class="font-semibold">Lions User Manager</span>
|
|
</div>
|
|
<div class="flex align-items-center justify-content-between">
|
|
<span class="text-600">Environnement</span>
|
|
<span class="font-semibold">Développement</span>
|
|
</div>
|
|
<div class="flex align-items-center justify-content-between">
|
|
<span class="text-600">Base de données</span>
|
|
<span class="font-semibold">Keycloak Admin API</span>
|
|
</div>
|
|
<div class="flex align-items-center justify-content-between">
|
|
<span class="text-600">Framework</span>
|
|
<span class="font-semibold">Quarkus, PrimeFaces Freya</span>
|
|
</div>
|
|
</div>
|
|
</ui:define>
|
|
</ui:include>
|
|
</div>
|
|
</h:form>
|
|
</ui:define>
|
|
|
|
</ui:composition>
|