Replicator přidání do 2 kontejnerů

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

Ahoj,
dělám web pro jednu dopravní společnost a chtějí tam mít formulář pro zadání poptávky. V poptávce může být více druhů nákladu, který se může naložit i vyložit na více místech. Vytvořil jsem proto formulář pomocí replicatoru. Zde je kód:

public function createComponentPoptavka(){

		$firma = $this->context->firma->jmenaFirem();
		$dispecer = $this->context->uzivatele->ziskejPodleRole('dispecer')->fetchPairs('id', 'celeJmeno');


		$form = new UI\Form;
		$form->addSelect('firma', 'Firma', $firma);
		$form->addSelect('dispecer', 'Dispečer', $dispecer);
		$form->addTextArea('poznamka', 'Poznámka', 70, 3);
		$naklad = $form->addDynamic('naklad', function (Container $container){
			$container->currentGroup = $container->form->addGroup('Přepravovaný náklad', FALSE);
			$container->addText('nazev', 'Název nákladu');
			$container->addSelect('baleni', 'Druh balení', array('Paleta'));
			$container->addText('x', 'd')->setAttribute('class', 'small');
			$container->addText('y', 'š')->setAttribute('class', 'small');
			$container->addText('z', 'v')->setAttribute('class', 'small');
			$container->addText('hmotnost', 'Max. hmotnost');
			$container->addCheckBox('stohovatelnost', 'Stohovatelnost');
			$container->addCheckBox('nebezpecny', 'Nebezpečný náklad');
			$container->addTextArea('poznamka', 'Poznámka', 70, 3);

		}, 1);

		$naklad->addSubmit('add', 'Přidat náklad')->
				addCreateOnClick(TRUE);

		$nakladka = $form->addDynamic('nakladka', function (Container $container){
			$container->currentGroup = $container->form->addGroup('Místo nakládky', FALSE);
			$container->addText('spolecnost', 'Společnost');
			$container->addText('ulice', 'Ulice');
			$container->addText('mesto', 'Město');
			$container->addText('psc', 'PSČ');
			$container->addSelect('stat', 'Stát', array('a', 'b'));
			$container->addText('ks', 'Ks naložit');
			$container->addTextArea('poznamka', 'Poznámka', 70, 3);
			$container->addDatePicker('datumOd', 'Datum od');
			$container->addDatePicker('datumDo', 'Datum do');
			$container->addSubmit('remove', 'Smazat')
				->addRemoveOnClick()->setAttribute('class', 'delete');
		}, 1);

		$nakladka->addSubmit('add', 'Přidat místo nakládky')
			->addCreateOnClick(TRUE);

		$vykladka = $form->addDynamic('vykladka', function (Container $container){
			$container->currentGroup = $container->form->addGroup('Místo vykládky', FALSE);
			$container->addText('spolecnost', 'Společnost');
			$container->addText('ulice', 'Ulice');
			$container->addText('mesto', 'Město');
			$container->addText('psc', 'PSČ');
			$container->addSelect('stat', 'Stát', array('Česká republika', 'Slovenská republika'));
			$container->addText('ks', 'Ks naložit');
			$container->addTextArea('poznamka', 'Poznámka', 70, 3);
			$container->addDatePicker('datumOd', 'Datum od');
			$container->addDatePicker('datumDo', 'Datum do');
			$container->addSubmit('remove', 'Smazat')
				->addRemoveOnClick()->setAttribute('class', 'delete');
		}, 1);


		$vykladka->addSubmit('add', 'Přidat místo vykládky')
			->addCreateOnClick(TRUE);

		$form->addSubmit('send', 'Zpracovat')
			->onClick[] = callback($this, 'MyFormSubmitted');

		$form->addSubmit('odeslat', 'Odeslat');
		$form->onSuccess[] = callback($this, 'novaPoptavkaSubmitted');
		return $form;

Celý kód funguje dobře, ale potřeboval bych, aby se při přidání nového nákladu vytvořil i nový input u nakládky a vykládky pro určení počtu kusů.
Zkoušel jsem nahradit řádek $container->addText('ks', 'Ks naložit'); za

$kusu = $container->addDynamic('kusu', function (Container $kusu){
				$kusu->addText('ks', 'Ks naložit');
			}, 1);

, ale nevím, jak po kliknutí na tlačítko pro přidání nákladu přidat i tento input.

Je vůbec něco takového možné?
Předem děkuji za každou odpověď.