nextcloud/apps/tasks/ajax/gettasks.php

59 lines
1.9 KiB
PHP

<?php
/**
* Copyright (c) 2011 Georg Ehrke <ownclouddev at georgswebsite dot de>
* This file is licensed under the Affero General Public License version 3 or
* later.
* See the COPYING-README file.
*/
// Init owncloud
require_once('../../../lib/base.php');
OC_JSON::checkLoggedIn();
OC_JSON::checkAppEnabled('tasks');
$calendars = OC_Calendar_Calendar::allCalendars(OC_User::getUser(), true);
$user_timezone = OC_Preferences::getValue(OC_USER::getUser(), 'calendar', 'timezone', date_default_timezone_get());
$tasks = array();
foreach( $calendars as $calendar ){
$calendar_tasks = OC_Calendar_Object::all($calendar['id']);
foreach( $calendar_tasks as $task ){
if($task['objecttype']!='VTODO'){
continue;
}
if(is_null($task['summary'])){
continue;
}
$object = OC_VObject::parse($task['calendardata']);
$vtodo = $object->VTODO;
$task = array( 'id' => $task['id'] );
$task['summary'] = $vtodo->getAsString('SUMMARY');
$task['description'] = $vtodo->getAsString('DESCRIPTION');
$task['location'] = $vtodo->getAsString('LOCATION');
$task['categories'] = $vtodo->getAsArray('CATEGORIES');
$due = $vtodo->DUE;
if ($due) {
$due = $due->getDateTime();
$due->setTimezone(new DateTimeZone($user_timezone));
$task['due'] = $due->format('Y-m-d H:i:s');
}
else {
$task['due'] = false;
}
$task['priority'] = $vtodo->getAsString('PRIORITY');
$completed = $vtodo->COMPLETED;
if ($completed) {
$completed = $completed->getDateTime();
$completed->setTimezone(new DateTimeZone($user_timezone));
$task['completed'] = $completed->format('Y-m-d H:i:s');
}
else {
$task['completed'] = false;
}
$task['complete'] = $vtodo->getAsString('PERCENT-COMPLETE');
$tasks[] = $task;
}
}
OC_JSON::encodedPrint($tasks);