Пример #1
0
 /**
  * Extracts all matching contacts with email address and name
  *
  * @param string $term
  * @return array
  */
 public function addBirthdays($userid, $calId)
 {
     if (!$this->contactsManager->isEnabled()) {
         return array();
     }
     $addrBooks = $this->contactsManager->getAddressBooks();
     $aContacts = array();
     foreach ($addrBooks as $key => $addrBook) {
         if (is_integer($key)) {
             $bContacts = \OCA\ContactsPlus\VCard::all($key);
             $aContacts = array_merge($aContacts, $bContacts);
         }
     }
     $sDateFormat = $this->configInfo->getUserValue($this->userId, $this->appName, 'dateformat', 'd-m-Y');
     if ($sDateFormat === 'd-m-Y') {
         $sDateFormat = 'd.m.Y';
     }
     $aResult = array();
     foreach ($aContacts as $contact) {
         $vcard = \Sabre\VObject\Reader::read($contact['carddata']);
         if (isset($vcard->BDAY)) {
             $Birthday = new \DateTime((string) $vcard->BDAY);
             $checkForm = $Birthday->format('d-m-Y');
             $temp = explode('-', $checkForm);
             $getAge = $this->getAge($temp[2], $temp[1], $temp[0]);
             $title = $contact['fullname'];
             $birthdayOutput = $Birthday->format($sDateFormat);
             $aktYear = $Birthday->format('d-m');
             $aktYear = $aktYear . date('-Y');
             $start = new \DateTime($aktYear);
             $end = new \DateTime($aktYear . ' +1 day');
             $vcalendar = new VObject('VCALENDAR');
             $vcalendar->add('PRODID', 'ownCloud Calendar');
             $vcalendar->add('VERSION', '2.0');
             $vevent = new VObject('VEVENT');
             $vcalendar->add($vevent);
             $vevent->setDateTime('CREATED', 'now');
             $vevent->add('DTSTART');
             $vevent->DTSTART->setDateTime($start);
             $vevent->add('DTEND');
             $vevent->DTEND->setDateTime($end);
             $vevent->DTSTART['VALUE'] = 'date';
             $vevent->DTEND['VALUE'] = 'date';
             $vevent->{'RRULE'} = 'FREQ=YEARLY;INTERVAL=1';
             $vevent->{'TRANSP'} = 'TRANSPARENT';
             $vevent->{'SUMMARY'} = (string) $title . ' (' . $getAge . ')';
             $description = (string) $this->l10n->t("Happy Birthday! Born on: ") . $birthdayOutput;
             $vevent->setString('DESCRIPTION', $description);
             $vevent->{'UID'} = substr(md5(rand() . time()), 0, 10);
             $insertid = Object::add($calId, $vcalendar->serialize());
             if ($this->isDuplicate($insertid)) {
                 Object::delete($insertid);
             }
         }
     }
 }
