Przejdź do głównej zawartości

Zachowanie pól: tylko do odczytu, wymagane, widoczne, liczone

Używamy wyrażeń w praktyce: blokujemy pola, ustawiamy warunkową wymagalność, pokazujemy podpowiedź i liczymy wartość pola automatycznie.

  • Zatwierdzonego wniosku nie powinno się dać zmienić. Na polach (np. datach) ustawiasz readOnlyExpression: jeśli status z contract wynosi 2 (zatwierdzony), pole jest tylko do odczytu.
  • Antywzorzec: blokowanie pola rodzaju przez value() („zablokuj, gdy ma wartość”). value() to stan bieżący, więc pole zablokuje się zaraz po pierwszym wyborze i użytkownik nie może go już poprawić.
  • Dobrze: oprzeć się na contract. Jeśli dane przyszły z procesu, wniosek był już zapisany w bazie.
  • Pole uwag jest wymagane tylko dla wybranego rodzaju nieobecności. Wyrażenie czyta bieżący rodzaj przez data() i zwraca true/false.
  • Podpowiedź dla zwolnienia lekarskiego (co zrobić z numerem zwolnienia) ma być widoczna tylko przy tym rodzaju.
  • Wstawiasz kontener condition z polem tekstowym w środku. W warunku wyrażenie sprawdza, czy wybrano zwolnienie lekarskie. Przy innych rodzajach podpowiedź znika.
  • Ścieżka do pola w siatce: klucz sekcji / grid / numer wiersza / numer kolumny / klucz pola, liczone od zera.
  • Liczba dni wylicza się sama z dat Od i Do. Wyrażenie czyta obie daty, sprawdza, czy nie są puste, zamienia je na daty i liczy różnicę (wbudowane funkcje JS, np. Math).
  • Warunek: valueExpression działa tylko na polu tylko do odczytu. Po odznaczeniu read only edytor pokazuje błąd z dokładnym wskazaniem: ścieżka, typ pola i właściwość. Dzięki temu od razu wiesz, co poprawić.
  • Walidacje z formularza są wykonywane także na serwerze, na tych samych danych. Nie da się ich obejść — serwer odrzuci formularz jako niepoprawny.
  • Logikę możesz też dopisać w procesie, jak sprawdzenie pracownika z lekcji 4.

Pytanie „czy wniosek był zatwierdzony, kiedy go otworzyłem?” → contract. Pytanie „co użytkownik wybrał teraz?” → data(). W następnej lekcji formularz zaczyna mówić użytkownikowi, co jest źle — walidacja.