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-15 01:01:07 +0400
committerraimund-schluessler <raimund.schluessler@googlemail.com>2014-04-15 01:01:07 +0400
commit59576d4538b9b984a50c083c7ff28d6201e3cdb6 (patch)
tree894d6cb18147ce4f47ff273f3c1a98674cd228e0 /lib
parent6e38fd5deaffce31f93fe05be9f81024885d572a (diff)
Display reminders in details view
Diffstat (limited to 'lib')
-rw-r--r--lib/helper.php44
1 files changed, 40 insertions, 4 deletions
diff --git a/lib/helper.php b/lib/helper.php
index 67993593..2bac5ae8 100644
--- a/lib/helper.php
+++ b/lib/helper.php
@@ -22,6 +22,7 @@
namespace OCA\Tasks_enhanced;
+use Sabre\VObject;
// use OCA\Tasks_enhanced\App;
Class helper {
@@ -38,6 +39,19 @@ Class helper {
$task['note'] = $vtodo->getAsString('DESCRIPTION');
$task['location'] = $vtodo->getAsString('LOCATION');
$task['categories'] = $vtodo->getAsArray('CATEGORIES');
+ $start = $vtodo->DTSTART;
+ if ($start) {
+ try {
+ $start = $start->getDateTime();
+ $start->setTimezone(new \DateTimeZone($user_timezone));
+ $task['start'] = $start->format('Ymd\THis');
+ } catch(\Exception $e) {
+ $task['start'] = 'undefined';
+ \OCP\Util::writeLog('tasks_enhanced', $e->getMessage(), \OCP\Util::ERROR);
+ }
+ } else {
+ $task['start'] = 'undefined';
+ }
$due = $vtodo->DUE;
if ($due) {
try {
@@ -51,12 +65,34 @@ Class helper {
} else {
$task['due'] = 'undefined';
}
- $reminder = $vtodo->REMINDER;
+ $reminder = $vtodo->VALARM;
if($reminder) {
try {
- $reminder = $reminder->getDateTime();
- $reminder->setTimezone(new \DateTimeZone($user_timezone));
- $task['reminder'] = $reminder->format('Ymd\THis');
+
+ $reminderType = $reminder->TRIGGER['VALUE']->value;
+ $reminderTrigger = $reminder->TRIGGER->value;
+ $reminderAction = $reminder->ACTION->value;
+
+ if($reminderType == 'DATE-TIME'){
+ $reminderDate = $reminder->TRIGGER->getDateTime();
+ $reminderDate->setTimezone(new \DateTimeZone($user_timezone));
+ $reminderDate = $reminderDate->format('Ymd\THis');
+ } elseif ($reminderType == 'DURATION' && $start) {
+ $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';
+ }
+
+
+ $task['reminder'] = array(
+ 'type' => $reminderType,
+ 'trigger' => $reminderTrigger,
+ 'action' => $reminderAction,
+ 'date' => $reminderDate
+ );
+
} catch(\Exception $e) {
$task['reminder'] = 'undefined';
\OCP\Util::writeLog('tasks_enhanced', $e->getMessage(), \OCP\Util::ERROR);