Ajoute technicien, compteur d'interactions et alerte "en attente" aux tickets GLPI

- Affiche le technicien responsable (avec repli sur le technicien assigné)
  sur chaque ticket du tableau de bord.
- Compte les interactions technicien/demandeur en combinant suivis ET
  tâches GLPI — les techniciens répondent parfois via une tâche plutôt
  qu'un suivi, un premier passage qui ne comptait que les suivis sous-
  estimait donc les échanges et déclenchait de fausses alertes.
- Signale visuellement (bordure + fond ambre, pictogramme ⚠️) les tickets
  dont la dernière interaction vient du demandeur, en comparant la date du
  dernier suivi et de la dernière tâche pour déterminer qui a parlé en
  dernier.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
mrKamoo
2026-08-19 17:58:11 +02:00
co-authored by Claude Sonnet 5
parent 2bf169ed88
commit 2f576ca286
2 changed files with 187 additions and 17 deletions
@@ -373,10 +373,13 @@ new class extends Component
@else
<ul class="divide-y divide-slate-100">
@foreach ($glpiTickets as $ticket)
<li class="py-2.5 text-sm">
<li class="py-2.5 text-sm {{ $ticket['awaiting_technician'] ? '-mx-4 border-l-4 border-amber-400 bg-amber-50 px-4' : '' }}">
<div class="flex items-start justify-between gap-4">
<a href="{{ $ticket['url'] }}" target="_blank" rel="noopener"
class="min-w-0 font-medium text-slate-900 hover:underline">
@if ($ticket['awaiting_technician'])
<span aria-hidden="true" title="En attente d'une réponse du technicien">⚠️</span>
@endif
#{{ $ticket['id'] }} — {{ $ticket['title'] }}
</a>
<div class="flex shrink-0 items-center gap-1.5">
@@ -403,11 +406,22 @@ new class extends Component
<p class="mt-1 text-xs text-slate-600">{{ $ticket['excerpt'] }}</p>
@endif
<p class="mt-1 text-xs text-slate-400">
{{ \Illuminate\Support\Carbon::parse($ticket['date_mod'])->diffForHumans() }}
<p class="mt-1 flex flex-wrap items-center gap-x-1.5 gap-y-1 text-xs text-slate-400">
<span>{{ \Illuminate\Support\Carbon::parse($ticket['date_mod'])->diffForHumans() }}</span>
@if ($ticket['category'])
&middot; {{ $ticket['category'] }}
<span aria-hidden="true">&middot;</span>
<span>{{ $ticket['category'] }}</span>
@endif
@if ($ticket['technician'])
<span aria-hidden="true">&middot;</span>
<span class="inline-flex items-center gap-1" title="Technicien responsable">
<span aria-hidden="true">👤</span> {{ $ticket['technician'] }}
</span>
@endif
<span aria-hidden="true">&middot;</span>
<span class="inline-flex items-center gap-1" title="Échanges entre le technicien et le demandeur (suivis + tâches)">
<span aria-hidden="true">💬</span> {{ $ticket['interactions_count'] }}
</span>
</p>
</li>
@endforeach