예제 #1
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;
 }