Files
AggloSign/backend/resources/views/admin/assignments/index.blade.php
T
2026-10-02 13:06:14 +02:00

93 lines
5.2 KiB
PHP

@extends('layouts.app')
@section('title', 'Affectations — Signatures')
@section('content')
<header class="page-head">
<div>
<h1>Affectations</h1>
<p class="lead">
Un agent membre de plusieurs groupes reçoit le template de l'affectation dont la <strong>priorité est la plus haute</strong>
(à égalité : la plus ancienne). Sans groupe affecté, il reçoit le template par défaut.
</p>
</div>
</header>
<form method="post" action="{{ route('admin.assignments.store') }}" class="card">
@csrf
<h2>Ajouter une affectation</h2>
<div class="field-row" style="align-items:flex-end">
<div style="flex:2">
<label for="directory_group_id" style="margin-top:0">Groupe AD</label>
<select id="directory_group_id" name="directory_group_id" required>
<option value="">Choisir un groupe</option>
@if ($groups->isEmpty())
<option value="" disabled>Aucun groupe synchronisé : lancez une synchronisation complète</option>
@endif
@foreach ($groups as $g)
<option value="{{ $g->id }}" @selected(old('directory_group_id') == $g->id)>{{ $g->display_name }} ({{ $g->members_count }})</option>
@endforeach
</select>
</div>
<div style="flex:2">
<label for="template_id" style="margin-top:0">Template</label>
<select id="template_id" name="template_id" required>
<option value="">Choisir un template</option>
@foreach ($templates as $t)
<option value="{{ $t->id }}" @selected(old('template_id') == $t->id)>{{ $t->name }}{{ $t->html_full ? '' : ' (non publié)' }}</option>
@endforeach
</select>
</div>
<div style="flex:0 0 96px;min-width:96px">
<label for="priority" style="margin-top:0">Priorité</label>
<input type="number" id="priority" name="priority" min="0" max="1000" value="{{ old('priority', 10) }}" required>
</div>
<div style="flex:0 0 auto;min-width:0">
<button class="btn" type="submit"><x-icon name="plus" />Ajouter</button>
</div>
</div>
</form>
<div class="card card--flush">
<div class="card-head"><h2>Affectations, par ordre de priorité</h2></div>
<div class="table-wrap">
<table class="list">
<thead><tr><th>Priorité</th><th>Groupe AD</th><th>Membres</th><th>Template</th><th></th></tr></thead>
<tbody>
@forelse ($assignments as $a)
<tr>
<td>
<form class="row" method="post" action="{{ route('admin.assignments.update', $a) }}" style="flex-wrap:nowrap">
@csrf @method('PUT')
<input class="small" type="number" name="priority" min="0" max="1000" value="{{ $a->priority }}" aria-label="Priorité de {{ $a->group?->display_name }}">
<button class="btn secondary small" type="submit" title="Enregistrer la priorité" aria-label="Enregistrer la priorité"><x-icon name="check" :size="15" /></button>
</form>
</td>
<td>{{ $a->group?->display_name }}</td>
<td class="num">{{ $a->group?->members_count }}</td>
<td>
<a class="cell-title" href="{{ route('admin.templates.edit', $a->template_id) }}">{{ $a->template?->name }}</a>
@unless ($a->template?->html_full) <span class="badge warn">non publié : ignoré</span> @endunless
</td>
<td class="cell-actions">
<form class="inline" method="post" action="{{ route('admin.assignments.destroy', $a) }}"
data-confirm="Supprimer cette affectation ? Les agents du groupe recevront le template suivant dans l'ordre de priorité, ou le template par défaut."
data-confirm-label="Supprimer" data-confirm-danger>
@csrf @method('DELETE')
<button class="btn danger small" type="submit"><x-icon name="trash-2" :size="15" />Supprimer</button>
</form>
</td>
</tr>
@empty
<tr><td colspan="5">
<div class="empty">
<x-icon name="users" :size="32" />
<p><strong>Aucune affectation</strong>Tous les agents reçoivent le template par défaut.</p>
</div>
</td></tr>
@endforelse
</tbody>
</table>
</div>
<div class="card-foot muted">Vérifiez le résultat agent par agent dans l'écran <a href="{{ route('admin.agents.index') }}">Agents</a>.</div>
</div>
@endsection