Skip to content

Releases: peckadesign/pdForms

Oprava závislosti jquery

05 Nov 08:48

Choose a tag to compare

Oprava závislosti jQueryjquery.

Full Changelog: v4.3.1...v4.3.2

Úprava frontendových závislostí

05 Nov 08:44

Choose a tag to compare

  • jQuery a nette.ajax.js přesunuty do optionalDependencies. V případě, že není využíváno ajaxových pravidel z tohoto balíčku, nejsou tyto závislosti potřeba. Projektově je možné používat např. Naja.
  • Přesunutí nette-forms do peerDependencies.

Full Changelog: v4.3.0...v4.3.1

Rozšíření možností pro vkládání validační zprávy

25 Aug 08:40
9ad9096

Choose a tag to compare

Byla upravena logika pro vkládání validačních zpráv. Samotné vyhledávání placeholder elementu pro validační zprávy (a třídy označující validační stav) se nezměnila. Před samotným vložením validační zprávy se ale ještě hledá element .pdforms-messages__aria. Pokud je nalezen, použije se ten, jinak se použije přímo placeholder. Data atributy pro pozici zprávy zůstávají zachovány.

Díky tomu je možné poskytnout lepší UX pro uživatele odečítačů obrazovek, kdy danému elementu můžeme přidat atribut aria-live="polite" a tím zajistit jeho čtení při změně. Zároveň, protože jde o dedikovaný element pouze pro validační zprávy, nedochází ke čtení již dříve přečtených částí formuláře. Tj. není čtený opakovaně input, label a případné jakékoli další elementy, které byly v placeholderu, ale nijak se validací nezměnily.

Základní struktura kódu pro použití je následující:

<p> <!-- Na tento element budou přidané stavové validační CSS třídy-->
    <label for="email">E-mail:</label>
    <input type="email" id="email" name="email" ...>
    <span class="pdforms-messages__aria" aria-live="polite"></span> <!-- Do tohoto elementu budou vloženy validační zprávy -->
</p>

Složitější struktura může vypadat například takto. V tomto případě by přidání aria-live="polite" na celý fieldset vedlo ke špatnému UX, kdy by byl zopakován velký kus dokumentu.

<fieldset class="pdforms-messages">
    <legend>Výběr dopravy</legend>
    <div class="pdforms-message__aria" aria-live="polite"></div> <!-- Odečítač obrazovky přečte pouze vložené validační zprávy -->
   <!-- Např. vypsané radio buttony pro jednotlivé dopravy, včetně delších popisů, cen, atd. -->
</fieldset>

Oprava live validací

13 May 08:23
fd87030

Choose a tag to compare

Dokončení revertu z předchozího release. Při live validaci je potřeba mazat na začátku zprávy. Toto bylo původně přesunuto do validateControl, ale poté odebráno a přesunuto do validateForm. Nyní tedy vracíme ještě i do liveValidation, aby zprávy byly odebírány při každé opětovné validaci inputu.

Mazání zpráv při validaci formuláře uvnitř `validateForm`

13 May 07:24
b9b10f3

Choose a tag to compare

Zprávy se nyní nemažou v rámci validateControl, ale při validateForm. Původní úprava řešila problém #58, nicméně zanesla chybu, kdy mohlo dojít k nezobrazení chyb. Pokud bylo po zobrazení chyby validováno další pravidlo, jehož součástí byla podmínka (zanořené rules) a toto pravidlo bylo validní (respektive jeho první část - podmínka), došlo ke smazání původní chyby. To bylo způsobeno rekurzivním voláním validateControl. Řešení je revert původní úpravy (nemazat zprávy uvnitř validateControl) a zároveň přetížení validateForm, na jehož začátku smažeme zprávy v celém formuláři a poté jej validujeme.

fix kompatibility s nette/forms

06 May 12:38
b8f80a5

Choose a tag to compare

v releasu 4.0.0 se změnilo IControl na Control, který je v nette/forms od verze 3.1
podpora v composer.json, ale zůstala i pro nette/forms 2.4
vzhledem k tomu, že IControl bylo z nette/forms odstraněno až ve verzi 4.0, tak vrátíme úpravu zpět, ať je zachována podpora nette/forms uvedená v composer.json

Úprava scrollování po validaci

25 Apr 12:24
022685d

Choose a tag to compare

Pokud validace vkládá validační zprávu před input, musíme scrollovat na zprávu místo inputu.

Oprava mazání chyb z `RadioNodeList`

08 Apr 08:08
2c39ab4

Choose a tag to compare

Pokud byl element RadioNodeList, do pdForms.removeMessages se posílal chybně místo Element právě RadioNodeList, což mohlo způsobit chybu. Nyní je v metodě validateControl správně pořadí tak, že nejprve ošetříme RadioNodeList a teprve poté voláme removeMessages.

Správné mazání validačních zpráv při odeslání formuláře

03 Mar 15:25
d17ef61

Choose a tag to compare

Přesunutí mazání validačních zpráv z live validace obecně do validateControl. V případě live validací se nic nemění, ale zprávy se nově mažou např. i při volání validateForm. Díky tomu při odeslání formuláře dojde vždy ke smazání (potenciálně) neaktuálních chyb, např. o vyplnění přes autofill (které nevyvolává change událost). Řeší issue #58.

Oprava inicializace formulářů se snippety

05 Sep 08:56
db69596

Choose a tag to compare

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.