Blame view
sources/apps/tasks/ajax/update_property.php
1.9 KB
|
d1bafeea1
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
<?php
/**
* Copyright (c) 2012 Bart Visscher <bartv@thisnet.nl>
* This file is licensed under the Affero General Public License version 3 or
* later.
* See the COPYING-README file.
*/
// Init owncloud
OCP\JSON::checkLoggedIn();
OCP\JSON::checkAppEnabled('tasks');
OCP\JSON::callCheck();
$id = $_POST['id'];
$property = $_POST['type'];
$vcalendar = OC_Calendar_App::getVCalendar( $id );
$vtodo = $vcalendar->VTODO;
switch($property) {
case 'summary':
$summary = $_POST['summary'];
$vtodo->setString('SUMMARY', $summary);
break;
case 'description':
$description = $_POST['description'];
$vtodo->setString('DESCRIPTION', $description);
break;
case 'location':
$location = $_POST['location'];
$vtodo->setString('LOCATION', $location);
break;
case 'categories':
$categories = $_POST['categories'];
$vtodo->setString('CATEGORIES', $categories);
break;
case 'due':
$due = $_POST['due'];
$due_date_only = $_POST['date'];
$type = null;
if ($due != 'false') {
try {
$timezone = OC_Calendar_App::getTimezone();
$timezone = new DateTimeZone($timezone);
$due = new DateTime('@'.$due);
$due->setTimezone($timezone);
$type = Sabre\VObject\Property\DateTime::LOCALTZ;
if ($due_date_only) {
$type = Sabre\VObject\Property\DateTime::DATE;
}
} catch (Exception $e) {
OCP\JSON::error(array('data'=>array('message'=>OC_Task_App::$l10n->t('Invalid date/time'))));
exit();
}
}
$vtodo->setDateTime('DUE', $due, $type);
break;
case 'complete':
$checked = $_POST['checked'];
OC_Task_App::setComplete($vtodo, $checked ? '100' : '0', null);
break;
default:
OCP\JSON::error(array('data'=>array('message'=>'Unknown type')));
exit();
}
OC_Calendar_Object::edit($id, $vcalendar->serialize());
$user_timezone = OC_Calendar_App::getTimezone();
$task_info = OC_Task_App::arrayForJSON($id, $vtodo, $user_timezone);
OCP\JSON::success(array('data' => $task_info));
|