Dynamicke pridavani ve formulari, kam zmizelo addDynamic?

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

Ahoj, chtel jsem vytvorit dynamicke pridavani poli ve formulari, kdysi jsem to delal takto:

$form = new \Nette\Application\UI\Form();

        $form->addGroup();




        $form->addHidden('idPlatby')
                ->setDefaultValue(-1)
                ->setRequired('Neznámé ID platby, kontaktujte administrátora.');








        $form->addText('datum', 'Datum:');

        $form->addText('cisloFaktury', 'Číslo faktury:');










        $removeEvent = array($this, 'mainFormRemove');

        $auta = $form->addDynamic('auta', function (Container $auto) use ($removeEvent)
        {
            $auto->currentGroup = $auto->form->addGroup();

            $auto->addSelect('vin', 'VIN:');

            $auto->addText('castka', 'Částka:');

            $auto->addText('mena', '');

            $auto->addSubmit('odstranitAuto', '-')
                    ->setValidationScope(false) # disables validation
                    ->onClick[] = $removeEvent;

            $pretyp = $phone['odstranitAuto']->getControlPrototype();
            $pretyp->setName("button");
            $pretyp->create('i class="icon-minus"');
        }, 1);

        /** @var \Kdyby\Replicator\Container $auta */
        $auta->addSubmit('pridatAuto', NULL)
                ->setValidationScope(false)
                ->onClick[] = array($this, 'mainFormAdd');

        $pretyp = $auta['pridatAuto']->getControlPrototype();
        $pretyp->setName("button");
        $pretyp->create('i class="icon-plus"');












        $form->setCurrentGroup(NULL);

        $form->addSubmit('save', 'Uložit')
                ->onClick[] = array($this, 'mainFormSave');

        $form->addSubmit('storno', 'Storno')
                ->setValidationScope(false)
                ->onClick[] = array($this, 'mainFormStorno');







        $form->addProtection('Vypršel časový limit, odešlete formulář znovu');

        $form->onValidate[] = array($this, 'mainFormValidate');


        return $form;

ted mi to haze

Nette\Application\UI\Form::addDynamic()

verze nette 2.3.10 asi

h4kuna
Backer | 740
+
0
-

Mám takový pocit, že metoda addDynamic() v nette nikdy nebyla. To ti musí přidávat nějaká knihovna, kterou jsi nyní nepoužil.

EDIT
Dělávalo se to přes \Nette\Forms\Container::extensionMethod(‚addDynamic‘, <nějaký callback>); kde toto umožňoval/umožňuje Nette\Object.

Editoval h4kuna (20. 10. 2016 7:48)

JZechy
Člen | 161
+
0
-

addDynamic přidávala do Nette komponenta Kdyby/FormsReplicator

vosy
Člen | 532
+
0
-

h4kuna napsal(a):

Mám takový pocit, že metoda addDynamic() v nette nikdy nebyla. To ti musí přidávat nějaká knihovna, kterou jsi nyní nepoužil.

EDIT
Dělávalo se to přes \Nette\Forms\Container::extensionMethod(‚addDynamic‘, <nějaký callback>); kde toto umožňoval/umožňuje Nette\Object.

jooo mas pravdu :D jsem tydyt bylo to pres Kdyby/FormsReplicator, diky