Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/tasks.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorraimund-schluessler <raimund.schluessler@googlemail.com>2014-04-27 19:34:35 +0400
committerraimund-schluessler <raimund.schluessler@googlemail.com>2014-04-27 19:34:35 +0400
commit34dd3b2aa5a3a023663f7cec1f15b0ce0be92826 (patch)
treedfc8f7b05687a0f44c30af0c81edea1df42bf120 /lib
parent910d0938c8161b3b77c3a311df7e9859a9b5fbaf (diff)
Setting reminders of type Date-Time
Diffstat (limited to 'lib')
-rw-r--r--lib/controller/taskscontroller.php50
-rw-r--r--lib/helper.php19
2 files changed, 41 insertions, 28 deletions
diff --git a/lib/controller/taskscontroller.php b/lib/controller/taskscontroller.php
index f7b0481d..c4b6f1c0 100644
--- a/lib/controller/taskscontroller.php
+++ b/lib/controller/taskscontroller.php
@@ -343,35 +343,45 @@ class TasksController extends Controller {
*/
public function setReminderDate(){
$taskId = $this->params('taskID');
- $reminder = $this->params('reminder');
- $remindertype = $this->params('reminder_type');
+ $type = $this->params('type');
+ $action = $this->params('action');
+ // $date = $this->params('date');
$response = new JSONResponse();
- try{
- $vcalendar = \OC_Calendar_App::getVCalendar($taskId);
- $vtodo = $vcalendar->VTODO;
- $valarm = $vtodo->VALARM;
- if ($reminder != 'false'){
+
+ $types = array('DATE-TIME','DURATION');
+
+ $vcalendar = \OC_Calendar_App::getVCalendar($taskId);
+ $vtodo = $vcalendar->VTODO;
+ $valarm = $vtodo->VALARM;
+
+ if ($type == false){
+ unset($vtodo->VALARM);
+ \OC_Calendar_Object::edit($taskId, $vcalendar->serialize());
+ }
+ elseif (in_array($type,$types)) {
+ try{
if($valarm == null) {
- $valarm = new OC_VObject('VALARM');
-
- $valarm->setString('ACTION', $remindertype);
+ $valarm = new \OC_VObject('VALARM');
+ $valarm->setString('ACTION', $action);
$valarm->setString('DESCRIPTION', 'Default Event Notification');
$valarm->setString('');
-
- $vevent->add($valarm);
+ $vtodo->add($valarm);
} else {
unset($valarm->TRIGGER);
}
-
- $valarm->addProperty('TRIGGER', $reminder, array('VALUE' => 'DURATION'));
-
- } else {
- if($valarm != null) {
- unset($vevent->VALARM);
+ $triggervalue = '';
+ if ($type == 'DATE-TIME') {
+ $date = new \DateTime('@'.$this->params('date'));
+ $triggervalue = $date->format('Ymd\THis\Z');
+ } elseif ($type == 'DURATION') {
+ // TODO
+ $triggervalue = '-PT5M';
}
- }
- } catch (\Exception $e) {
+ $valarm->addProperty('TRIGGER', $triggervalue, array('VALUE' => $type));
+ \OC_Calendar_Object::edit($taskId, $vcalendar->serialize());
+ } catch (\Exception $e) {
+ }
}
return $response;
diff --git a/lib/helper.php b/lib/helper.php
index ddc29f85..86165bf2 100644
--- a/lib/helper.php
+++ b/lib/helper.php
@@ -46,11 +46,11 @@ Class helper {
$start->setTimezone(new \DateTimeZone($user_timezone));
$task['start'] = $start->format('Ymd\THis');
} catch(\Exception $e) {
- $task['start'] = 'undefined';
+ $task['start'] = null;
\OCP\Util::writeLog('tasks_enhanced', $e->getMessage(), \OCP\Util::ERROR);
}
} else {
- $task['start'] = 'undefined';
+ $task['start'] = null;
}
$due = $vtodo->DUE;
if ($due) {
@@ -59,11 +59,11 @@ Class helper {
$due->setTimezone(new \DateTimeZone($user_timezone));
$task['due'] = $due->format('Ymd\THis');
} catch(\Exception $e) {
- $task['due'] = 'undefined';
+ $task['due'] = null;
\OCP\Util::writeLog('tasks_enhanced', $e->getMessage(), \OCP\Util::ERROR);
}
} else {
- $task['due'] = 'undefined';
+ $task['due'] = null;
}
$reminder = $vtodo->VALARM;
if($reminder) {
@@ -72,17 +72,19 @@ Class helper {
$reminderType = $reminder->TRIGGER['VALUE']->value;
$reminderTrigger = $reminder->TRIGGER->value;
$reminderAction = $reminder->ACTION->value;
+ $parsed1 = null;
if($reminderType == 'DATE-TIME'){
$reminderDate = $reminder->TRIGGER->getDateTime();
$reminderDate->setTimezone(new \DateTimeZone($user_timezone));
$reminderDate = $reminderDate->format('Ymd\THis');
} elseif ($reminderType == 'DURATION' && $start) {
+ $parsed_complete = VObject\DateTimeParser::parseDuration($reminder->TRIGGER);
$parsed = VObject\DateTimeParser::parseDuration($reminder->TRIGGER,true);
// Calculate the reminder date from duration and start date
$reminderDate = $start->modify($parsed)->format('Ymd\THis');
} else {
- $reminderDate = 'undefined';
+ $reminderDate = null;
}
@@ -90,15 +92,16 @@ Class helper {
'type' => $reminderType,
'trigger' => $reminderTrigger,
'action' => $reminderAction,
- 'date' => $reminderDate
+ 'date' => $reminderDate,
+ 'duration' => $parsed_complete
);
} catch(\Exception $e) {
- $task['reminder'] = 'undefined';
+ $task['reminder'] = null;
\OCP\Util::writeLog('tasks_enhanced', $e->getMessage(), \OCP\Util::ERROR);
}
} else {
- $task['reminder'] = 'undefined';
+ $task['reminder'] = null;
}
$starred = $vtodo->getAsString('PRIORITY');
if($starred){