Пример #2
0
 /**
  * @NoAdminRequired
  */
 public function newTask()
 {
     //relatedto,hiddenfield, read_worker,$_POST,mytaskcal, mytaskmode
     $relatedto = $this->params('relatedto');
     $hiddenPostField = $this->params('hiddenfield');
     $myTaskCal = $this->params('mytaskcal');
     $myTaskMode = $this->params('mytaskmode');
     $calId = $this->params('calId');
     if (isset($hiddenPostField) && $hiddenPostField === 'newitTask') {
         $cid = $this->params('read_worker');
         $postRequestAll = $this->getParams();
         $vcalendar = TasksApp::createVCalendarFromRequest($postRequestAll);
         $id = Object::add($cid, $vcalendar->serialize());
         $vcalendar1 = TasksApp::getVCalendar($id, true, true);
         $vtodo = $vcalendar1->VTODO;
         $aTask = TasksApp::getEventObject($id, true, true);
         $aCalendar = CalendarCalendar::find($aTask['calendarid']);
         $user_timezone = CalendarApp::getTimezone();
         $task_info = TasksApp::arrayForJSON($id, $vtodo, $user_timezone, $aCalendar, $aTask);
         $response = new JSONResponse();
         $response->setData($task_info);
         return $response;
     }
     if (isset($relatedto) && $relatedto !== '') {
         $calMainId = TasksApp::getCalIdByUID($relatedto);
     }
     $calendarsArrayTmp = CalendarCalendar::allCalendars($this->userId, true);
     //Filter Importent Values
     $calendar_options = array();
     $checkArray = array();
     $checkShareArray = array();
     $bShareCalId = '';
     foreach ($calendarsArrayTmp as $calendar) {
         $isAktiv = $calendar['active'];
         if ($this->configInfo->getUserValue($this->userId, CalendarApp::$appname, 'calendar_' . $calendar['id']) != '') {
             $isAktiv = $this->configInfo->getUserValue($this->userId, CalendarApp::$appname, 'calendar_' . $calendar['id']);
         }
         if (!array_key_exists('active', $calendar)) {
             $isAktiv = 1;
         }
         if ((int) $isAktiv === 1 && $calendar['userid'] !== $this->userId) {
             $sharedCalendar = \OCP\Share::getItemSharedWithBySource(CalendarApp::SHARECALENDAR, CalendarApp::SHARECALENDARPREFIX . $calendar['id']);
             if ($sharedCalendar && $sharedCalendar['permissions'] & \OCP\PERMISSION_CREATE) {
                 array_push($calendar_options, $calendar);
                 $checkShareArray[$calendar['id']] = $calendar['id'];
             }
         }
         if ($isAktiv === 1 && $calendar['userid'] === $this->userId) {
             array_push($calendar_options, $calendar);
             $checkArray[$calendar['id']] = $calendar['id'];
         }
     }
     $priorityOptionsArray = TasksApp::getPriorityOptionsFilterd();
     $access_class_options = CalendarApp::getAccessClassOptions();
     $priorityOptions = TasksApp::generateSelectFieldArray('priority', '', $priorityOptionsArray, false);
     $activeCal = '';
     if ($this->configInfo->getUserValue($this->userId, CalendarApp::$appname, 'choosencalendar')) {
         $activeCal = $this->configInfo->getUserValue($this->userId, CalendarApp::$appname, 'choosencalendar');
     }
     $reminder_options = CalendarApp::getReminderOptions();
     $reminder_advanced_options = CalendarApp::getAdvancedReminderOptions();
     $reminder_time_options = CalendarApp::getReminderTimeOptions();
     if ($myTaskMode !== 'calendar' || $myTaskCal === 0) {
         $activeCal = $activeCal;
     } else {
         $activeCal = $myTaskCal;
     }
     if (isset($calId) && $calId != '') {
         $activeCal = $calId;
     }
     //reminder
     $reminderdate = '';
     $remindertime = '';
     $params = ['priorityOptions' => $priorityOptions, 'relatedToUid' => $relatedto, 'access_class_options' => $access_class_options, 'calendar_options' => $calendar_options, 'calendar' => $activeCal, 'mymode' => $myTaskMode, 'mycal' => $myTaskCal, 'bShareCalId' => $bShareCalId, 'accessclass' => '', 'reminder_options' => $reminder_options, 'reminder' => 'none', 'reminder_time_options' => $reminder_time_options, 'reminder_advanced_options' => $reminder_advanced_options, 'reminder_advanced' => 'DISPLAY', 'remindertimeselect' => '', 'remindertimeinput' => '', 'reminderemailinput' => '', 'reminder_rules' => '', 'reminderdate' => '', 'remindertime' => ''];
     $response = new TemplateResponse($this->appName, 'event.new', $params, '');
     return $response;
 }
Пример #3
0
 /**
  * @NoAdminRequired
  */
 public function newEvent()
 {
     $postRequestAll = $this->getParams();
     $pStart = $this->params('viewstart');
     $pEnd = $this->params('viewend');
     //	\OCP\Util::writeLog($this->appName,'foundDESCR  '.$pStart.':'.$Start, \OCP\Util::DEBUG);
     $calId = $this->params('calendar');
     $errarr = $this->objectParser->validateRequest($postRequestAll);
     if ($errarr) {
         $errarr['status'] = 'error';
         $response = new JSONResponse($errarr);
         return $response;
     } else {
         $vcalendar = $this->objectParser->createVCalendarFromRequest($postRequestAll);
         $id = Object::add($calId, $vcalendar->serialize());
         $editedEvent = CalendarApp::getEventObject($id, false, false);
         if (stristr($pStart, '(')) {
             $temp = explode('(', $pStart);
             $pStart = $temp[0];
         }
         if (stristr($pEnd, '(')) {
             $temp = explode('(', $pEnd);
             $pEnd = $temp[0];
         }
         $start = new \DateTime($pStart);
         $end = new \DateTime($pEnd);
         $events = $this->generateEventOutput($editedEvent, $start, $end);
         $params = ['status' => 'success', 'data' => ['id' => $id, 'events' => $events]];
         $response = new JSONResponse($params);
         return $response;
     }
 }
Пример #4
0
 /**
  * @NoAdminRequired
  */
 public function newEvent()
 {
     $postRequestAll = $this->getParams();
     $pStart = $this->params('viewstart');
     $pEnd = $this->params('viewend');
     $calId = $this->params('calendar');
     $errarr = Object::validateRequest($postRequestAll);
     if ($errarr) {
         $errarr['status'] = 'error';
         $response = new JSONResponse($errarr);
         return $response;
     } else {
         $vcalendar = Object::createVCalendarFromRequest($postRequestAll);
         $id = Object::add($calId, $vcalendar->serialize());
         $editedEvent = CalendarApp::getEventObject($id, false, false);
         $start = new \DateTime($pStart);
         $end = new \DateTime($pEnd);
         $events = CalendarApp::generateEventOutput($editedEvent, $start, $end);
         $params = ['status' => 'success', 'data' => ['id' => $id, 'events' => $events]];
         $response = new JSONResponse($params);
         return $response;
     }
 }