/** * Processing of Edit Calendar form * * @Privilege("editcalendar") * * @param $button */ public function editCalendarFormSucceded($button) { $form = $button->form; $events = []; foreach ($form['events']->getValues(TRUE) as $event) { $event = array_filter($event, 'strlen'); //delete empty values if (empty($event)) { continue; } //no user input row if (!array_key_exists('datestart', $event)) { $form->addError('Musíte vyplnit datum srazu.'); } if (!array_key_exists('dateend', $event)) { $form->addError('Musíte vyplnit datum návratu.'); } if (!array_key_exists('type', $event)) { $form->adderror('musíte vyplnit typ akce.'); } if (!array_key_exists('calendarnote', $event)) { $event['calendarnote'] = ""; } $events[] = $event; } if ($form->hasErrors() === FALSE) { foreach ($events as $event) { $event['calendar_id'] = $form->getValues()->calendar_id; if (array_key_exists('id', $event)) { //make an update $this->events->get($event['id'])->update($event); } else { //make an insert $this->events->insert($event); } } $this->flashMessage('Kalendář byl úspěšně upraven.'); $this->redirect('default'); } }