/** * @param Form $form * @param $name * @return \DoctrineModule\Forms\Containers\EntityContainer */ public function addMailform($form, $name) { /** @var $container Form */ $container = $form->addOne($name); $container->setCurrentGroup($form->addGroup('Sender')); $container->addCheckbox('sendCopyToSender', 'Send copy to sender')->addCondition($form::EQUAL, true)->toggle('copyHeader')->toggle('copyRecipient'); $container->setCurrentGroup($group = $form->addGroup()); $group->setOption('id', 'copyHeader'); $container->addTextArea('copyHeader', 'Header of copy')->getControlPrototype()->attrs['class'] = 'input-block-level'; $container->setCurrentGroup($form->addGroup('Recipient')); $container->addTags('emails', 'E-mails')->addRule($form::FILLED, 'Please set e-mail.'); $container->setCurrentGroup($group = $form->addGroup()); $group->setOption('id', 'copyRecipient'); $container->addText('recipient', 'Recipient name')->addConditionOn($container['sendCopyToSender'], $form::EQUAL, true)->addRule($form::FILLED, 'Please set recipient name.'); $container->setCurrentGroup($group = $form->addGroup()); $container->addText('subject', 'Subject')->addRule($form::FILLED, 'Please set subject.'); $container->addCheckbox('ownTemplate', 'Advanced options')->addCondition($form::EQUAL, true)->toggle('template'); $container->setCurrentGroup($group = $form->addGroup()); $group->setOption('id', 'template'); $container->addTextarea('template', 'Mail template')->getControlPrototype()->attrs['class'] = 'input-block-level'; $container->setCurrentGroup($group = $form->addGroup('Inputs')); $mainContainer = $container; /** @var $items \Nette\Forms\Container */ $items = $container->addMany('inputs', function (\Nette\Forms\Container $container) use($group, $form, $mainContainer) { $container->setCurrentGroup($group); $container->addText('label', 'Label'); $container->addSelect('type', 'Type', InputEntity::getTypes())->addCondition($form::IS_IN, array(InputEntity::TYPE_CHECKBOX_LIST, InputEntity::TYPE_RADIO_LIST, InputEntity::TYPE_SELECT))->toggle("frm{$form->getUniqueId()}-{$mainContainer->getName()}-inputs-{$container->getName()}-items-pair")->endCondition()->addCondition($form::IS_IN, array(InputEntity::TYPE_CHECKBOX, InputEntity::TYPE_TEXT, InputEntity::TYPE_TEXTAREA, InputEntity::TYPE_CHECKBOX_LIST, InputEntity::TYPE_RADIO_LIST, InputEntity::TYPE_SELECT))->toggle("frm{$form->getUniqueId()}-{$mainContainer->getName()}-inputs-{$container->getName()}-required-pair"); $container->addTags('items', 'Items'); $container->addCheckbox('required', 'Required'); $container->addSubmit('remove', 'Remove input')->addRemoveOnClick(); }); $items->setCurrentGroup($group = $form->addGroup()); $items->addSubmit('add', 'Add input')->setValidationScope(FALSE)->addCreateOnClick(); }