Contributte\Form-multiplier a MultiUpload

OdpadlikCZ
Člen | 15
+
0
-

Mám udělaný formulář, kde je použitý Contributte\Form-multiplier.
Vše funguje skvěle. Mán nastavený kontejner, kde mám informace o zboží. Jméno, cena, popis, obrázky, atd. Pro obrázky jsem použil ->addMultiUpload.
Primárně se ukáže jedna položka a pak tlačítkem přidávám další po jednom.

Pokud si, ale u zboží vyberu obrázky, tak kdykoliv dám přídat další položku přes ten multiplier, tak mi obrázky z MultiUpload zmizí a musím je vybrat znova. Je jedno jestli je přidám první položce nebo dynamicky přidané položce.
Takže v praxi si musím přidat všechny položky a až nakonec jít zpět a vybrat u jednotlivých položek obrázky. Nedej bože, kdyby obrázky byly povinné pole.
Pak se vše odešle a v pohodě se předá funkci a há si je uložím.

Dá se to nějak řešit? Myslím tím to, že pokud jednou vyberu u položky obrázky a přidám další položku, tak se u předchozí položky(položek) vybrané soubory nesmažou.

Díky za radu.


$zbozi = $form->addMultiplier('zbozi', function (Nette\Forms\Container $container, Nette\Forms\Form $form) {

            $container->addText('name', 'Název zboží')
                    ->addRule(Form::MAX_LENGTH, 'Musí mít maximálně %d znaků', 250)
                    ->setAttribute('class', 'form-control zboziName')
                    ->setRequired('Prosím vyplňte název zboží')
                    ->setOption('class', "col-12 col-md-6 pl-0")
                    ->setOption('description', 'Napište název věci (např. čepice');

                $container->addText('size', 'Velikost')
                    ->addRule(Form::MAX_LENGTH, 'Počet mít maximálně %d znaků', 50)
                    ->setOption('class', "col-12 col-md pl-0")
                    ->setAttribute('class', 'form-control');

                $container->addText('price', 'Cena')
                    //->setRequired(true)
                    ->setRequired('Prosím vyplňte cenu zboží')
                    ->setAttribute('type', 'number')
                    ->setOption('class', "col-12 col-md pl-0")
                    ->setAttribute('class', 'form-control')
                    ->setOption('description', 'Cena za kus')
                    ->addRule($form::NOT_EQUAL, 'Cena nesmí být 0', 0)
                    ->isRequired();

                $container->addText('amount', 'Počet')
                    ->setRequired(true)
                    ->setAttribute('type', 'number')
                    ->setOption('class', "col-12 col-md pl-0")
                    ->setDefaultValue('1')
                    ->setAttribute('class', 'form-control');

                $container->addMultiUpload('itemImg', 'Obrázky')
                    ->setOption('class', "col-12 form-group orderItemImgs")
                    ->setAttribute('class', 'form-control-file')
                    ->addRule($form::MAX_LENGTH, 'Maximálně lze nahrát %d souborů', 10);

                $container->addTextArea('description', 'Poznámky', NULL, 5)
                    ->setAttribute('class', 'mceEditor')
                    ->setRequired(false)
                    ->setOption('class', "col-10 pl-0 mb-5")
                    ->isRequired(false);

        }, $this->multiplierCopies, $this->multiplierMaxCopies);


var $multiplierCopies = 1;
var $multiplierMaxCopies = 20;
Martk
Člen | 661
+
+1
-

Řešení je jedině klonování inputů přes javascript

Pepino
Člen | 257
+
+1
-

Martk napsal(a):

Řešení je jedině klonování inputů přes javascript

Nebo soubory průběžně ukládat.

OdpadlikCZ
Člen | 15
+
0
-

Nedalo by se to obejít pomocí Contributte/Forms-wizard a dynamické přidávání kroků? Jesti to vůbec Forms-wizard umí?

Pepino
Člen | 257
+
0
-

OdpadlikCZ napsal(a):

Nedalo by se to obejít pomocí Contributte/Forms-wizard a dynamické přidávání kroků? Jesti to vůbec Forms-wizard umí?

Ne.

OdpadlikCZ
Člen | 15
+
0
-

Pepino napsal(a):

OdpadlikCZ napsal(a):

Nedalo by se to obejít pomocí Contributte/Forms-wizard a dynamické přidávání kroků? Jesti to vůbec Forms-wizard umí?

Ne.

Díky za odpověď.