Upgrade

Upgrade na verzi 3.3

  • automatická ochrana proti CSRF přešla z isSameSite() na isFrom(FetchSite::SameOrigin) a je přísnější: requesty přicházející ze subdomén už neprojdou
  • díky tomu už není potřeba addProtection(), protože automatická ochrana kryje totéž; u nových formulářů jej vynechte a ze stávajících ho můžete mazat

Proč už tokeny v session nejsou potřeba, vysvětluje článek Čtvrt století s CSRF.

Upgrade na verzi 3.1

  • getValues() vrací jen validované prvky; pokud potřebujete hodnoty všech prvků nezávisle na validaci, použijte novou metodu getUntrustedValues()
  • pole $values předávané handlerům onSuccess a onClick rovněž obsahuje jen validované prvky
  • samostatně používané formuláře jsou automaticky chráněny proti CSRF pomocí cookie s příznakem SameSite; odeslání z jiné domény povolíte metodou allowCrossOrigin()
  • pravidlo Form::URL nyní doplňuje chybějící protokol https místo http
  • Form::addImage() bylo přejmenováno na addImageButton()
  • Checkbox::getSeparatorPrototype() bylo přejmenováno na getContainerPrototype()
  • formuláře již nevytvářejí v šabloně proměnnou $_form

Více o těchto změnách v článku Novinky v Nette Forms 3.1.

Upgrade na verzi 3.0

  • všechny formulářové prvky jsou nyní ve výchozím nastavení volitelné (tato změna byla zavedena v Nette 2.4), takže můžete odstranit setRequired(false)
  • nezapomeňte aktualizovat soubor netteForms.js na verzi 3 (npm install nette-forms)
  • proměnné ChoiceControl::$checkAllowedValues a MultiChoiceControl::$checkAllowedValues byly nahrazeny metodou checkDefaultValue()

Upgrade na verzi 2.4

  • pokud má prvek nastaveno pravidlo přes addRule() (tedy je efektivně povinný), musíte jej také označit jako povinný pomocí setRequired(); dále setRequired(false) nyní udělá prvek volitelný, čímž lze nahradit větve addCondition($form::FILLED)
  • validátory Form::EMAIL, URL a INTEGER automaticky mění HTML atribut type na email, url, resp. number
  • negativní validační pravidla jsou zastaralá; alternativou ~Form::FILLED je Form::BLANK a ~Form::EQUAL lze nahradit za Form::NOT_EQUAL
  • interní parametr do se nyní u formulářů posílaných přes POST jmenuje _do, aby nedocházelo ke kolizi
  • interní podtržítkové proměnné jako $_form jsou zastaralé
  • nezapomeňte aktualizovat netteForms.js

Upgrade na verzi 2.3

  • interní filtrovací metody jako Nette\Forms\Controls\TextBase::filterFloat byly odstraněny
  • interní validační metody jako TextBase::validateFloat byly přesunuty do Nette\Forms\Validator, stejně jako Rules::$defaultMessages
  • tlačítka a skrytá pole se generují bez HTML ID; pokud ID chcete, nastavte ho přes setHtmlId()
  • položky RadioListu se rovněž generují bez ID; můžete ho zapnout přes $radioList->generateId = true
  • filtry přidané přes TextBase::addFilter() se zpracovávají během validace a filtry nyní můžete přidávat i k podmínkám: $input->addCondition(...)->addFilter(...)
verze: 4.x 3.x