diff options
author | raimund-schluessler <raimund.schluessler@googlemail.com> | 2014-04-27 19:34:35 +0400 |
---|---|---|
committer | raimund-schluessler <raimund.schluessler@googlemail.com> | 2014-04-27 19:34:35 +0400 |
commit | 34dd3b2aa5a3a023663f7cec1f15b0ce0be92826 (patch) | |
tree | dfc8f7b05687a0f44c30af0c81edea1df42bf120 /lib | |
parent | 910d0938c8161b3b77c3a311df7e9859a9b5fbaf (diff) |
Setting reminders of type Date-Time
Diffstat (limited to 'lib')
-rw-r--r-- | lib/controller/taskscontroller.php | 50 | ||||
-rw-r--r-- | lib/helper.php | 19 |
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){ |