Kdyby/Replicator – Ruční vypsání tlačítka „přidat další“

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

Čau,

nevíte někdo, jak manuálně v šabloně vypsat tlačítko, které je připíchnuté na replicator?

Tady je kód pro generování formuláře:

<?php
	public function createComponentNewRuleForm($name){
		$form = new Form($this, $name);

		$presenter = $this;
		$invalidateCallback = function() use($presenter){
			/** @var \Nette\Application\UI\Presenter $presenter */
			$presenter->invalidateControl('newRuleForm');
		};
		$tables = $this->getService('ruleModel')->provideTableNames();
		reset($tables);
		$columns = $this->getService('ruleModel')->provideColumnValues(current($tables));
		reset($columns);
		$conditions = $this->getService('ruleModel')->provideAllowedActions(current($tables), current($columns));

		$replicator = $form->addDynamic('rule', function(Container $container) use($invalidateCallback, $tables, $columns, $conditions, $presenter){
			$container->addSubmit('remove', 'X')
				->addRemoveOnClick($invalidateCallback);
			$container->addSelect('table', 'Table', $tables);
			$container->addSelect('column', 'Column', $columns);
			$container->addSelect('condition', 'Condition', $conditions);
			$container->addText('value', 'Value');

		}, 1);

		$replicator->addSubmit('add', 'Add')
			->addCreateOnClick($invalidateCallback);

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

		return $form;
	}
?>

Tady je kód šablony:

	{snippet rulesForm}
		{form newRuleForm}
			{*{$form}*}
			<table class="rules-form">
				<tr><td>Remove</td><td>Table</td><td>Column</td><td>Condition</td><td>Value</td></tr>
				<tr>
				{foreach $form['rule']->containers as $rule}
					<td>{$rule['remove']->control}</td>
					<td>{$rule['table']->control}</td>
					<td>{$rule['column']->control}</td>
					<td>{$rule['condition']->control}</td>
					<td>{$rule['value']->control}</td>
				{/foreach}
				</tr>
				<tr><td>{*TADY JE POTŘEBA TLAČÍTKO ADD*}</td><td>{input send}</td></tr>
			</table>
		{/form}
		<script type="text/javascript">
			{foreach $form['rule']->containers as $i => $rule}
				{include #jsCallback, id => $i, input => $rule['table']->name, link => tableChange}
				{include #jsCallback, id => $i, input => $rule['column']->name, link => tableChange}
			{/foreach}
		</script>
	{/snippet}

Nevíte někdo jak se na ten replicator dostat? :)

Majkl578
Moderator | 1364
+
0
-
{input rule-add}

Jinak nechápu, proč nepoužíváš makra {input}.

kastanekdavid
Člen | 39
+
0
-

Majkl578 napsal(a):

{input rule-add}

Jinak nechápu, proč nepoužíváš makra {input}.

Díík. Makra jsem dodělal :)