diff --git a/src/controllers/dashboard.php b/src/controllers/dashboard.php index fea78e0..c259c2b 100644 --- a/src/controllers/dashboard.php +++ b/src/controllers/dashboard.php @@ -101,18 +101,36 @@ // Load HaveToPay widget data require_once __DIR__.'/widgets/havetopay_widget.php'; -// Get upcoming events for calendar short -$stmt = $pdo->prepare(" - SELECT e.*, u.username AS creator_name - FROM events e - LEFT JOIN users u ON u.id = e.created_by - WHERE (e.assigned_to = ? OR e.created_by = ?) - AND e.event_date >= CURDATE() - ORDER BY e.event_date ASC - LIMIT 5 -"); -$stmt->execute([$userId, $userId]); -$upcomingEvents = $stmt->fetchAll(PDO::FETCH_ASSOC); +// Get upcoming events for calendar widget (today onwards) +$today = new DateTimeImmutable('today'); +$stmt = $pdo->prepare( + "SELECT e.*, u.username AS creator_name + FROM events e + LEFT JOIN users u ON u.id = e.created_by + WHERE (e.assigned_to = ? OR e.created_by = ?) + AND e.event_date >= ? + ORDER BY e.event_date ASC, IFNULL(e.start_time, '') ASC + LIMIT 10" +); +$stmt->execute([ + $userId, + $userId, + $today->format('Y-m-d') +]); +$upcomingEvents = $stmt->fetchAll(PDO::FETCH_ASSOC); + +// Group events by date for easier rendering +$eventsByDate = []; +foreach ($upcomingEvents as $event) { + $date = $event['event_date']; + if (!isset($eventsByDate[$date])) { + $eventsByDate[$date] = []; + } + $eventsByDate[$date][] = $event; +} + +// Today's events for header stats +$todayEvents = $eventsByDate[$today->format('Y-m-d')] ?? []; // Get recent documents for documents short $stmt = $pdo->prepare(" diff --git a/templates/dashboard.php b/templates/dashboard.php index bd46bc3..e90e2e2 100644 --- a/templates/dashboard.php +++ b/templates/dashboard.php @@ -911,28 +911,37 @@
-

Kalender

+

+ +

-
+
heute
- +
-
+
- -
-
-

- + + + + +
+
- -

- -
- + +
+
+ + + + + + + +
@@ -942,7 +951,7 @@
- +