Releases: peckadesign/pdForms
Oprava inicializace formulářů se snippety
Původní metodu Nette.initForm
chceme volat vždy. Sama o sobě obsahuje kontrolu na opětovnou inicializaci, na začátku ale ještě spouští nastavení, které je nutné udělat i po ajaxu (jmenovitě inicializace toggle elementů). Metoda Nette.toggleControl
je pak v Nette ošetřená proti vícenásobnému navázání handleru pomocí weakMap
.
Oprava opakované inicializace formuláře
Pokud byl formulář již inicializován, zapisuje Nette.initForm
na formulář form.noValidate = true
. Pokud tedy narazíme na form.noValidate
, neinicializujeme formulář, protože bychom navazovali jednotlivé callbacky opakovaně.
Změna chování scrollování po validaci formuláře
Po zvalidování nově scrollujeme podle složitější logiky. Pokud není žádný focusovatelný prvek na základě validace (ale validace má nějaké chyby), přesouváme se na začátek formuláře. Pokud máme focusovatelný prvek (první chybný input formuláře), pak pokud není typu hidden
a zároveň nemá nastaveno globální umístění zprávy, pak do něj přesouváme focus a prohlížeč zajistí scroll sám. V případě hidden
prvků, nebo prvků s globální validační zprávou scrollujeme přímo na placeholder (nebo formulář).
Oprava validace radio inputů
Oprava detekce RadioNodeList
. Místo e.target.type
používáme přímo instanceof
, protože v případě, že input type="radio"
je jediný s daným názvem, nevrací e.form[e.target.name]
RadioNodeList
, ale přímo daný input.
Aktualizace nette/di
Úprava závislosti na nette/di na ^3.0.0
.
Zrušení prefixu I u Interface dle nette.
Optimalizace validace radio inputů
Protože Nette Forms přidává z backendu defaultně validační pravidla v data-nette-rules
pouze na první radio button z RadioList
, upravujeme validaci a nastavování interního everFocused vždy pouze na první radio button ze skupiny.
Chybná validace radio inputů
V případě radio inputů se při validaci pdForms nechová správně. Při validaci inputu by se měly validovat všechny radio se stejným name
. Nyní se tak neděje a důsledkem je, pokud proklikávám radio button, kdy např. jen jedna volba je validní, dostávám nekoherentní stav, kdy různé radio mají různé class pro validitu, přestože radio se stejným jménem musí mít všechny vždy stejný stav.
Generování CSS class pro chybovou hlášku obstarává samostatná metoda
Generování CSS class pro chybovou hlášku obstarává samostatná metoda, kterou lze nahradit za vlastní implementaci. Díky tomu je možné změnit např. css class pro zprávy po vzoru bootstrapu, nebo jakkoli jinak (např. na utility třídy).
PHP 8.1 support
Merge pull request #48 from peckadesign/php81 PHP 8.1 support
Content Security Policy - package.json
Při zaregistrování služby implementující ContentSecurityPolicyInterface, se přidá Nettovský nonce atribut na script prvek pro Recaptchu.
- oprava verze package.json