/** * Form for editing the invitations to events * * @Action("edit") * @Privilege("edit") */ protected function createComponentEditEventForm() { $form = new Form(); $form->addProtection('Vypršel časový limit, odešlete formulář znovu'); $form->addHidden('id'); $form->addText('name', 'Název akce:')->setRequired('Vyplňte název akce'); $form->addTextarea('text', 'Úvodní text lístečku:')->setRequired('Vyplňte text lístečku')->setAttribute('rows', 5); $form->addDynamic('event_meeting', function (Container $container) { $container->addText('comment', 'Typ srazu:'); $container->addDateTimePicker('starttime', 'Datum a čas srazu:')->setRequired('Vyplňte čas srazu'); $container->addText('startplace', 'Místo srazu:')->setRequired('Vyplňte místo srazu'); $container->addDateTimePicker('endtime', 'Datum a čas návratu:')->setRequired('Vyplňte čas návratu'); $container->addText('endplace', 'Místo návratu:')->setRequired('Vyplňte místo návratu'); $container->addSubmit('remove', 'X')->setValidationScope(FALSE)->addRemoveOnClick(); //intentional, delete after whole form submit }, 1)->addSubmit('add', 'Přidat sraz')->setValidationScope(FALSE)->addCreateOnClick(TRUE); $form->addTextarea('equipment', 'S sebou:')->setRequired('Vyplňte co si s sebou vzít na akci')->setAttribute('rows', 5); $form->addTextarea('morse', 'Morseovka:')->setAttribute('rows', 5); //contact person $contacts = $this->registrations->findBy(['member_nickname IS NOT NULL'])->fetchPairs('member_nickname', 'member_nickname'); $form->addSelect('contactperson', 'Kontaktní osoba:', $contacts)->setRequired('Vyberte kontaktní osobu')->setPrompt('Kontaktní osoba'); if ($this->user->isAllowed('Admin:Default:Event', 'show')) { $form->addCheckbox('showevent', 'Zobrazit lísteček')->setDefaultValue(TRUE); } $form->addSubmit('send', 'Změnit'); $form->onSuccess[] = $this->editEventFormSucceded; return $form; }