Kdyby/Replicator skrytí tlačítka remove u první položky

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

Ahoj,

existuje nějaká proměnná, kde je uloženo o kolikátou instanci replikátoru se jedná? Potřebuji skrýt tlačítko pro mazání u první instance.

<?php
$persons = $form->addDynamic('persons', function (Container $person) use ($removeEvent) {


		$person->addCheckbox('accept', $this->translator->translate('messages.person.accept'))
				->setRequired($this->translator->translate('messages.reqperson.accept'));

		$person->addSelect('gender', 'Oslovení')
				->setItems($tittleSelect)
				->setRequired($this->translator->translate('messages.reqperson.tittle'));
		$person->addText('firstname', 'Křestní jméno')
				->setRequired($this->translator->translate('messages.reqperson.firstname'));
        $person->addText('lastname', 'Příjmení')
				->setRequired($this->translator->translate('messages.reqperson.lastname'));

----->		TADY bych potřeboval něco jako if(!prvni){

		$person->addSubmit('remove', $this->translator->translate('messages.person.remove'))
							->setValidationScope(FALSE) # disables validation
					->onClick[] = $removeEvent;

---->		}

		}, 1);

		$persons->addSubmit('add', $this->translator->translate('messages.person.add'))
						->setValidationScope(FALSE)
				->onClick[] = callback($this, 'MyFormAddElementClicked');




?>

Předem díky za pomoc.

David Matějka
Moderator | 6445
+
+3
-

tak nejsnazsi bude neco jako

$first = TRUE;
$persons = $form->addDynamic('persons', function (Container $person) use ($removeEvent, &$first) {
	if ($first) {

	}
	$first = FALSE;
}
hancs
Člen | 57
+
0
-

Díky moc, nevím co jsem vymýšlel za složitosti :-)

Pavel Kravčík
Člen | 1196
+
+3
-

Nebo pokud to vykresluješ ručně používáme trapně:

{foreach $containter as $component}
	{if !$iterator->isFirst()}
		//tlačítko
	{/if}
{/foreach}
ali
Člen | 342
+
+1
-

Ja osobne tlacitko nechavam a resim to takto:

$item->addSubmit("remove", "-")
	->setValidationScope(FALSE)
	->onClick[] = function(Forms\Controls\SubmitButton $button) {
		if (count($button->form->getValues()->items) > 1) {
			$items = $button->parent->parent;
			$items->remove($button->parent, TRUE);
		}
		if ($this->presenter->isAjax()) {
			$this->redrawControl("filter");
		}
	};