Problémy u klonovaného AppFormu

- Dragon Jake
- Člen | 20
Zdravím,
narazil jsem na menší problémy v klonování AppFormu. Mám obecnou
komponentu registerForm, kterou následně klonuji na
userRegisterForm a partnerRegisterForm, v
createComponent<name>() metodách následně
přidávám/odebírám/upravuji některé prvky a vlastnosti klonovaného
formuláře. Jenže…
- pokud v
registerFormdefinuji skupiny prvků (addGroup()), v klonované verzi se vytratí a nelze je ani opětovně nastavit skrzeadd(), - nefunguje JavaScript, dle zdrojového kódu má vygenerovaný kód staré reference na IDčka prvků (InstantClientScript).
A teď otázka: dělám něco, co bych neměl, co je špatně a čemu absolutně nerozumím nebo nechápu, jak funguje a nebo je to chybka a mělo by to fungovat? Předem díky :)
edit:
3. zdá, se, že ze stejné příčiny nefunguje ani addError()
u validačních pravidel
Editoval Dragon Jake (20. 8. 2009 11:42)

- Blizzy
- Člen | 149
https://forum.nette.org/…are-tlacitka?…
Jinak tyto problémy by měly jít také řešit vytvářením tříd, které rozšiřují AppForm a v konstruktoru přidávají prvky formuláře. Tyto třídy se pak dají dědit, konstruktor rozšiřovat atd.

- Dragon Jake
- Člen | 20
Mno vida, tohle přesně jsem tu nemohl najít. Díky :)
Mě právě ještě napadlo řešení v podobě továrničky a dodatečné úpravy řešit až v action, ale nepřišlo mi to tak čisté a elegantní.

- David Grudl
- Nette Core | 8296
Dám raději do formuláře zákaz klonování, aby se podobným chybám předcházelo. (teda než a pokud se vyřeší způsob, jak formuláře klonovat).

- Honza Kuchař
- Člen | 1662
Nedávno jsem na tohle taky narazil. Nestačilo by jenom projít všechny controly a pravidla a nastavit jim parent na nového rodiče? nebo je v tom něco víc čeho jsem si nevšiml?

- Dragon Jake
- Člen | 20
honzakuchar napsal(a):
Nedávno jsem na tohle taky narazil. Nestačilo by jenom projít všechny controly a pravidla a nastavit jim parent na nového rodiče? nebo je v tom něco víc čeho jsem si nevšiml?
V tom objektu je toho celkem dost, reference na rodiče mě taky trkly… jen jsem si netroufl se do toho víc šťourat ;)