@extends('admin.layout') @section('title', 'Gestion des employés') @section('content')

@yield('title')

{{-- Ajout et modification dans une fenetre (js/modale-saisie.js), la meme que sur la fiche : on reste sur la liste, la recherche en cours ne bouge pas. --}} @can('users.create') @endcan

{{-- Les zones (data-zone) : ce que js/sur-place.js remplace apres un geste, sans recharger la page — messages et lignes. La recherche en cours et le defilement ne bougent pas. --}}
@if (session('success'))
{{ session('success') }}
@endif @if (session('error'))
{{ session('error') }}
@endif
@foreach ($users as $user) @php // On ne peut gérer un administrateur que s'il s'agit de soi-même $canManage = auth()->user()?->canManage($user) ?? false; $trashed = $user->trashed(); @endphp {{-- Email et téléphone sur une ligne (liste compacte), chacun cliquable ; le tout dans l'infobulle quand ça se coupe. --}} {{-- Le role se change ici, a la volee, pour les administrateurs : sans rechargement (users-role.js), le formulaire ne sert que de repli. Pas sur son propre compte, ni sur un compte qu'on ne gere pas, ni sur un supprime. --}} {{-- Droit de se connecter (users.actif). Un membre supprime n'a de toute facon pas acces : on ne dit rien de plus. --}} {{-- Les administrateurs l'ouvrent ou le ferment ici, a la volee, comme le role — sauf sur leur propre compte. --}} @endforeach
# Nom Coordonnées Poste Rôle Accès Actions
{{ $user->id }} {{-- Devant le nom : en fin de cellule, la coupure la masquait. --}} @if ($trashed) Supprimé @endif {{ $user->nom }} {{ $user->prenom }} {{ $user->email }} @if ($user->tel) · {{ $user->tel }} @endif {{ mb_strtoupper($user->poste) }} @if ($roles->isNotEmpty() && $canManage && !$trashed && !$user->is(auth()->user()))
@csrf
@else @foreach ($user->roles as $role) {{ $role->name }} @endforeach @endif
@unless ($trashed) @if ($roles->isNotEmpty() && $canManage && !$user->is(auth()->user()))
@csrf
actif)>
@else {{ $user->actif ? 'Ouvert' : 'Fermé' }} @endif @endunless
{{-- Voir : la fiche reste consultable une fois le membre supprime --}} @can('users.view') @endcan @if ($trashed) {{-- Restaurer --}} @can('users.restore')
nom . ' ' . $user->prenom)), $user->poste ? mb_strtoupper($user->poste) : null, $user->email]))));"> @csrf @method('PUT')
@endcan @else {{-- Modifier --}} @can('users.edit') @if ($canManage) @endif @endcan {{-- Envoyer identifiants --}} @can('users.sendCredentials') @if ($canManage)
nom . ' ' . $user->prenom)), $user->poste ? mb_strtoupper($user->poste) : null, $user->email]))));"> @csrf {{-- Sans adresse valable, rien ne partirait : le bouton le dit. --}} @php $sansEmail = !filter_var((string) $user->email, FILTER_VALIDATE_EMAIL); @endphp
@endif @endcan {{-- Supprimer --}} @can('users.delete') @if ($canManage)
@csrf @method('DELETE')
@endif @endcan @endif
@include('admin.membres.users._modale')
{{-- search.js repose la recherche en cours sur les lignes revenues apres un geste fait sur place (js/sur-place.js). --}} @endsection