Modální okno s formulářem

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
akadlec
Člen | 1326
+
0
-

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:

  1. Na button na otevření formulářového okna jsem pověsil handleNew
  2. 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.