@extends('admin.layout') @section('title', 'Journaux d’activité') @section('content')

@yield('title')

📝 {{ $logs->total() }} logs
{{-- Filtres (table + utilisateur) --}}
@if ($type || $actorId) Réinitialiser @endif
@php // Formatte une valeur (tableau -> JSON lisible). $fmt = fn($v) => is_array($v) ? json_encode($v, JSON_UNESCAPED_UNICODE) : $v; // Champs booléens : affichés Oui/Non plutôt que 1/0. $boolFields = ['actif', 'chantier', 'logiciel', 'vitrine', 'negoce', 'maj_plan', 'cintrage', 'maconnerie']; $isBool = fn($key) => in_array($key, $boolFields, true) || \Illuminate\Support\Str::startsWith($key, 'B_'); // Affiche la valeur d'un champ (Oui/Non si booléen, sinon brut). $showVal = function ($key, $v) use ($isBool, $fmt) { if ($isBool($key)) { return in_array($v, [1, '1', true, 'true'], true) ? 'Oui' : 'Non'; } return $fmt($v); }; @endphp @forelse ($logs as $log) @php // Nom lisible de la ressource concernée (création/suppression/restauration/modif). $resourceName = $log->filtered_new_values['nom'] ?? $log->filtered_old_values['nom'] ?? null; // Ce qu'on affiche : la donnée supprimée pour une suppression, sinon la nouvelle. $display = $log->action === 'deleted' ? $log->filtered_old_values : $log->filtered_new_values; @endphp
{{-- Header log --}}
{{ mb_strtoupper($log->action_label, 'UTF-8') }} {{ class_basename($log->loggable_type) }} #{{ $log->loggable_id }}@if ($resourceName) — {{ $resourceName }} @endif
{{-- 👤 Acteur (user qui a fait l’action) --}} {{-- 👤 Acteur (user qui a fait l’action) --}} @if ($log->user) par @if (Route::has('users.show')) {{ trim(($log->user->prenom ?? '') . ' ' . ($log->user->nom ?? '')) ?: $log->user->name ?? ($log->user->email ?? 'Utilisateur inconnu') }} @else {{ trim(($log->user->prenom ?? '') . ' ' . ($log->user->nom ?? '')) ?: $log->user->name ?? ($log->user->email ?? 'Utilisateur inconnu') }} @endif @else par Système @endif {{ $log->created_at->format('d/m/Y H:i') }}
{{-- Contenu du log --}} @if (!empty($display)) @foreach ($display as $key => $value) @php $oldValue = $log->filtered_old_values[$key] ?? null; @endphp {{-- Si "updated" et que la valeur n'a pas réellement changé, on saute --}} @if ( $log->action === 'updated' && (!array_key_exists($key, $log->filtered_old_values) || $oldValue == $value)) @continue @endif {{-- Infos API (client / devis / interventions) : rendu lisible --}} @if ($key === 'infos_api' && is_array($value))
Infos API
@include('admin.membres.users._log_infos_api', ['infos' => $value])
@continue @endif
{{ ucfirst(str_replace('_', ' ', $key)) }}
@if ($log->action === 'updated' && array_key_exists($key, $log->filtered_old_values)) {{ $showVal($key, $oldValue) }} {{ $showVal($key, $value) }} @elseif ($log->action === 'deleted') {{ $showVal($key, $value) }} @else {{ $showVal($key, $value) }} @endif
@endforeach @elseif ($log->action === 'deleted')
Élément supprimé.
@endif
@empty
Aucun log trouvé.
@endforelse
{{ $logs->links() }}
@endsection