Releases: peckadesign/pdForms
Přidání lazyload recaptchy pro formuláře
- přidání scriptu pro lazyload recaptcha do formulářů
- npm script pro minifikaci recaptcha
- nova zavislost na
"contributte/recaptcha": "3.1.*"
Oprava everFocused u vlastních validačních událostí
Pokud byla použita vlastní validační událost pomocí data-pdforms-validate-on
, např. keyup
, funguje validace na tuto událost až po opuštění pole, kdy se zapíše data-ever-focused atribut na element. Oprava tento atribut zapíše při prvním výskytu události uvedené v data-pdforms-validate-on
.
Issue #34.
Podpora PHP <7.4
- minimální verze vendor balíků
- travis běží pro PHP <7.4
- code pro 7.4 "ready"
Issue: peckadesign/pdproject5#2859
Oprava `initForm` v případě AJAXových validací
Oprava zapsání podmínky tak, aby nevyhazovala chybu do konzole.
Oprava `initForm` v případě AJAXových validací
Ve vzácných případech mohlo dojít k situace, že Nette.initForm
způsobila chybu v případě AJAXové validace. Výjimečně mohlo dojít k tomu, že JS událost DOMContentLoaded
byla vyvolána dříve, než dojde ke zpracování již staženého JS. V tu chvíli event handler vyvolal inicializaci formuláře, která prostřednictvím Nette.toggleForm
spustila AJAXovou validaci ve chvíli, kdy ještě $.nette
bylo undefined
. Nově v takovém případě nedojde k odeslání requestu. Vzhledem k tomu, že AJAXové validace vždy vrací TRUE
, nedojde k žádné změně stávajícího chování (při zpracování Nette.toggleForm
nejsou vypisovány nikdy žádné chyby).
BC break: ne
Oprava zobrazení validačních zpráv v IE11
V IE11 starších není podporované ParentNode.prepend()
a ParentNode.append()
, proto došlo k nahrazení těchto metod za Element.insertAdjacentElement()
.
BC break: ne
Oprava vyplnění dependentInputs dle response serveru
Oprava chybného přístupu k hodnotě k vyplnění v rámci payload
Podpora Nette validátorů pro měkkou validaci
Issue #20
Přidána podpora navěsit měkkou validaci na formulářové prvky a využít standardní Nette validátory. Př.:
$companyIdentifierOptions = $this->ruleOptionsFactory->createNetteOptional(
\Nette\Forms\Form::PATTERN,
'([0-9]\s*){0,8}'
);
$form->addText('companyIdentifier', 'IČO')
->addCondition(\Nette\Forms\Form::FILLED)
->addRule(\Pd\Forms\Rules::NETTE_RULE_PROXY, '_msg_ico_pattern', $companyIdentifierOptions)
;
Detailní popis v dokumentaci
BC breaks:
- JS: Upraveno volání normalizace pravidel. Pokud při volání
Nette.validateControl
předáváme pravidla, očekává se, že již byla normalizována pomocípdForms.normalizeRules
. Dříve k jejich normalizaci došlo v rámciNette.validateControl
vždy, nyní pouze v případě, že nebyla předána a metoda je načetla přímo z elementu.
Podpora Nette validátorů pro měkkou validaci
Issue #20
Přidána podpora navěsit měkkou validaci na formulářové prvky a využít standardní Nette validátory. Př.:
$companyIdentifierOptions = $this->ruleOptionsFactory->createNetteOptional(
\Nette\Forms\Form::PATTERN,
'([0-9]\s*){0,8}'
);
$form->addText('companyIdentifier', 'IČO')
->addCondition(\Nette\Forms\Form::FILLED)
->addRule(\Pd\Forms\Rules::NETTE_RULE_PROXY, '_msg_ico_pattern', $companyIdentifierOptions)
;
Detailní popis v dokumentaci
BC breaks:
- JS: Upraveno volání normalizace pravidel. Pokud při volání
Nette.validateControl
předáváme pravidla, očekává se, že již byla normalizována pomocípdForms.normalizeRules
. Dříve k jejich normalizaci došlo v rámciNette.validateControl
vždy, nyní pouze v případě, že nebyla předána a metoda je načetla přímo z elementu.
Podpora Nette 2.4
- Kompatibilita s Nette Forms 2.4
- Funkční nahrazování placeholderů ve validačních zprávách (
%value
,%\d+
) - U asynchronních pravidel jsou automaticky vyplněny inputy, které jsou nastaveny v
arg.inputs
(případněarg.data.inputs
) a jejichž hodnoty dojdou vpayload
. Dříve toto řešil manuálně callback pro danou validaci, např.PdFormsRules_validTIN
. - BC breaky:
- Hlavní soubor
src/assets/pdForms.js
již neobsahuje žádné validátory. Ty jsou vyčleněny bokem a je nutné na je na frontend načítat zvlášť, viz složkasrc/assets/validators
. - Pro kompatibilitu s IE9-11 je nutné načítat soubor
src/assets/pdForms.polyfills.js
. - Veškeré události vyvolávané přes pdForms jsou nově Vanilla JS, tj. nekompatibilní s jQuery událostmi. Je tedy nutné upravit navázání callbacků na vanilla JS, např. vyhledáním
validate.pdForms
, respektive i dalších událostí jQuery s namespace.pdForms
. - Přejmenování
data-ever-focused
nadata-pdforms-ever-focused
, navíc se nepoužívá jQuery funkce$.data()
, ale nastavuje se reálný atribut. - Přejmenování
data-validation-group
nadata-pdforms-validation-group
. - Nastavení
messageType
vpayload
u AJAXových validací má nejvyšší prioritu při nastaveníclass
validační zprávy. - Atribut pro vypsání chybové zprávy jako globální je nyní
data-pdforms-messages-global
, omylem byla zanesena chyba, kdy název byl.data-pdforms-messages--global
- Odebrána interní metoda
toString
nadpdForms.constants
, tj. již není možné volatString(pdForms.constants)
. - Přejmenování konstant používaných pro class (
pdForms.constants
). Nově jsou toMESSAGE_ERROR
,MESSAGE_INFO
aMESSAGE_VALID
.
- Hlavní soubor