Étape 10 : interface admin (tableau de bord + gestion utilisateurs)
- DashboardController : stats globales (sources par statut, relevés, utilisateurs, activité mensuelle 6 mois) - UserController : liste filtrée (nom/email/rôle) + édition de rôle avec protections (auto-demotion, dernier admin) - Vue admin/dashboard : compteurs par statut cliquables, graphique barres mensuel, sources à valider, relevés récents - Vue admin/utilisateurs : liste paginée avec sections et sources assignées, page d'édition avec radio-cards - Dashboard principal enrichi : bloc accès admin, mes sources assignées triées par urgence, mes derniers relevés - Navigation : ajout Tableau de bord admin et Utilisateurs dans le menu Administration Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -40,7 +40,15 @@
|
||||
</button>
|
||||
|
||||
<div x-show="adminOpen" @click.outside="adminOpen = false" x-cloak
|
||||
class="absolute top-14 mt-1 w-48 bg-white rounded-md shadow-lg border border-gray-100 z-50">
|
||||
class="absolute top-14 mt-1 w-56 bg-white rounded-md shadow-lg border border-gray-100 z-50">
|
||||
@if(auth()->user()->isAdmin())
|
||||
<a href="{{ route('admin.dashboard') }}"
|
||||
class="block px-4 py-2 text-sm font-medium text-indigo-700 hover:bg-indigo-50 border-b border-gray-100">
|
||||
Tableau de bord admin
|
||||
</a>
|
||||
<a href="{{ route('admin.utilisateurs.index') }}"
|
||||
class="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-50">Utilisateurs</a>
|
||||
@endif
|
||||
<a href="{{ route('admin.sections.index') }}"
|
||||
class="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-50">Sections</a>
|
||||
@if(auth()->user()->isAdmin())
|
||||
@@ -135,6 +143,14 @@
|
||||
Recherche
|
||||
</x-responsive-nav-link>
|
||||
@if(auth()->user()->isSectionManager())
|
||||
@if(auth()->user()->isAdmin())
|
||||
<x-responsive-nav-link :href="route('admin.dashboard')" :active="request()->routeIs('admin.dashboard')">
|
||||
Tableau de bord admin
|
||||
</x-responsive-nav-link>
|
||||
<x-responsive-nav-link :href="route('admin.utilisateurs.index')" :active="request()->routeIs('admin.utilisateurs.*')">
|
||||
Utilisateurs
|
||||
</x-responsive-nav-link>
|
||||
@endif
|
||||
<x-responsive-nav-link :href="route('admin.sections.index')" :active="request()->routeIs('admin.sections.*')">
|
||||
Sections
|
||||
</x-responsive-nav-link>
|
||||
@@ -145,6 +161,9 @@
|
||||
<x-responsive-nav-link :href="route('admin.source-types.index')" :active="request()->routeIs('admin.source-types.*')">
|
||||
Types de sources
|
||||
</x-responsive-nav-link>
|
||||
<x-responsive-nav-link :href="route('admin.lieu-types.index')" :active="request()->routeIs('admin.lieu-types.*')">
|
||||
Types de lieux
|
||||
</x-responsive-nav-link>
|
||||
@endif
|
||||
@endif
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user