{{-- resources/views/reminders/index.blade.php --}} @php /** @var \Illuminate\Pagination\LengthAwarePaginator|\App\Models\Reminder[] $reminders */ $vehicle = app(\App\Support\VehicleContext::class)->current(); $title = ($vehicle?->call_sign ?? 'RTW') . ' – Erinnerungen'; $pageTitle = 'Erinnerungen'; $pageSubtitle = $vehicle ? trim( ($vehicle->call_sign ?? '') . ' • ' . ($vehicle->license_plate ?? '') . ' • Aufgaben & Fristen (unabhängig von Dokumenten)', ) : 'Aufgaben & Fristen (unabhängig von Dokumenten)'; $filter = $filter ?? request('filter', 'open'); // open|overdue|done|all $q = (string) request('q', ''); $priority = (string) request('priority', 'all'); // low|normal|high|all $tabBtn = fn(bool $active) => $active ? 'bg-brand/10 text-brand' : 'text-gray-700 hover:bg-gray-50'; $prio = [ 'low' => ['cls' => 'bg-gray-100 text-gray-700 ring-gray-200', 'label' => 'Niedrig'], 'normal' => ['cls' => 'bg-emerald-50 text-emerald-800 ring-emerald-200', 'label' => 'Normal'], 'high' => ['cls' => 'bg-red-50 text-red-700 ring-red-200', 'label' => 'Hoch'], ]; $status = [ 'open' => ['cls' => 'bg-brand/10 text-brand ring-brand/15', 'label' => 'Offen'], 'done' => ['cls' => 'bg-gray-100 text-gray-700 ring-gray-200', 'label' => 'Erledigt'], 'overdue' => ['cls' => 'bg-red-50 text-red-700 ring-red-200', 'label' => 'Überfällig'], ]; // Helper: Query merge ohne doppelte Keys $qs = fn(array $merge) => array_merge(request()->query(), $merge); @endphp
@if (session('status'))
{{ session('status') }}
@endif {{-- Toolbar --}}
{{-- Desktop Toolbar --}} {{-- Mobile: Compact header + filter button --}}
Filter
{{ $filter === 'open' ? 'Offen' : ($filter === 'done' ? 'Erledigt' : ($filter === 'overdue' ? 'Überfällig' : 'Alle')) }} @if ($priority !== 'all') • Priorität: {{ $prio[$priority]['label'] ?? $priority }} @endif @if ($q !== '') • Suche aktiv @endif
{{-- Actions --}}
Aktualisieren @can('create', \App\Models\Reminder::class) Erinnerung anlegen @else @endcan
{{-- Active filters hint --}}
@if ($q !== '') Suche: {{ $q }} @endif @if ($priority !== 'all') Priorität: {{ $prio[$priority]['label'] ?? $priority }} @endif @if ($q !== '' || $priority !== 'all') Filter zurücksetzen @endif
{{-- Mobile Filter Modal --}} {{-- List --}}

Liste

{{ $vehicle?->call_sign ?? 'RTW' }}
{{-- Mobile Cards --}}
@forelse($reminders as $r) @php $isOverdue = !$r->is_done && $r->due_at && $r->due_at->lt(now()->startOfDay()); $date = $r->due_at ? $r->due_at->format('d.m.Y') : $r->created_at?->format('d.m.Y') ?? '—'; $p = $r->priority ?? 'normal'; $pBadge = $prio[$p] ?? $prio['normal']; $stKey = $r->is_done ? 'done' : ($isOverdue ? 'overdue' : 'open'); $stBadge = $status[$stKey]; $note = $r->notes ?: '—'; @endphp
{{ $r->title }}
{{ $date }} • {{ $r->due_at ? 'Fälligkeit' : 'Erstellt' }}
{{ $note }}
{{ $pBadge['label'] }} {{ $stBadge['label'] }}
@can('update', $r) Bearbeiten @endcan @can('update', $r)
@csrf @method('PATCH')
@endcan
@empty
Keine Einträge.
@endforelse
{{-- Desktop Table --}}
{{ $reminders->links() }}