Refonte design V1
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user