Kdyby / FormsReplicator

Other
30 stars 57 forks source link

Problem s addGroup(). Tlačítko je vždy mimo <fieldset> #14

Closed ghost closed 11 years ago

ghost commented 11 years ago

Snažím se ve formuláří použít http://dev.nette.org/cs/formulare/vykreslovani#toc-toggle ke kterému je potřeba využít

$form->addGroup(); 

Problém je v tom, že tlačítko ->addRemoveOnClick() se napojuje na samotný $replicator viz http://addons.nette.org/cs/form-container-replicator#toc-pridavani-a-odebirani-kontejneru

$users->addSubmit('add', 'Přidat dalšího člověka') ->addCreateOnClick();

Díky tomu je vždy mimo fieldset a tak létá úplně mimo -> kazí to vzhled. Aktuálně mám tři tlačítka -> Smazat, Přidat a Odeslat. Díky tomuto problému jsou pod sebbou a né v řadě jako bez použití ->addGroup()

Mohl bys na to udělat nějaký fix? Díky.

fprochazka commented 11 years ago

Ahoj, zkoušel jsi tlačítko přidat do groupy manuálně?

$group = $form->addGroup();

// ...

$group->add($users['add']); // prida tlacitko do groupy

?

ghost commented 11 years ago

O tom jsem nevěděl, tak jsem to zkusil a bohužel. Má to totiž jeden problém. Funkce add() přidává na začátek, nikoli na konec. Viz obrázek (3. obrázek: Tlačítka Add a Create se zobrazí vždy a pouze u posledního záznamu/replikace): bez nzvu-2

PS: Díky za úpravu neznám BBCODY. Nebyl by odkaz na nějakou dokumentaci?

fprochazka commented 11 years ago

Ono nejde o to, že by se přidávaly na začátek, spíš je problém že ty inputy s tlačítkem smazat se přidají až po připojení do presenteru a při odeslání formuláře nastane stejný problém.

Jakékoliv čarování s odkládáním přidání prvků do groupy by bylo myslím příliš magické. Zkrátka nevím jak to vyřešit dobře.

Nechceš tento formulář raději vyrenderovat ručně? Když ho vyrenderuješ ručně, nebudeš potřebovat formulářové groupy, ale můžeš si je tam vepsat sám jak se ti to hodí.

PS: https://help.github.com/articles/github-flavored-markdown

ghost commented 11 years ago

Ok. díky. Né že by se mi do toho chtělo, ale co zbývá :) Akorát by to chtělo vyřešit manuální renderování checkboxu. Nette generuje <label><input></label>,což při manuálníím renderu nikdy nedostaneš ... ale to už je Nette. Díky za pomoc :+1: