/**
  * @NoAdminRequired
  */
 public function getUserSettingsCalendar()
 {
     $firstDayConfig = $this->configInfo->getUserValue($this->userId, $this->appName, 'firstday', 'mo');
     $firstDay = $this->prepareFirstDay($firstDayConfig);
     $agendaTime = 'hh:mm tt { - hh:mm tt}';
     $defaultTime = 'hh:mm tt';
     $timeFormat = $this->configInfo->getUserValue($this->userId, $this->appName, 'timeformat', '24');
     if ($timeFormat === '24') {
         $agendaTime = 'HH:mm { - HH:mm}';
         $defaultTime = 'HH:mm { - HH:mm}';
     }
     $dateFormat = $this->configInfo->getUserValue($this->userId, $this->appName, 'dateformat', 'd-m-Y');
     $checkCat = CalendarApp::loadTags();
     $checkCatTagsList = '';
     $checkCatCategory = '';
     foreach ($checkCat['categories'] as $category) {
         $checkCatCategory[] = $category;
     }
     foreach ($checkCat['tagslist'] as $tag) {
         $checkCatTagsList[$tag['name']] = array('id' => $tag['id'], 'name' => $tag['name'], 'color' => $tag['color'], 'bgcolor' => $tag['bgcolor']);
     }
     $eventSources = [];
     $calendars = CalendarCalendar::allCalendars($this->userId);
     $calendarInfo = [];
     $myCalendars = [];
     $myRefreshChecker = [];
     foreach ($calendars as $calendar) {
         $isAktiv = (int) $calendar['active'];
         if ($this->configInfo->getUserValue($this->userId, $this->appName, 'calendar_' . $calendar['id']) !== '') {
             $isAktiv = (int) $this->configInfo->getUserValue($this->userId, $this->appName, 'calendar_' . $calendar['id']);
         }
         if (!array_key_exists('active', $calendar)) {
             $isAktiv = 1;
         }
         if ($this->userId !== $calendar['userid']) {
             $calendar['uri'] = $calendar['uri'] . '_shared_by_' . $calendar['userid'];
         }
         $addClass = '';
         if (isset($calendar['className'])) {
             $addClass = $calendar['className'];
         }
         $bgColor = '';
         $textColor = '';
         if (isset($calendar['calendarcolor'])) {
             $bgColor = $calendar['calendarcolor'];
             /*DEFAULT*/
             $textColorDefault = CalendarCalendar::generateTextColor($bgColor);
             $textColor = $bgColor;
         }
         if (isset($calendar['textColor'])) {
             /*DEFAULT*/
             $textColorDefault = $calendar['textColor'];
             $textColor = $bgColor;
         }
         $calendarInfo[$calendar['id']] = ['bgcolor' => $bgColor, 'color' => $textColorDefault, 'colorDefault' => $textColorDefault, 'name' => $calendar['displayname'], 'externuri' => $calendar['externuri'], 'uri' => $calendar['uri'], 'className' => $addClass];
         if ((int) $isAktiv === 1) {
             $eventSources[] = CalendarCalendar::getEventSourceInfo($calendar);
             $myCalendars[$calendar['id']] = ['id' => $calendar['id'], 'name' => $calendar['displayname'], 'uri' => $calendar['uri'], 'issubscribe' => (int) $calendar['issubscribe'], 'permissions' => (int) $calendar['permissions']];
             $myRefreshChecker[$calendar['id']] = $calendar['ctag'];
         }
     }
     $events_baseURL = \OC::$server->getURLGenerator()->linkToRoute($this->appName . '.event.getEvents');
     $eventSources[] = array('url' => $events_baseURL . '?calendar_id=shared_events', 'className' => 'shared-events', 'editable' => 'false');
     if ($this->configInfo->getUserValue($this->userId, $this->appName, 'userconfig')) {
         $userConfig = json_decode($this->configInfo->getUserValue($this->userId, $this->appName, 'userconfig'));
     } else {
         //Guest Config Public Page
         $userConfig = '{"agendaDay":"true","agendaThreeDays":"false","agendaWorkWeek":"false","agendaWeek":"true","month":"true","year":"false","list":"false"}';
         $userConfig = json_decode($userConfig);
     }
     $leftNavAktiv = $this->configInfo->getUserValue($this->userId, $this->appName, 'calendarnav');
     $rightNavAktiv = $this->configInfo->getUserValue($this->userId, $this->appName, 'tasknav');
     $taskAppActive = \OC::$server->getAppManager()->isEnabledForUser('tasksplus');
     $params = ['status' => 'success', 'defaultView' => $this->configInfo->getUserValue($this->userId, $this->appName, 'currentview', 'month'), 'agendatime' => $agendaTime, 'defaulttime' => $defaultTime, 'dateformat' => $dateFormat, 'timeformat' => $timeFormat, 'firstDay' => $firstDay, 'firstDayString' => $firstDayConfig, 'categories' => $checkCatCategory, 'tags' => $checkCatTagsList, 'eventSources' => $eventSources, 'calendarcolors' => $calendarInfo, 'mycalendars' => $myCalendars, 'myRefreshChecker' => $myRefreshChecker, 'choosenCalendar' => $this->configInfo->getUserValue($this->userId, $this->appName, 'choosencalendar'), 'userConfig' => $userConfig, 'sharetypeevent' => CalendarApp::SHAREEVENT, 'sharetypecalendar' => CalendarApp::SHARECALENDAR, 'leftnavAktiv' => $leftNavAktiv, 'rightnavAktiv' => $rightNavAktiv, 'taskAppActive' => $taskAppActive];
     $response = new JSONResponse($params);
     return $response;
 }
Example #2
0
    public function generateAddonCalendarTodo()
    {
        $today = strtotime($this->getToday());
        $tomorrow = strtotime($this->getTommorow());
        $beginnWeek = strtotime($this->getStartofTheWeek());
        $endWeek = strtotime($this->getEndofTheWeek());
        $taskOutput = '';
        // foreach( $this->aCalendar as $cal ) {
        $calendar_tasks = App::all($this->aCalendar, true);
        $checkCat = CalendarApp::loadTags();
        $checkCatCache = '';
        foreach ($checkCat['tagslist'] as $catInfo) {
            //	foreach($catInfo as $cat){
            $checkCatCache[$catInfo['name']] = $catInfo['bgcolor'];
            //	}
        }
        foreach ($calendar_tasks as $taskInfo) {
            $taskOutput = '';
            if ($taskInfo['objecttype'] != 'VTODO') {
                continue;
            }
            $calId = (string) $taskInfo['calendarid'];
            $object = VObject::parse($taskInfo['calendardata']);
            $vtodo = $object->VTODO;
            $completed = $vtodo->COMPLETED;
            $accessclass = $vtodo->getAsString('CLASS');
            $categories = $vtodo->getAsArray('CATEGORIES');
            if ($this->aCalendar[$calId]['userid'] !== \OCP\USER::getUser()) {
                if ($accessclass != '' && $accessclass != 'PUBLIC') {
                    continue;
                }
            }
            if (!$completed) {
                $due = $vtodo->DUE;
                $dtstart = $vtodo->DTSTART;
                $Summary = '<span class="description"><a href="' . \OC::$server->getURLGenerator()->linkToRoute(App::$appname . '.page.index') . '#' . $taskInfo['id'] . '">' . $vtodo->getAsString('SUMMARY') . '</a></span>';
                $addPrivateImg = '&nbsp;';
                if ($accessclass != '' && $accessclass === 'PRIVATE') {
                    $addPrivateImg = '<i class="ioc ioc-lock" title="private"></i>';
                }
                if ($accessclass != '' && $accessclass === 'CONFIDENTIAL') {
                    $addPrivateImg = '<i class="ioc ioc-eye" title="confidential"></i>';
                }
                $prioOutput = '';
                if (isset($vtodo->PRIORITY)) {
                    $prio = $vtodo->getAsString('PRIORITY');
                    if ($prio >= 1 && $prio < 5) {
                        $prioOutput = '<i class="ioc ioc-info-circled priority-' . ($prio ? $prio : 'n') . '" title="' . (string) self::$l10n->t('priority %s ', array((string) self::$l10n->t('high'))) . '"></i>';
                    } elseif ($prio == 5) {
                        $prioOutput = '<i class="ioc ioc-info-circled priority-' . ($prio ? $prio : 'n') . '" title="' . (string) self::$l10n->t('priority %s ', array((string) self::$l10n->t('medium'))) . '"></i>';
                    } elseif ($prio >= 6 && $prio <= 9) {
                        $prioOutput = '<i class="ioc ioc-info-circled priority-' . ($prio ? $prio : 'n') . '" title="' . (string) self::$l10n->t('priority %s ', array((string) self::$l10n->t('low'))) . '"></i>';
                    }
                }
                $addShareImg = '';
                if ($taskInfo['shared']) {
                    $addShareImg = '<i class="ioc ioc-share" title="shared"></i>';
                }
                $addAlarmImg = '';
                if ($taskInfo['isalarm']) {
                    $addAlarmImg = '<i class="ioc ioc-clock" title="reminder"></i>';
                }
                $addCats = '';
                if (is_array($categories)) {
                    foreach ($categories as $catInfo) {
                        $bgColor = '#ccc';
                        if (array_key_exists(trim($catInfo), $checkCatCache)) {
                            $bgColor = $checkCatCache[trim($catInfo)];
                        }
                        $addCats .= '<span class="catColPrev" style="float:right;padding:0;margin:0;margin-right:1px;margin-top:4px;line-height:12px;font-size:8px;width:12px;height:12px;background-color:' . $bgColor . '" title="' . $catInfo . '">' . substr(trim($catInfo), 0, 1) . '</span>';
                    }
                }
                $dateTask = '<span class="addImagesNoDate">' . $prioOutput . $addPrivateImg . $addAlarmImg . $addShareImg . '</span>' . $addCats . $Summary;
                if ($due != '') {
                    $dateTask = $due->getDateTime()->format('d.m.Y H:i') . $addCats . '<br  /><span class="addImages">' . $prioOutput . $addPrivateImg . $addAlarmImg . $addShareImg . '</span>' . $Summary;
                }
                if ($dtstart != '') {
                    $dateTask = $dtstart->getDateTime()->format('d.m.Y H:i') . $addCats . '<br  /><span class="addImages">' . $prioOutput . $addPrivateImg . $addAlarmImg . $addShareImg . '</span>' . $Summary;
                }
                //categories
                $taskOutput .= '<li class="taskListRow" data-taskid="' . $taskInfo['id'] . '">
			                              <span class="colorCal" style="margin-top:6px;background-color:' . $this->aCalendar[$taskInfo['calendarid']]['calendarcolor'] . ';">&nbsp;</span>
			                              <input class="inputTasksRow regular-checkbox" type="checkbox" id="task-val-' . $taskInfo['id'] . '" /><label style="float:left;margin-right:5px;" for="task-val-' . $taskInfo['id'] . '"></label> ' . $dateTask . '
			                              </li>';
                $bToday = false;
                $bTommorow = false;
                $bActWeek = false;
                $bMissed = false;
                $bCommingSoon = false;
                if ($dtstart) {
                    $dtstartTmp = $dtstart->getDateTime()->format('d.m.Y');
                    $dtstart = strtotime($dtstartTmp);
                    if ($dtstart == $today) {
                        $this->taskOutPutbyTime['today'] .= $taskOutput;
                        $bToday = true;
                    }
                    if ($dtstart == $tomorrow) {
                        $this->taskOutPutbyTime['tomorrow'] .= $taskOutput;
                        $bTommorow = true;
                    }
                    $bActWeek = false;
                    if ($dtstart >= $beginnWeek && $dtstart <= $endWeek && !$bToday) {
                        $this->taskOutPutbyTime['week'] .= $taskOutput;
                        $bActWeek = true;
                    }
                    $bMissed = false;
                    if ($dtstart < $today) {
                        $this->taskOutPutbyTime['missed'] .= $taskOutput;
                        $bMissed = true;
                    }
                    $bCommingSoon = false;
                    if ($dtstart > $endWeek) {
                        $this->taskOutPutbyTime['commingsoon'] .= $taskOutput;
                        $bCommingSoon = true;
                    }
                }
                if ($due) {
                    $dueTmp = $due->getDateTime()->format('d.m.Y');
                    $due = strtotime($dueTmp);
                    $bCheck = false;
                    if ($due == $today && !$bToday) {
                        $this->taskOutPutbyTime['today'] .= $taskOutput;
                        $bCheck = true;
                    }
                    if ($due == $tomorrow && !$bTommorow) {
                        $this->taskOutPutbyTime['tomorrow'] .= $taskOutput;
                        $bCheck = true;
                    }
                    if ($due >= $beginnWeek && $due <= $endWeek && !$bCheck && !$bActWeek) {
                        $this->taskOutPutbyTime['week'] .= $taskOutput;
                    }
                    if ($due < $today && !$bMissed) {
                        $this->taskOutPutbyTime['missed'] .= $taskOutput;
                    }
                    if ($due > $endWeek && !$bCommingSoon) {
                        $this->taskOutPutbyTime['commingsoon'] .= $taskOutput;
                    }
                }
                if (!$dtstart && !$due) {
                    //OhneTermin
                    $this->taskOutPutbyTime['notermin'] .= $taskOutput;
                }
            }
        }
        //}
        return $this->taskOutPutbyTime;
    }
Example #3
0
 /**
  * @NoAdminRequired
  */
 public function getDefaultValuesTasks()
 {
     $calendars = CalendarCalendar::allCalendars($this->userId);
     $myCalendars = array();
     foreach ($calendars as $calendar) {
         if (!array_key_exists('active', $calendar)) {
             $calendar['active'] = 1;
         }
         if ($calendar['active'] == 1) {
             //$calendarInfo[$calendar['id']]=array('bgcolor'=>$calendar['calendarcolor'],'color'=>OCA\CalendarPlus\Calendar::generateTextColor($calendar['calendarcolor']));
             $myCalendars[$calendar['id']] = array('id' => $calendar['id'], 'name' => $calendar['displayname'], 'uri' => $calendar['uri']);
         }
     }
     $checkCat = CalendarApp::loadTags();
     $checkCatTagsList = '';
     $checkCatCategory = '';
     foreach ($checkCat['categories'] as $category) {
         $checkCatCategory[] = $category;
     }
     foreach ($checkCat['tagslist'] as $tag) {
         $checkCatTagsList[$tag['name']] = array('id' => $tag['id'], 'name' => $tag['name'], 'color' => $tag['color'], 'bgcolor' => $tag['bgcolor']);
     }
     $params = ['mycalendars' => $myCalendars, 'categories' => $checkCatCategory, 'tags' => $checkCatTagsList];
     $response = new JSONResponse();
     $response->setData($params);
     return $response;
 }
Example #4
0
 /**
  * @PublicPage
  * @NoCSRFRequired
  */
 public function getShowEvent()
 {
     $id = $this->params('id');
     $choosenDate = $this->params('choosendate');
     if (\OCP\User::isLoggedIn()) {
         $sDateFormat = $this->configInfo->getUserValue($this->userId, $this->appName, 'dateformat', 'd-m-Y');
         $sTimeFormat = $this->configInfo->getUserValue($this->userId, $this->appName, 'timeformat', '24');
         if ($sTimeFormat == 24) {
             $sTimeFormatRead = 'H:i';
         } else {
             $sTimeFormatRead = 'g:i a';
         }
         if ($sDateFormat === 'd-m-Y') {
             $sDateFormat = 'd.m.Y';
         }
     } else {
         if ($this->session->get('public_dateformat') != '') {
             $sDateFormat = $this->session->get('public_dateformat');
         } else {
             $sDateFormat = 'd.m.Y';
         }
         if ($this->session->get('public_timeformat') != '') {
             $sTimeFormatRead = $this->session->get('public_timeformat');
         } else {
             $sTimeFormatRead = 'H:i';
         }
     }
     $data = CalendarApp::getEventObject($id, false, false);
     if (!$data) {
         exit;
     }
     $object = VObject::parse($data['calendardata']);
     //FIXME Working with objectparser
     $vevent = $object->VEVENT;
     $object = Object::cleanByAccessClass($id, $object);
     $accessclass = $vevent->getAsString('CLASS');
     $permissions = CalendarApp::getPermissions($id, CalendarApp::EVENT, $accessclass);
     $dtstart = $vevent->DTSTART;
     if (isset($choosenDate) && $choosenDate !== '') {
         $choosenDate = $choosenDate;
     } else {
         $choosenDate = $dtstart->getDateTime()->format('Ymd');
     }
     $showdate = $dtstart->getDateTime()->format('Y-m-d H:i:s');
     $organzier = '';
     if ($vevent->ORGANIZER) {
         $organizerVal = $vevent->getAsString('ORGANIZER');
         $temp = explode('mailto:', $organizerVal);
         $organzier = $temp[1];
     }
     $attendees = '';
     if ($vevent->ATTENDEE) {
         $attendees = array();
         foreach ($vevent->ATTENDEE as $key => $param) {
             $temp1 = explode('mailto:', $param);
             $attendees[$key] = $temp1[1];
         }
     }
     $dtend = Object::getDTEndFromVEvent($vevent);
     $dtstartType = (string) $vevent->DTSTART->getValueType();
     $datetimedescr = '';
     if ($dtstartType === 'DATE') {
         $startdate = $dtstart->getDateTime()->format('d-m-Y');
         $starttime = '';
         $enddate = $dtend->getDateTime()->modify('-1 day')->format('d-m-Y');
         $endtime = '';
         $choosenDate = $choosenDate + 3600 * 24;
         $allday = true;
         if ($startdate === $enddate) {
             $datetimedescr = (string) $this->l10n->t('On') . ' ' . $dtstart->getDateTime()->format($sDateFormat);
         } else {
             $datetimedescr = (string) $this->l10n->t('From') . ' ' . $dtstart->getDateTime()->format($sDateFormat) . ' ' . (string) $this->l10n->t('To') . ' ' . $dtend->getDateTime()->modify('-1 day')->format($sDateFormat);
         }
     }
     if ($dtstartType === 'DATE-TIME') {
         $tz = CalendarApp::getTimezone();
         $start_dt = new \DateTime($data['startdate'], new \DateTimeZone('UTC'));
         $end_dt = new \DateTime($data['enddate'], new \DateTimeZone('UTC'));
         $start_dt->setTimezone(new \DateTimeZone($tz));
         $end_dt->setTimezone(new \DateTimeZone($tz));
         $startdate = $start_dt->format('d-m-Y');
         $starttime = $start_dt->format($sTimeFormatRead);
         $enddate = $end_dt->format('d-m-Y');
         $endtime = $end_dt->format($sTimeFormatRead);
         if ($startdate === $enddate) {
             $datetimedescr = (string) $this->l10n->t('On') . ' ' . $start_dt->format($sDateFormat) . ' ' . (string) $this->l10n->t('From') . ' ' . $starttime . ' ' . (string) $this->l10n->t('To') . ' ' . $endtime;
         } else {
             $datetimedescr = (string) $this->l10n->t('From') . ' ' . $start_dt->format($sDateFormat) . ' ' . $starttime . ' ' . (string) $this->l10n->t('To') . ' ' . $end_dt->format($sDateFormat) . ' ' . $endtime;
         }
         $allday = false;
     }
     $summary = strtr($vevent->getAsString('SUMMARY'), array('\\,' => ',', '\\;' => ';'));
     $location = strtr($vevent->getAsString('LOCATION'), array('\\,' => ',', '\\;' => ';'));
     $categories = $vevent->getAsArray('CATEGORIES');
     $description = strtr($vevent->getAsString('DESCRIPTION'), array('\\,' => ',', '\\;' => ';'));
     $link = strtr($vevent->getAsString('URL'), array('\\,' => ',', '\\;' => ';'));
     $categoriesOut = '';
     if (is_array($categories)) {
         foreach ($categories as $category) {
             $bgColor = CalendarApp::genColorCodeFromText(trim($category), 80);
             $categoriesOut[] = array('name' => $category, 'bgcolor' => $bgColor, 'color' => CalendarApp::generateTextColor($bgColor));
         }
     }
     $last_modified = $vevent->__get('LAST-MODIFIED');
     if ($last_modified) {
         $lastmodified = $last_modified->getDateTime()->format('U');
     } else {
         $lastmodified = 0;
     }
     $addSingleDeleteButton = false;
     $repeatInfo = array();
     $repeat['repeat'] = '';
     if ((int) $data['repeating'] === 1) {
         $addSingleDeleteButton = true;
         $rrule = explode(';', $vevent->getAsString('RRULE'));
         $rrulearr = array();
         $repeat['repeat_rules'] = '';
         foreach ($rrule as $rule) {
             list($attr, $val) = explode('=', $rule);
             if ((string) $attr !== 'COUNT' && (string) $attr !== 'UNTIL') {
                 if ($repeat['repeat_rules'] === '') {
                     $repeat['repeat_rules'] = $attr . '=' . $val;
                 } else {
                     $repeat['repeat_rules'] .= ';' . $attr . '=' . $val;
                 }
             }
             if ((string) $attr === 'COUNT' || (string) $attr === 'UNTIL') {
                 $rrulearr[$attr] = $val;
             }
         }
         if (array_key_exists('COUNT', $rrulearr)) {
             $repeat['end'] = 'count';
             $repeat['count'] = $rrulearr['COUNT'];
         } elseif (array_key_exists('UNTIL', $rrulearr)) {
             $repeat['end'] = 'date';
             $endbydate_day = substr($rrulearr['UNTIL'], 6, 2);
             $endbydate_month = substr($rrulearr['UNTIL'], 4, 2);
             $endbydate_year = substr($rrulearr['UNTIL'], 0, 4);
             $rEnd_dt = new \DateTime($endbydate_day . '-' . $endbydate_month . '-' . $endbydate_year, new \DateTimeZone('UTC'));
             $repeat['date'] = $rEnd_dt->format($sDateFormat);
             //Switch it
         } else {
             $repeat['end'] = 'never';
         }
         $repeat_end_options = CalendarApp::getEndOptions();
         if ($repeat['end'] === 'count') {
             $repeatInfo['end'] = $this->l10n->t('after') . ' ' . $repeat['count'] . ' ' . $this->l10n->t('Events');
         }
         if ($repeat['end'] === 'date') {
             $repeatInfo['end'] = $repeat['date'];
         }
         if ($repeat['end'] === 'never') {
             $repeatInfo['end'] = $repeat_end_options[$repeat['end']];
         }
     } else {
         $repeat['repeat'] = 'doesnotrepeat';
     }
     if ($permissions !== $this->shareConnector->getAllAccess()) {
         $calendar_options[0]['id'] = $data['calendarid'];
     } else {
         $calendar_options = CalendarCalendar::allCalendars($this->userId);
     }
     $checkCatCache = '';
     if (\OCP\User::isLoggedIn()) {
         $category_options = CalendarApp::loadTags();
         foreach ($category_options['tagslist'] as $catInfo) {
             $checkCatCache[$catInfo['name']] = $catInfo['bgcolor'];
         }
     }
     $access_class_options = CalendarApp::getAccessClassOptions();
     $aOExdate = '';
     if ($vevent->EXDATE) {
         $timezone = CalendarApp::getTimezone();
         foreach ($vevent->EXDATE as $param) {
             $param = new \DateTime($param);
             $aOExdate[$param->format('U')] = $param->format($sDateFormat);
         }
     }
     //NEW Reminder
     $reminder_options = CalendarApp::getReminderOptions();
     $reminder_time_options = CalendarApp::getReminderTimeOptions();
     //reminder
     $sAlarm = '';
     $count = '';
     if ($vevent->VALARM) {
         $valarm = '';
         $sAlarm = '';
         $counter = 0;
         foreach ($vevent->getComponents() as $param) {
             if ($param->name === 'VALARM') {
                 $attr = $param->children();
                 foreach ($attr as $attrInfo) {
                     $valarm[$counter][$attrInfo->name] = $attrInfo->getValue();
                 }
                 $counter++;
             }
         }
         foreach ($valarm as $vInfo) {
             if ($vInfo['ACTION'] === 'DISPLAY' && strstr($vInfo['TRIGGER'], 'P')) {
                 if (substr_count($vInfo['TRIGGER'], 'PT') === 1 && !stristr($vInfo['TRIGGER'], 'TRIGGER')) {
                     $sAlarm[] = 'TRIGGER:' . $vInfo['TRIGGER'];
                 }
                 if (substr_count($vInfo['TRIGGER'], 'PT') === 1 && stristr($vInfo['TRIGGER'], 'TRIGGER')) {
                     $sAlarm[] = $vInfo['TRIGGER'];
                 }
                 if (substr_count($vInfo['TRIGGER'], '-P') === 1 && substr_count($vInfo['TRIGGER'], 'PT') === 0) {
                     $temp = explode('-P', (string) $vInfo['TRIGGER']);
                     $sAlarm[] = 'TRIGGER:-PT' . $temp[1];
                 }
                 if (substr_count($vInfo['TRIGGER'], '+P') === 1 && substr_count($vInfo['TRIGGER'], 'PT') === 0) {
                     $temp = explode('+P', $vInfo['TRIGGER']);
                     $sAlarm[] = 'TRIGGER:+PT' . $temp[1];
                 }
             }
             if ($vInfo['ACTION'] === 'DISPLAY' && !strstr($vInfo['TRIGGER'], 'P')) {
                 if (!strstr($vInfo['TRIGGER'], 'DATE-TIME')) {
                     $sAlarm[] = 'TRIGGER;VALUE=DATE-TIME:' . $vInfo['TRIGGER'];
                 } else {
                     $sAlarm[] = $vInfo['TRIGGER'];
                 }
             }
         }
     }
     if ($permissions & $this->shareConnector->getReadAccess()) {
         $bShareOnlyEvent = 0;
         if (Object::checkShareEventMode($id)) {
             $bShareOnlyEvent = 1;
         }
         $pCategoriesCol = '';
         $pCategories = '';
         if (is_array($categoriesOut) && count($categoriesOut) > 0) {
             $pCategoriesCol = $checkCatCache;
             $pCategories = $categoriesOut;
         }
         $pRepeatInfo = '';
         if ($repeat['repeat'] !== 'doesnotrepeat') {
             $pRepeatInfo = $repeatInfo;
         }
         $aCalendar = CalendarApp::getCalendar($data['calendarid'], false, false);
         $isBirthday = false;
         if ($aCalendar['uri'] === 'bdaycpltocal_' . $aCalendar['userid']) {
             $isBirthday = true;
         }
         $params = ['bShareOnlyEvent' => $bShareOnlyEvent, 'eventid' => $id, 'appname' => $this->appName, 'permissions' => $permissions, 'lastmodified' => $lastmodified, 'exDate' => $aOExdate, 'isBirthday' => $isBirthday, 'calendar_options' => $calendar_options, 'access_class_options' => $access_class_options, 'sReminderTrigger' => $sAlarm, 'cValarm' => $count, 'isShareApi' => $this->appConfig->getValue('core', 'shareapi_enabled', 'yes'), 'mailNotificationEnabled' => $this->appConfig->getValue('core', 'shareapi_allow_mail_notification', 'yes'), 'allowShareWithLink' => $this->appConfig->getValue('core', 'shareapi_allow_links', 'yes'), 'mailPublicNotificationEnabled' => $this->appConfig->getValue('core', 'shareapi_allow_public_notification', 'no'), 'title' => $summary, 'accessclass' => $accessclass, 'location' => $location, 'categoriesCol' => $pCategoriesCol, 'categories' => $pCategories, 'aCalendar' => $aCalendar, 'allday' => $allday, 'startdate' => $startdate, 'starttime' => $starttime, 'enddate' => $enddate, 'endtime' => $endtime, 'datetimedescr' => $datetimedescr, 'description' => $description, 'link' => $link, 'organzier' => $organzier, 'attendees' => $attendees, 'addSingleDeleteButton' => $addSingleDeleteButton, 'choosendate' => $choosenDate, 'showdate' => $showdate, 'repeat' => $repeat['repeat'], 'repeat_rules' => isset($repeat['repeat_rules']) ? $repeat['repeat_rules'] : '', 'repeatInfo' => $pRepeatInfo, 'sharetypeevent' => $this->shareConnector->getConstShareEvent(), 'sharetypeeventprefix' => $this->shareConnector->getConstSharePrefixEvent()];
         $response = new TemplateResponse($this->appName, 'part.showevent', $params, '');
         return $response;
     }
 }
 /**
  * @NoAdminRequired
  */
 public function getUserSettingsCalendar()
 {
     $firstDayConfig = $this->configInfo->getUserValue($this->userId, $this->appName, 'firstday', 'mo');
     $firstDay = $this->prepareFirstDay($firstDayConfig);
     $agendaTime = 'hh:mm tt { - hh:mm tt}';
     $defaultTime = 'hh:mm tt';
     if ($this->configInfo->getUserValue($this->userId, $this->appName, 'timeformat', '24') === '24') {
         $agendaTime = 'HH:mm { - HH:mm}';
         $defaultTime = 'HH:mm';
     }
     $checkCat = CalendarApp::loadTags();
     $checkCatTagsList = '';
     $checkCatCategory = '';
     foreach ($checkCat['categories'] as $category) {
         $checkCatCategory[] = $category;
     }
     foreach ($checkCat['tagslist'] as $tag) {
         $checkCatTagsList[$tag['name']] = array('name' => $tag['name'], 'color' => $tag['color'], 'bgcolor' => $tag['bgcolor']);
     }
     $eventSources = [];
     $calendars = CalendarCalendar::allCalendars($this->userId);
     $calendarInfo = [];
     $myCalendars = [];
     $myRefreshChecker = [];
     foreach ($calendars as $calendar) {
         $isAktiv = $calendar['active'];
         if ($this->configInfo->getUserValue($this->userId, $this->appName, 'calendar_' . $calendar['id']) !== '') {
             $isAktiv = (int) $this->configInfo->getUserValue($this->userId, $this->appName, 'calendar_' . $calendar['id']);
         }
         if (!array_key_exists('active', $calendar)) {
             $isAktiv = 1;
         }
         if ((int) $isAktiv === 1) {
             $eventSources[] = CalendarCalendar::getEventSourceInfo($calendar);
             $calendarInfo[$calendar['id']] = ['bgcolor' => $calendar['calendarcolor'], 'color' => CalendarCalendar::generateTextColor($calendar['calendarcolor'])];
             $myCalendars[$calendar['id']] = ['id' => $calendar['id'], 'name' => $calendar['displayname'], 'issubscribe' => (int) $calendar['issubscribe'], 'permissions' => (int) $calendar['permissions']];
             $myRefreshChecker[$calendar['id']] = $calendar['ctag'];
         }
     }
     $events_baseURL = \OC::$server->getURLGenerator()->linkToRoute($this->appName . '.event.getEvents');
     $eventSources[] = array('url' => $events_baseURL . '?calendar_id=shared_events', 'backgroundColor' => '#1D2D44', 'borderColor' => '#888', 'textColor' => 'white', 'editable' => 'false');
     if ($this->configInfo->getUserValue($this->userId, $this->appName, 'userconfig')) {
         $userConfig = json_decode($this->configInfo->getUserValue($this->userId, $this->appName, 'userconfig'));
     } else {
         //Guest Config Public Page
         $userConfig = '{"agendaDay":"true","agendaThreeDays":"false","agendaWorkWeek":"false","agendaWeek":"true","month":"true","year":"false","list":"false"}';
         $userConfig = json_decode($userConfig);
     }
     $params = ['status' => 'success', 'defaultView' => $this->configInfo->getUserValue($this->userId, $this->appName, 'currentview', 'month'), 'agendatime' => $agendaTime, 'defaulttime' => $defaultTime, 'firstDay' => $firstDay, 'categories' => $checkCatCategory, 'tags' => $checkCatTagsList, 'eventSources' => $eventSources, 'calendarcolors' => $calendarInfo, 'mycalendars' => $myCalendars, 'myRefreshChecker' => $myRefreshChecker, 'choosenCalendar' => $this->configInfo->getUserValue($this->userId, $this->appName, 'choosencalendar'), 'userConfig' => $userConfig, 'sharetypeevent' => CalendarApp::SHAREEVENT, 'sharetypecalendar' => CalendarApp::SHARECALENDAR];
     $response = new JSONResponse($params);
     return $response;
 }