/** * @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; }
/** * @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; }