Files
carei.pagedev.pl/.paul/phases/09-past-date-validation/09-02-PLAN.md
2026-04-10 00:09:09 +02:00

24 lines
1.3 KiB
Markdown

# PLAN 09-02: Fix — walidacja godziny wstecznej w bieżącym dniu
## Problem
Atrybut `min` na `datetime-local` nie jest konsekwentnie wymuszany przez przeglądarki dla części godzinowej. Użytkownik może wybrać dzisiejszą datę z godziną wcześniejszą niż teraz. Ponadto `enforceDateMin()` jest wywołane raz — `now` się starzeje.
## Rozwiązanie
1. Przenieść `enforceDateMin()` poza `if (!dataLoaded)` — odświeżać `min` przy każdym otwarciu modala
2. Dodać event listener `change` na inputach dat, który sprawdza czy wartość < now i jeśli tak — czyści pole + pokazuje komunikat
3. Analogicznie w search form — odświeżanie min przy każdym `initSearchForm` run
## Taski
### Task 1: Odświeżanie min przy każdym otwarciu modala + walidacja on change
**Plik:** `assets/js/carei-reservation.js`
**Akcja:**
- Przenieść `enforceDateMin()` za blok `if (!dataLoaded)`
- W `enforceDateMin()` dodać listener `change` na dateFrom i dateTo sprawdzający `value < getNowLocal()` → markFieldError + clear value
**Done:** Nie da się ustawić godziny wstecznej — pole reaguje natychmiast
### Task 2: Analogiczna walidacja on change w search form
**Plik:** `assets/js/carei-reservation.js`
**Akcja:** Dodać listener change na searchDateFrom/searchDateTo sprawdzający past time
**Done:** Search form również blokuje godziny wsteczne