{{-- resources/views/dashboard.blade.php --}} @php $title = 'Dashboard'; $pageTitle = 'Dashboard'; $pageSubtitle = 'Übersicht für das ausgewählte Fahrzeug'; $vehicle = app(\App\Support\VehicleContext::class)->current(); $vehicleStatus = (int) ($vehicle?->is_active ?? 0); // 0 ready, 1 not_ready, 2 service $statusLabel = match ($vehicleStatus) { 0 => 'Einsatzbereit', 1 => 'Nicht einsatzbereit', 2 => 'Werkstatt', default => 'Unbekannt', }; // Status-Farben (Tailwind-only, kein Custom CSS nötig) $statusPill = match ($vehicleStatus) { 0 => 'bg-emerald-50 text-emerald-700 ring-emerald-200', 1 => 'bg-rose-50 text-rose-700 ring-rose-200', 2 => 'bg-amber-50 text-amber-800 ring-amber-200', default => 'bg-gray-50 text-gray-700 ring-gray-200', }; $statusHero = match ($vehicleStatus) { 0 => 'from-emerald-50 via-white to-white', 1 => 'from-rose-50 via-white to-white', 2 => 'from-amber-50 via-white to-white', default => 'from-gray-50 via-white to-white', }; $statusDot = match ($vehicleStatus) { 0 => 'bg-emerald-500', 1 => 'bg-rose-500', 2 => 'bg-amber-500', default => 'bg-gray-400', }; @endphp
{{-- KPIs --}}
{{-- KPI Card --}}
Dokumente
{{ $stats['documents'] ?? '—' }}
@can('documents.view') Ansehen @else — @endcan
{{-- KPI Card --}}
Offene Erinnerungen
{{ $stats['open_reminders'] ?? '—' }}
@can('reminders.view') Details @else — @endcan
{{-- KPI Card --}}
Offene Schäden
{{ $stats['open_damages'] ?? '—' }}
@can('damages.view') Ansehen @else — @endcan
{{-- Mobile Quick Actions (top) --}}

Schnellaktionen

@can('documents.create') Dokument hochladen @else
Dokument hochladen
@endcan @can('damages.create') Schaden melden @else
Schaden melden
@endcan Fahrzeug wechseln
{{-- Left (Desktop: main content) --}}
{{-- Nächste Fristen --}}

Nächste Fristen

Demnächst fällige Erinnerungen für dieses Fahrzeug.

@can('reminders.view') Alle anzeigen @endcan
{{-- Mobile Cards --}}
@can('reminders.view') @forelse($dueReminders as $r) @php $due = $r->due_at; $isOverdue = $due && $due->isPast(); $days = $due ? now()->startOfDay()->diffInDays($due->startOfDay(), false) : null; $badge = 'Offen'; $badgeClass = 'bg-gray-50 text-gray-700 ring-gray-200'; if ($isOverdue) { $badge = 'Überfällig'; $badgeClass = 'bg-rose-50 text-rose-700 ring-rose-200'; } elseif (!is_null($days)) { $badge = 'In ' . max($days, 0) . ' Tagen'; $badgeClass = 'bg-amber-50 text-amber-800 ring-amber-200'; } @endphp
{{ $r->title }}
Fällig: {{ $due ? $due->format('d.m.Y') : '—' }}
{{ $badge }}
@empty
Keine offenen Erinnerungen.
@endforelse @else
Kein Zugriff.
@endcan
{{-- Desktop Table --}}
{{-- Letzte Aktivitäten --}}

Letzte Aktivitäten

Neuste Änderungen und Aktionen im System.

Historie
@forelse(($recentActivities ?? []) as $a)
{{ $a['title'] ?? 'Aktivität' }}
@if (!empty($a['subtitle']))
{{ $a['subtitle'] }}
@endif
@if (!empty($a['when'])) {{ $a['when'] }} @endif
@empty
Noch keine Aktivitäten
Sobald etwas passiert, erscheint es hier im Verlauf.
@endforelse
{{-- Right --}}