Event-Liste: Termine nach Monaten gruppiert mit Überschriften

Termine werden jetzt unter Monats-Headern (z.B. "März 2026", "April 2026")
gruppiert dargestellt. Die Event-Karten bleiben unverändert, werden aber
innerhalb der Monatsblöcke organisiert. Monatsnamen sind lokalisiert.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Rhino
2026-03-03 10:03:11 +01:00
parent 83271a1e92
commit 2f30bcc87d

View File

@@ -37,19 +37,29 @@
</div>
</form>
{{-- Event-Liste --}}
{{-- Event-Liste nach Monaten gruppiert --}}
@if ($events->isEmpty())
<div class="bg-white rounded-lg shadow p-6 text-center text-gray-500">
{{ __('events.no_events') }}
</div>
@else
<div class="space-y-3">
@php $currentMonth = null; @endphp
@foreach ($events as $event)
@php
$eventMonth = $event->start_at->translatedFormat('F Y');
$minStatus = $event->minimumsStatus();
$bgClass = match($minStatus) { true => 'bg-green-100', false => 'bg-red-100', default => 'bg-white' };
@endphp
<a href="{{ route('events.show', $event) }}" class="block {{ $bgClass }} rounded-lg shadow p-4 hover:shadow-md transition-shadow">
{{-- Monats-Header --}}
@if ($eventMonth !== $currentMonth)
@php $currentMonth = $eventMonth; @endphp
<div class="{{ !$loop->first ? 'mt-6' : '' }} mb-3">
<h2 class="text-lg font-bold text-gray-800 border-b-2 border-gray-200 pb-1">{{ $eventMonth }}</h2>
</div>
@endif
<a href="{{ route('events.show', $event) }}" class="block {{ $bgClass }} rounded-lg shadow p-4 mb-3 hover:shadow-md transition-shadow">
<div class="flex flex-col sm:flex-row sm:items-center gap-3">
<div class="flex-1 min-w-0">
<div class="flex items-center gap-2 mb-1 flex-wrap">
@@ -80,7 +90,6 @@
</div>
</a>
@endforeach
</div>
<div class="mt-6">
{{ $events->links() }}