Releases: peckadesign/pdForms
Oprava závislostí, update dokumentace
- Update dokumentace.
- Doplnění chybějících závislostí na
nette-forms
anette.ajax.js
dopackage.json
. - Úprava závislosti na
nette-forms
a doplnění závislosti nanette.ajax.js
vbower.json
.
Přidána backendová část validace
PHP
- přidána nově celá backend část (viz dokumentace)
- přidány testy a napojení na Travis CI
JS změny
- Nepovinná pravidla (měkká validace) a AJAXová pravidla lze nyní na backendu připojovat přes
addRule
. - U asynchronních pravidel jsou automaticky vyplněny inputy, které jsou nastaveny v
arg.dependentInputs
a jejichž hodnoty dojdou vpayload.dependentInputs
. Dříve toto řešil manuálně callback pro danou validaci, např.PdFormsRules_validTIN
. - Přidána metoda
pdForms.getRuleByOp(rules, op)
, která vrátí první pravidlo zrules
, které má jménoop
. - BC breaky:
- Všechny validátory jsou nyní v
Nette.validators
, validátory zpdForms.validators
byly přesunuty tamtéž. - Přejmenování objektu pro callbacky, nově je to
pdForms.ajaxCallbacks
, místo původního.pdForms.asyncCallbacks
- Přejmenování interních metod, které by neměly být používány mimo knihovnu. Pokud ano, může být BC break. Přejmenované metody:
pdForms.isRuleOptional
->pdForms.isOptionalRule
pdForms.normalizeRulesArg
->pdForms.normalizeRules
- Refactor metod a proměnných nahrazením
async
zaajax
. - Odebrání AJAXového pravidla (včetně callbacku)
PdFormsRules_validTIN
a jeho nahrazení za obecnéPdFormsRules_ajax
. - Není nutné vytvářet prázdný callback pro identifikaci AJAXového pravidla. To je nyní rozpoznáno díky příznaku z back-endu.
- Přejmenována metoda na ověření, zda pravidla obsahují ajaxové pravidla. Nově
pdForms.hasAjaxRule
místo.pdForms.hasAsyncRule
- Očekávaný placeholder pro AJAX spinner má třídu
pdforms-ajax-spinner--HTML_ID_INPUTU
místoajax-validation-spinner--HTML_ID_INPUTU
- Nastavení
messageType
vpayload
u AJAXových validací má nejvyšší prioritu při nastaveníclass
validační zprávy. V případě nepovinného pravidla se automaticky měníerror
nainfo
.
- Všechny validátory jsou nyní v
Oprava mazání zpráv
K mazání zpráv nedochází v případě, že validace inputu byla zavolána s onlyCheck === true
. V tu chvíli neovlivňujeme žádným způsobem DOM.
Úpravy AJAXových validací
- Stisknutím klávesy ESC v průběhu AJAXové validace nedojde k jejímu zrušení (#10).
- Do globálního objektu
pdForms
přidána propertyversion
obsahující aktuální verzi. - Metoda
toggleControl
při validaci AJAXových pravidel použije správnou URL (#8). - Drobný refactor přetěžování
Nette
metod a ukládání referencí na původní metody.
Oprava mazání zpráv
Oprava mazání zpráv v případě, že input má asynchronní i klasická pravidla dohromady. Za určitých okolností stále mohlo dojít k zobrazení dvou chyb zároveň, protože nedošlo ke smazání zprávy z asynchronního pravidla.
Oprava mazání zpráv
Opravena chyba, kdy v případě kombinace asynchronních a klasických validačních pravidel na jednom inputu nedocházelo k mazání zpráv. Opravuje issue #9.
1.3.5
- Ošetření přidávání validačních zpráv v případě, že AJAXový request skončí chybou. V takovém případě je
payload === undefined
. - V případě AJAXové validace se přidá class
pdforms-valid
i v případě, že není vyplněná žádná zpráva. V případě chyby se class nepřidává bez vyplněné zprávy, protože to nedává smysl (uživatel by nevěděl, co je chybně).
Zjednodušené přidávání vlastních zpráv krom `valid` a `invalid` u AJAXové validace
Nyní je možno vypsat libovolnou zprávu. Je potřeba v odpovědi ze serveru poslat v JSONu klíč status
obsahující string. Ten se použije jako klíč do pole se zprávami nastavenými u pravidla v PHP (stejně, jako do teď fungoval valid
, invalid
a částečně timeout
). Typ zprávy lze určit pomocí klíče messageType
(libovolný string použitelný jako CSS class) v JSON odpovědi. Výchozí je info
. Viz příklad odpovědi a vygenerované zprávy:
{
"status": "unavailable",
"messageType": "nazev_class"
}
<p class="message message--nazev_class pdforms-message">...</p>
<label class="inp-nazev_class pdForms-message">...</label>
1.3.3: #0 Oprava asynchronního callbacku `PdFormsRules_validTIN`
- Oprava asynchronního callbacku
PdFormsRules_validTIN
. Po vyplnění polí nedošlo k jejich opětovné validaci. Úprava nově přidává validaci novou událostvalidate.pdForms
a tato událost se vyvolá po změně hodnot v callbacku.
1.3.2: #7 Vytvoření obecného pravidla pro kontrolu CZ/SK IČ
- Přidáno obecné pravidlo na formát CZ/SK IČ, které musí splňovat určité podmínky pro svůj ciferný součet. Pravidlo se očkává jako v namespace
Pd/Forms/Rules/
pod názvemvalidICO
. - Oprava přidávání validní class v určitém případě, viz níže.
- Element má alespoň dvě pravidla z nichž jedno je složené (podmíněné). V případě, že podmíněné pravidlo projde, tak díky vnořenému volání
pdForms.validateControl
se přidala validní class. I když pak druhé pravidlo neprošlo a přidalo nevalidní class, zůstala ona validní class ze zanořeného pravidla. Řešením je přesun přidávání validní class o úroveň výše, tj. po validaci celého prvku.
- Element má alespoň dvě pravidla z nichž jedno je složené (podmíněné). V případě, že podmíněné pravidlo projde, tak díky vnořenému volání