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

1.9 KiB

PLAN 09-01: Blokada dat i godzin wstecznych

Cel

Uniemożliwić użytkownikowi wybranie daty/godziny z przeszłości w formularzach rezerwacji (modal + hero search form). Wyświetlić komunikat błędu jeśli wybrana data/godzina już minęła.

Kontekst

  • Inputy datetime-local: #carei-date-from, #carei-date-to (modal), #carei-search-date-from, #carei-search-date-to (hero)
  • Widget PHP: class-elementor-widget.php linie 86, 93
  • JS: carei-reservation.js — walidacja w validateForm() (linia ~607), eventy w initDynamicLoading() (linia ~1073), search form initSearchForm() (linia ~1108)

Taski

Task 1: Ustawienie atrybutu min na inputach datetime-local

Plik: assets/js/carei-reservation.js Akcja: Dodać funkcję enforceDateMin() która:

  1. Ustawia min na bieżący datetime (format YYYY-MM-DDTHH:MM) na inputach dateFrom i searchDateFrom
  2. Przy zmianie dateFrom ustawia min na dateTo = wartość dateFrom
  3. Analogicznie dla search form (searchDateFromsearchDateTo)
  4. Wywoływana przy init modala i init search form Weryfikacja: Przeglądarka blokuje wybór dat wcześniejszych niż teraz Done: Atrybuty min dynamicznie ustawione na wszystkich 4 inputach

Task 2: Walidacja w validateForm() — komunikat błędu

Plik: assets/js/carei-reservation.js Akcja: W validateForm() po sprawdzeniu dateTo > dateFrom dodać sprawdzenie:

  • Jeśli dateFrom < now → error "Data lub godzina rozpoczęcia już minęły"
  • Jeśli dateTo < now → error "Data lub godzina zakończenia już minęły" Weryfikacja: Komunikat wyświetla się pod polem z czerwonym obramowaniem Done: Walidacja blokuje submit z datami wstecznymi + pokazuje polski komunikat

Pliki do modyfikacji

  1. wp-content/plugins/carei-reservation/assets/js/carei-reservation.js

Ryzyko

  • Brak — zmiana czysto frontendowa, walidacja klient-side