public function __construct(ICalendarManager $calendarManager = NULL, ApiManager $apiManager = NULL) { if (!$calendarManager) { $calendarManager = CalendarManager::getInstance(); } $this->calendarManager = $calendarManager; if (!$apiManager) { $apiManager = new ApiManager(); } $this->apiManager = $apiManager; }
public function &getShareableObjectData(IShareable $object, array &$shareableObjectData) { if (!$object instanceof ICalendar) { throw new EyeInvalidClassException('$object must be an instance of ICalendar.'); } try { CalendarManager::getInstance()->getCalendarById($object->getId()); } catch (EyeCalendarNotFoundException $e) { throw new EyeSharingException('Unable to share non-existing calendar ' . $object->getId() . '.', 0, $e); } $shareableObjectData[self::OBJECTDATA_KEY_ID] = $object->getId(); return $shareableObjectData; }
public function userCreated(UMEvent $e) { $newUser = $e->getSource(); if ($newUser instanceof AbstractEyeosUser) { $calendar = CalendarManager::getInstance()->getNewCalendar(); $calendar->setOwnerId($newUser->getId()); $calendar->setName($newUser->getName()); $calendar->setDescription($newUser->getName() . '\'s personal calendar.'); $calendar->setTimezone(0); CalendarManager::getInstance()->saveCalendar($calendar); $prefs = CalendarManager::getInstance()->getCalendarPreferences($newUser->getId(), $calendar->getId()); $prefs->setVisible(true); CalendarManager::getInstance()->saveCalendarPreferences($prefs); } }
public static function getMaxEventLimit($params) { return CalendarManager::getInstance()->getMaxEventLimit(); }
public function deleteCalendar($params) { if (!isset($params['calendarId']) || !is_string($params['calendarId'])) { throw new EyeMissingArgumentException('Missing or invalid $params[\'calendarId\'].'); } $cal = CalendarManager::getInstance()->getCalendarById($params['calendarId']); CalendarManager::getInstance()->deleteCalendar($cal); }
public function updateEvent($params) { $filter = array(CalendarManager::CALENDAR_KEY_ID => $params['calendarId']); $calendarData = self::retrieveCalendarData($filter); $cal = self::getRemoteCalendar($calendarData); $urls = explode('_', $params['id']); $url = $urls[0]; foreach ($cal as $obj1) { if ($url == $obj1->getUrl()) { $thisEvent = $obj1; } } $props = $thisEvent->getBaseComponent()->getProperties(); foreach ($props as $prop) { if ($prop->name == "DTSTART") { $dtstartzone = isset($prop->parameters["TZID"]) ? $prop->parameters["TZID"] : ""; $params['dtstartzone'] = $dtstartzone; $dtStartForAll = $prop->content; } if ($prop->name == "DTEND") { $dtEndForAll = $prop->content; } } //if (!$params['isEditAll'] && $params['eventGroup'] > 0) if (!$params['isEditAll']) { // edit on only this. $thisEvent = $cal->newComponent('VEVENT'); $thisEvent->update($params, $cal); $repeated = false; /*$startDate= date("Ymd\THis\Z",$params['timeStart']); $endDate= date("Ymd\THis\Z",$params['timeEnd']); */ $startDate = date("Ymd\\THis\\Z", CalDavConverter::dateCalDavToEyeos($dtStartForAll) - $params['gmtTimeDiffrence'] * 3600); $endDate = date("Ymd\\THis\\Z", CalDavConverter::dateCalDavToEyeos($dtEndForAll) - $params['gmtTimeDiffrence'] * 3600); } else { // edit all events $newValues = array('DTSTART' => $params['dtstart'], 'DTEND' => $params['dtend'], 'SUMMARY' => $params['subject'], 'LOCATION' => $params['location'], 'DESCRIPTION' => $params['description']); $thisEvent->setAllProperties($newValues); $cal->update($thisEvent->getUrl(), $thisEvent->getEtag()); $repeated = true; $startDate = date("Ymd\\THis\\Z", CalDavConverter::dateCalDavToEyeos($dtStartForAll) - $params['gmtTimeDiffrence'] * 3600); $endDate = date("Ymd\\THis\\Z", CalDavConverter::dateCalDavToEyeos($dtEndForAll) - $params['gmtTimeDiffrence'] * 3600); } $creator = ProcManager::getInstance()->getCurrentProcess()->getLoginContext()->getEyeosUser(); $start = new When(); $start->recur($startDate)->rrule($rrule); $end = new When(); $end->recur($endDate)->rrule($rrule); /*$repeated=false; if($params['repeatType']!='n'){ $repeated=true; }*/ $maxRepeatLimit = CalendarManager::MAX_REPEAT_LIMIT; $repeated = true; if ($repeated) { for ($i = 0; $i < $maxRepeatLimit; $i++) { $sDate = $start->next(); if (!is_object($sDate)) { break; } $timeStart = $sDate->getTimestamp(); $eDate = $end->next(); $timeEnd = $eDate->getTimestamp(); $newEvent = CalendarManager::getInstance()->getNewEvent(); $eventId = $url . '_' . $i; $newEvent->setId($eventId); $newEvent->setSubject($params['subject']); $newEvent->setTimeStart($timeStart); $newEvent->setTimeEnd($timeEnd); $newEvent->setCalendarId($params['calendarId']); $newEvent->setIsAllDay($params['isAllDay']); $newEvent->setRepetition($params['repetition']); $newEvent->setRepeatType($params['repeatType']); $newEvent->setLocation($params['location']); $newEvent->setDescription($params['description']); $newEvent->setFinalType($params['finalType']); $newEvent->setFinalValue($params['finalValue']); //$newEvent->seteventGroup(1); // its repeat event so we need to set it to greater then 0 $newEvent->setCreatorId($creator->getId()); $newEvent->setEventGroup(1); $newRepeatEventArr[] = $newEvent; } } else { $newEvent = CalendarManager::getInstance()->getNewEvent(); $eventId = $url; $newEvent->setId($eventId); $newEvent->setSubject($params['subject']); $newEvent->setTimeStart($params['timeStart']); $newEvent->setTimeEnd($params['timeEnd']); $newEvent->setCalendarId($params['calendarId']); $newEvent->setIsAllDay($params['isAllDay']); $newEvent->setRepetition($params['repetition']); $newEvent->setRepeatType($params['repeatType']); $newEvent->setLocation($params['location']); $newEvent->setDescription($params['description']); $newEvent->setFinalType($params['finalType']); $newEvent->setFinalValue($params['finalValue']); //$newEvent->seteventGroup(1); // its repeat event so we need to set it to greater then 0 $newEvent->setCreatorId($creator->getId()); $newEvent->setEventGroup(0); $newRepeatEventArr[] = $newEvent; } //print_r($newRepeatEventArr); return $newRepeatEventArr; }
public function getShareOwner() { $calendar = CalendarManager::getInstance()->getCalendarById($this->getCalendarId()); return UMManager::getInstance()->getUserById($calendar->getOwnerId()); }