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

1.3 KiB

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