Example #1
0
 /**
  * @NoAdminRequired
  */
 public function setCompletedTask()
 {
     $id = $this->params('id');
     $checked = $this->params('checked');
     $vcalendar = CalendarApp::getVCalendar($id);
     $vtodo = $vcalendar->VTODO;
     TasksApp::setComplete($vtodo, $checked ? 100 : 0, null);
     Object::edit($id, $vcalendar->serialize());
     $user_timezone = CalendarApp::getTimezone();
     $aTask = TasksApp::getEventObject($id, true, true);
     $aCalendar = CalendarCalendar::find($aTask['calendarid']);
     $task_info[] = TasksApp::arrayForJSON($id, $vtodo, $user_timezone, $aCalendar, $aTask);
     $subTaskIds = '';
     if ($aTask['relatedto'] === '') {
         $subTaskIds = TasksApp::getSubTasks($aTask['eventuid']);
         if ($subTaskIds !== '') {
             $tempIds = explode(',', $subTaskIds);
             foreach ($tempIds as $subIds) {
                 $vcalendar = TasksApp::getVCalendar($subIds, true, true);
                 $vtodo = $vcalendar->VTODO;
                 TasksApp::setComplete($vtodo, $checked ? 100 : 0, null);
                 TasksApp::edit($subIds, $vcalendar->serialize());
                 $task_info[] = TasksApp::arrayForJSON($subIds, $vtodo, $user_timezone, $aCalendar, $aTask);
             }
         }
     }
     $params = ['status' => 'success', 'data' => $task_info];
     $response = new JSONResponse($params);
     return $response;
 }
Example #2
0
 /**
  * @NoAdminRequired
  */
 public function resizeEvent()
 {
     $id = $this->params('id');
     $aCheckPermissions = $this->checkPermissions($id, $this->shareConnector->getUpdateAccess());
     if ($aCheckPermissions['status'] === 'success') {
         $vcalendar = CalendarApp::getVCalendar($id, false, false);
         $vevent = $vcalendar->VEVENT;
         $accessclass = $vevent->getAsString('CLASS');
         $permissions = CalendarApp::getPermissions($id, CalendarApp::EVENT, $accessclass);
         if (!$permissions & $this->shareConnector->getUpdateAccess()) {
             exit;
         }
         $delta = new \DateInterval('P0D');
         $delta->d = $this->params('dayDelta');
         $delta->i = $this->params('minuteDelta');
         $lastModified = $this->params('lastmodified');
         CalendarApp::isNotModified($vevent, $lastModified);
         $dtend = Object::getDTEndFromVEvent($vevent);
         $dtend->setDateTime($dtend->getDateTime()->add($delta));
         unset($vevent->DURATION);
         $vevent->setDateTime('LAST-MODIFIED', 'now');
         $vevent->setDateTime('DTSTAMP', 'now');
         Object::edit($id, $vcalendar->serialize());
         $lastmodified = $vevent->__get('LAST-MODIFIED')->getDateTime();
         $params = ['status' => $aCheckPermissions['status'], 'lastmodified' => (int) $lastmodified->format('U')];
     } else {
         $params = ['status' => $aCheckPermissions['status'], 'msg' => $aCheckPermissions['msg']];
     }
     $response = new JSONResponse();
     $response->setData($params);
     return $response;
 }