24 lines
1.3 KiB
Markdown
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
|