Refonte design V1

This commit is contained in:
mrKamoo
2026-10-02 13:06:14 +02:00
parent 429dd9de5e
commit 83e1ce00a9
20 changed files with 1403 additions and 531 deletions
@@ -1,40 +1,74 @@
@extends('layouts.app')
@section('title', 'Agents — Signatures CABM')
@section('title', 'Agents — Signatures')
@section('content')
<h1>Agents</h1>
@php
$initials = fn (?string $name) => mb_strtoupper(collect(preg_split('/[\s\-]+/u', trim((string) $name)))->filter()->take(2)->map(fn ($w) => mb_substr($w, 0, 1))->join(''));
@endphp
<header class="page-head">
<div>
<h1>Agents</h1>
<p class="lead">Qui reçoit quoi : le template appliqué à chaque agent selon ses groupes. Ouvrez un agent pour voir sa signature.</p>
</div>
</header>
<form method="get" class="row" style="margin-bottom:16px">
<input type="search" name="q" value="{{ $q }}" placeholder="Nom, adresse ou service" style="max-width:360px" aria-label="Rechercher un agent">
<button class="btn" type="submit">Rechercher</button>
<span class="muted">{{ $agents->total() }} agent(s)</span>
<div class="search">
<x-icon name="search" :size="16" />
<input type="search" name="q" value="{{ $q }}" placeholder="Nom, adresse ou service" aria-label="Rechercher un agent">
</div>
<button class="btn secondary" type="submit">Rechercher</button>
<span class="muted">{{ $agents->total() }} agent{{ $agents->total() > 1 ? 's' : '' }}</span>
</form>
<div class="card">
<table class="list">
<thead><tr><th>Agent</th><th>Service</th><th>Groupes signature_*</th><th>Template appliqué</th></tr></thead>
<tbody>
@forelse ($agents as $a)
<tr>
<td><a href="{{ route('admin.agents.show', $a) }}">{{ $a->display_name }}</a><div class="muted">{{ $a->mail }}</div></td>
<td>{{ $a->department }}</td>
<td class="muted">{{ $a->groups->pluck('display_name')->join(', ') ?: '—' }}</td>
<td>{{ $resolved[$a->id] ?? '— aucun —' }}</td>
</tr>
@empty
<tr><td colspan="4" class="muted">Aucun agent trouvé.</td></tr>
@endforelse
</tbody>
</table>
<div class="card card--flush">
<div class="table-wrap">
<table class="list">
<thead><tr><th>Agent</th><th>Service</th><th>Groupes signature_*</th><th>Template appliqué</th></tr></thead>
<tbody>
@forelse ($agents as $a)
<tr>
<td>
<div class="person">
<span class="avatar" aria-hidden="true">{{ $initials($a->display_name) }}</span>
<div>
<a class="cell-title" href="{{ route('admin.agents.show', $a) }}">{{ $a->display_name }}</a>
<div class="muted">{{ $a->mail }}</div>
</div>
</div>
</td>
<td>{{ $a->department }}</td>
<td class="muted">{{ $a->groups->pluck('display_name')->join(', ') ?: '—' }}</td>
<td>
@if ($resolved[$a->id] ?? null)
{{ $resolved[$a->id] }}
@else
<span class="badge warn">aucun</span>
@endif
</td>
</tr>
@empty
<tr><td colspan="4">
<div class="empty">
<x-icon name="search" :size="32" />
<p><strong>Aucun agent trouvé</strong>{{ $q !== '' ? 'Essayez un autre nom, une adresse ou un service.' : 'Lancez une synchronisation de l\'annuaire depuis le tableau de bord.' }}</p>
</div>
</td></tr>
@endforelse
</tbody>
</table>
</div>
@if ($agents->hasPages())
<nav class="row" style="margin-top:12px" aria-label="Pagination">
<nav class="card-foot pager" aria-label="Pagination">
@if ($agents->onFirstPage())
<span class="muted">← Précédent</span>
<span class="btn secondary small" aria-disabled="true"><x-icon name="chevron-left" :size="15" />Précédent</span>
@else
<a href="{{ $agents->previousPageUrl() }}" rel="prev">← Précédent</a>
<a class="btn secondary small" href="{{ $agents->previousPageUrl() }}" rel="prev"><x-icon name="chevron-left" :size="15" />Précédent</a>
@endif
<span class="muted">Page {{ $agents->currentPage() }} / {{ $agents->lastPage() }}</span>
<span class="muted">Page {{ $agents->currentPage() }} sur {{ $agents->lastPage() }}</span>
@if ($agents->hasMorePages())
<a href="{{ $agents->nextPageUrl() }}" rel="next">Suivant →</a>
<a class="btn secondary small" href="{{ $agents->nextPageUrl() }}" rel="next">Suivant<x-icon name="chevron-right" :size="15" /></a>
@else
<span class="muted">Suivant →</span>
<span class="btn secondary small" aria-disabled="true">Suivant<x-icon name="chevron-right" :size="15" /></span>
@endif
</nav>
@endif