📝 {{ $logs->total() }} logs
{{-- Filtres (table + utilisateur) --}}
@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
{{-- 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() }}