From 192933c9b619fe3d461748f85bfc2d37916c78b9 Mon Sep 17 00:00:00 2001 From: troogs Date: Wed, 12 Aug 2026 13:38:08 +0200 Subject: [PATCH] fix: disallow selecting dates in the past or today --- appsettings.json | 13 +++++++++---- datetime.js | 5 +++-- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/appsettings.json b/appsettings.json index 3483070..4dea360 100644 --- a/appsettings.json +++ b/appsettings.json @@ -1,17 +1,22 @@ { "activities": [ { "name": "Essen bei Namaste", "icon": "πŸ›", "type": "short" }, - { "name": "Kinofilm", "icon": "🎬", "type": "long" }, + { "name": "Ins Kino", "icon": "🎬", "type": "short" }, { "name": "Film zu Hause + Essen bestellen", "icon": "πŸ›‹οΈ", "type": "long" }, { "name": "Spaziergang im Wald", "icon": "🌲", "type": "short" }, { "name": "Museum fΓΌr Gegenwartskunst", "icon": "πŸ–ΌοΈ", "type": "long" }, { "name": "Picknick auf der Wiese", "icon": "🧺", "type": "short" }, - { "name": "Massage zu Hause", "icon": "πŸ’†", "type": "short" } + { "name": "Massage zu Hause", "icon": "πŸ’†", "type": "short" }, + { "name": "Ausgedehnte Wanderung", "icon": "πŸ₯Ύ", "type": "long" } ], "availableDates": [ - { "date": "2026-08-15", "type": "long" }, - { "date": "2026-08-16", "type": "short" }, + { "date": "2026-08-11", "type": "short" }, + { "date": "2026-08-15", "type": "short" }, + { "date": "2026-08-18", "type": "short" }, + { "date": "2026-08-20", "type": "short" }, + { "date": "2026-08-22", "type": "long" }, { "date": "2026-08-23", "type": "long" }, + { "date": "2026-08-30", "type": "short" }, { "date": "2026-09-05", "type": "long" }, { "date": "2026-09-06", "type": "short" } diff --git a/datetime.js b/datetime.js index 27cb3f4..3f61454 100644 --- a/datetime.js +++ b/datetime.js @@ -50,7 +50,7 @@ const upcoming = Array.from(availableDatesMap.keys()) .map((dateKey) => new Date(`${dateKey}T00:00:00`)) - .filter((date) => date >= today) + .filter((date) => date > today) .sort((a, b) => a - b); if (upcoming.length > 0) { @@ -88,7 +88,8 @@ button.textContent = String(day); const dateInfo = availableDatesMap.get(key); - const isAvailable = Boolean(dateInfo); + const isPastOrToday = cellDate <= today; + const isAvailable = Boolean(dateInfo) && !isPastOrToday; const isToday = cellDate.getTime() === today.getTime(); const isSelected = selectedDate && cellDate.getTime() === selectedDate.getTime();