protected function createComponentTermsForm() { $form = new \soundake\helpers\MyForm(); $form->renderStyle = 'semantic'; $form->setTranslator($this->translator); $form->getElementPrototype()->addAttributes(array('class' => '')); $terms = $form->addDynamic('terms', function (Container $term) { $term->addHidden('time_id'); $term->addDatepicker('date_from', 'Datum počátku')->setAttribute('class', 'form_date')->setAttribute('novalidate')->addRule(Form::FILLED, 'Date is required')->setRequired(); $term->addTimePicker('time_from', 'Čas začátku (např. 12:00)')->setAttribute('class', 'form_time'); $term->addDatepicker('date_to', 'Datum konce')->setAttribute('class', 'form_date'); $term->addTimePicker('time_to', 'Čas konce')->setAttribute('class', 'form_time'); $term->addCheckbox('visible', 'Viditelné v přehledech akcí na PeknyDen.cz')->setValue(TRUE); $term->addSubmit('remove', 'Smazat')->setValidationScope(FALSE)->addRemoveOnClick(function (\Kdyby\Replicator\Container $replicator, Container $term) { })->getControlPrototype()->class('btn'); $term->addCheckbox('repeat', 'Opakující se akce - v daném období se koná pravidelně každý týden v těchto dnech:')->setDefaultValue(FALSE)->addCondition(Form::EQUAL, TRUE)->toggle("every"); $term->addCheckbox('every_monday', 'pondělí'); $term->addCheckbox('every_tuesday', 'úterý'); $term->addCheckbox('every_wednesday', 'středa'); $term->addCheckbox('every_thursday', 'čtvrtek'); $term->addCheckbox('every_friday', 'pátek'); $term->addCheckbox('every_saturday', 'sobota'); $term->addCheckbox('every_sunday', 'neděle'); }, 1); $terms->addSubmit('add', 'Přidej další termín akce')->setValidationScope(FALSE)->addCreateOnClick(TRUE, function (\Kdyby\Replicator\Container $replicator, Container $term) { })->getControlPrototype(); $form->addHidden('event_id'); if ($this->user->isInRole('administrator')) { $form->addCheckbox('forceRegenerate', 'Přegeneruj všechny termíny'); } $form->addSubmit('save', 'Uložit termíny a přejít na fotky')->setAttribute('class', 'large green')->onClick[] = $this->saveTerms; $form->addSubmit('send', 'Uložit termíny')->onClick[] = $this->saveTerms; $form->addSubmit('sendBack', 'Uložit a zpět na akci')->onClick[] = $this->saveTerms; $form->addSubmit('saveAndJump', 'Uložit termíny a přeskočit ke kontrole')->onClick[] = $this->saveTerms; return $form; }