/** * POST_SUBMIT event handler * * @param FormEvent $event */ public function postSubmitData(FormEvent $event) { $form = $event->getForm(); /** @var CalendarEvent $data */ $data = $form->getData(); if (empty($data)) { return; } $calendarId = $form->get('calendar')->getData(); if (empty($calendarId)) { return; } $calendarAlias = $form->get('calendarAlias')->getData(); if (empty($calendarAlias)) { $calendarAlias = Calendar::CALENDAR_ALIAS; } $this->calendarEventManager->setCalendar($data, $calendarAlias, (int) $calendarId); }
/** * @param bool $isNew * * @return array key = calendarUid, value = calendar name */ protected function getChoices($isNew) { $calendars = $this->calendarEventManager->getSystemCalendars(); if ($isNew && count($calendars) === 1) { $calendars[0]['name'] = $this->translator->trans('oro.calendar.add_to_calendar', ['%name%' => $calendars[0]['name']]); } elseif (!$isNew || count($calendars) !== 0) { usort($calendars, function ($a, $b) { return strcasecmp($a['name'], $b['name']); }); $userCalendars = $this->calendarEventManager->getUserCalendars(); foreach ($userCalendars as $userCalendar) { $userCalendar['alias'] = Calendar::CALENDAR_ALIAS; array_unshift($calendars, $userCalendar); } } $choices = []; foreach ($calendars as $calendar) { $alias = !empty($calendar['alias']) ? $calendar['alias'] : ($calendar['public'] ? SystemCalendar::PUBLIC_CALENDAR_ALIAS : SystemCalendar::CALENDAR_ALIAS); $calendarUid = $this->calendarEventManager->getCalendarUid($alias, $calendar['id']); $choices[$calendarUid] = $calendar['name']; } return $choices; }
public function testParseCalendarUid() { list($alias, $id) = $this->manager->parseCalendarUid('some_alias_123'); $this->assertSame('some_alias', $alias); $this->assertSame(123, $id); }