Modální okno s formulářem
- akadlec
- Člen | 1326
Pokouším se nějak vyřešit přidávání nových prvku přes form který ale není klasicky ve stránce ale v modálním okně tak aby vše fungovalo i kdyby nějaká část js selhala a form byl stále v okně.
Vyřešil jsem to takto:
- Na button na otevření formulářového okna jsem pověsil handleNew
- Do defaultní šablony presenteru si do bloku vyrendreju form:
{define #editInWindow}
{include #parent}
<div id="pageFormNew" class="editWindow dialog customDialog formDialog" title="New page">
...vykresleni formu (v mém případě po elementech)
</div>
{/define}
3. Díky tomu že to mám v definovaném bloku tak do hlavního layoutu jsem si vytvořil blok editInWindow do kterého se ten obsah injectuje.
4. Pomocí js pak provedu „otevření“ onoho okna
5. Přes nette.ajax.js mám nadefinovanou akci že když se objeví nějaký
snippet v daném bloku tak jej „otevře“
Vše zatím funguje ok a tak jak si představuji ale moje otázka je zda je
to takto ok, myslím tím otvírání formu přes handle.
A druhá otázka jak řešit to vykreslení toho formu do toho bloku jen až je
zavolaný daný handle? Předat si do šablony nějaký parametr třeba
injectForm podle kterého se rozhodnu zda tam tu komponentu
formuláře vložit?
A třetí je invalidace a validace snippetů. V tom handle jsem si zavolal
$this->validateControl(); a pak invaliduju jen ten
konkrétní
$this->invalidateControl(‚editInWindowBlock‘); a stejnak
mě to invaliduje všechny snippety.