{{-- resources/views/history/index.blade.php --}} @php $vehicle = app(\App\Support\VehicleContext::class)->current(); $title = ($vehicle?->call_sign ?? 'RTW') . ' – Historie'; $pageTitle = 'Historie'; $pageSubtitle = $vehicle ? trim( ($vehicle->call_sign ?? '') . ' • ' . ($vehicle->license_plate ?? '') . ' • Änderungsprotokoll (Audit-Log)', ) : 'Änderungsprotokoll (Audit-Log)'; $areaBadge = [ 'Dokumente' => 'bg-brand/10 text-brand ring-brand/15', 'Erinnerungen' => 'bg-yellow-50 text-yellow-800 ring-yellow-200', 'Schäden' => 'bg-red-50 text-red-700 ring-red-200', 'Benutzer' => 'bg-gray-100 text-gray-700 ring-gray-200', ]; $eventBadge = [ 'created' => 'bg-emerald-50 text-emerald-700 ring-emerald-200', 'updated' => 'bg-amber-50 text-amber-700 ring-amber-200', 'deleted' => 'bg-red-50 text-red-700 ring-red-200', ]; $guessArea = function (?string $type) { $base = class_basename((string) $type); return match ($base) { 'Document', 'DocumentCategory' => 'Dokumente', 'Reminder' => 'Erinnerungen', 'Damage', 'DamageMeasure' => 'Schäden', 'User', 'UserInvitation' => 'Benutzer', default => $base ?: 'Sonstiges', }; }; @endphp
{{-- Desktop Toolbar --}} {{-- Mobile Toolbar --}}
Filter
{{ $filters['days'] === 'all' ? 'Alle' : ($filters['days'] ?? '7') . ' Tage' }} • {{ $filters['area'] === 'all' ? 'Alle Bereiche' : ucfirst((string) $filters['area']) }} @if (!empty($filters['user'])) • User gefiltert @endif @if (!empty($filters['q'])) • Suche aktiv @endif
{{-- Active filters pills (mobile) --}}
@if (!empty($filters['q'])) Suche: {{ $filters['q'] }} @endif @if (($filters['area'] ?? 'all') !== 'all') Bereich: {{ $filters['area'] }} @endif @if (($filters['days'] ?? '7') !== '7') Zeitraum: {{ $filters['days'] }} @endif Reset
{{-- Mobile Filter Modal --}} {{-- Audit Log --}}

Audit-Log

{{ $vehicle?->call_sign ?? '—' }}
{{-- Mobile Cards --}}
@forelse($logs as $log) @php $area = $guessArea($log->auditable_type); $titleText = $log->title ?? trim(($log->event ?? '') . ' ' . class_basename((string) $log->auditable_type)); $userName = $log->user?->name ?? 'System'; $changes = is_array($log->meta) && !empty($log->meta['changes']) && is_array($log->meta['changes']) ? implode(', ', array_keys($log->meta['changes'])) : null; $detailText = $changes ? 'Änderungen: ' . $changes : null; $eventClass = $eventBadge[$log->event] ?? 'bg-gray-100 text-gray-700 ring-gray-200'; $areaClass = $areaBadge[$area] ?? 'bg-gray-100 text-gray-700 ring-gray-200'; $payload = [ 'time' => $log->created_at?->format('d.m.Y H:i'), 'area' => $area, 'event' => strtoupper((string) $log->event), 'action' => $titleText, 'user' => $userName, 'detail' => $detailText ?: '—', 'meta' => $log->meta, ]; @endphp
{{ $titleText }}
{{ $log->created_at?->format('d.m.Y H:i') }} • {{ $userName }}
{{ strtoupper((string) $log->event) }} {{ $area }}
{{ $detailText ?? '—' }}
@empty
Keine Einträge vorhanden.
@endforelse
{{-- Desktop Table --}}
{{ $logs->links() }}
{{-- Details Modal (mobile fullscreen, desktop centered) --}}