Branch 'roundcubemail-plugins-kolab-3.1' - 2 commits - plugins/libcalendaring plugins/libkolab
Thomas Brüderli
bruederli at kolabsys.com
Mon Apr 28 12:02:59 CEST 2014
plugins/libcalendaring/libvcalendar.php | 4 ++++
plugins/libcalendaring/tests/libvcalendar.php | 1 +
plugins/libkolab/lib/kolab_format_event.php | 2 ++
plugins/libkolab/lib/kolab_format_task.php | 7 +++++++
plugins/libkolab/lib/kolab_format_xcal.php | 6 +++++-
5 files changed, 19 insertions(+), 1 deletion(-)
New commits:
commit 577c9a5aab10ce0b98a503727c3f5253d3d62ed0
Author: Thomas Bruederli <bruederli at kolabsys.com>
Date: Thu Apr 17 12:08:52 2014 +0200
Make status map property visible to derived classes
diff --git a/plugins/libkolab/lib/kolab_format_xcal.php b/plugins/libkolab/lib/kolab_format_xcal.php
index 9ab0b6b..5de82e0 100644
--- a/plugins/libkolab/lib/kolab_format_xcal.php
+++ b/plugins/libkolab/lib/kolab_format_xcal.php
@@ -76,7 +76,7 @@ abstract class kolab_format_xcal extends kolab_format
'AUDIO' => Alarm::AudioAlarm,
);
- private $status_map = array(
+ protected $status_map = array(
'NEEDS-ACTION' => kolabformat::StatusNeedsAction,
'IN-PROCESS' => kolabformat::StatusInProcess,
'COMPLETED' => kolabformat::StatusCompleted,
commit 47848fab3c4d5c9c4c9684a96f21cfc8d6c492a6
Author: Thomas Bruederli <bruederli at kolabsys.com>
Date: Thu Apr 3 15:07:47 2014 +0200
Save and restore iCal STATUS properties
diff --git a/plugins/libcalendaring/libvcalendar.php b/plugins/libcalendaring/libvcalendar.php
index ec8bb80..19ef12d 100644
--- a/plugins/libcalendaring/libvcalendar.php
+++ b/plugins/libcalendaring/libvcalendar.php
@@ -411,6 +411,8 @@ class libvcalendar implements Iterator
$event['cancelled'] = true;
else if ($prop->value == 'COMPLETED')
$event['complete'] = 100;
+ else
+ $event['status'] = strval($prop->value);
break;
case 'PRIORITY':
@@ -930,6 +932,8 @@ class libvcalendar implements Iterator
$ve->add('STATUS', 'TENTATIVE');
else if ($event['complete'] == 100)
$ve->add('STATUS', 'COMPLETED');
+ else if (!empty($event['status']))
+ $ve->add('STATUS', $event['status']);
if (!empty($event['sensitivity']))
$ve->add('CLASS', strtoupper($event['sensitivity']));
diff --git a/plugins/libcalendaring/tests/libvcalendar.php b/plugins/libcalendaring/tests/libvcalendar.php
index 2bb07ba..88a244f 100644
--- a/plugins/libcalendaring/tests/libvcalendar.php
+++ b/plugins/libcalendaring/tests/libvcalendar.php
@@ -262,6 +262,7 @@ class libvcalendar_test extends PHPUnit_Framework_TestCase
$this->assertInstanceOf('DateTime', $task['start'], "'start' property is DateTime object");
$this->assertInstanceOf('DateTime', $task['due'], "'due' property is DateTime object");
$this->assertEquals('-1D:DISPLAY', $task['alarms'], "Taks alarm value");
+ $this->assertEquals('IN-PROCESS', $task['status'], "Task status property");
$this->assertEquals(1, count($task['x-custom']), "Custom properties");
}
diff --git a/plugins/libkolab/lib/kolab_format_event.php b/plugins/libkolab/lib/kolab_format_event.php
index 6a8c3ae..7d1d53c 100644
--- a/plugins/libkolab/lib/kolab_format_event.php
+++ b/plugins/libkolab/lib/kolab_format_event.php
@@ -87,6 +87,8 @@ class kolab_format_event extends kolab_format_xcal
$status = kolabformat::StatusTentative;
if ($object['cancelled'])
$status = kolabformat::StatusCancelled;
+ else if ($object['status'] && array_key_exists($object['status'], $this->status_map))
+ $status = $this->status_map[$object['status']];
$this->obj->setStatus($status);
// save recurrence exceptions
diff --git a/plugins/libkolab/lib/kolab_format_task.php b/plugins/libkolab/lib/kolab_format_task.php
index ea12351..555e77f 100644
--- a/plugins/libkolab/lib/kolab_format_task.php
+++ b/plugins/libkolab/lib/kolab_format_task.php
@@ -45,6 +45,13 @@ class kolab_format_task extends kolab_format_xcal
$this->obj->setStart(self::get_datetime($object['start'], null, $object['start']->_dateonly));
$this->obj->setDue(self::get_datetime($object['due'], null, $object['due']->_dateonly));
+ $status = kolabformat::StatusUndefined;
+ if ($object['complete'] == 100)
+ $status = kolabformat::StatusCompleted;
+ else if ($object['status'] && array_key_exists($object['status'], $this->status_map))
+ $status = $this->status_map[$object['status']];
+ $this->obj->setStatus($status);
+
$related = new vectors;
if (!empty($object['parent_id']))
$related->push($object['parent_id']);
diff --git a/plugins/libkolab/lib/kolab_format_xcal.php b/plugins/libkolab/lib/kolab_format_xcal.php
index cd69fa9..9ab0b6b 100644
--- a/plugins/libkolab/lib/kolab_format_xcal.php
+++ b/plugins/libkolab/lib/kolab_format_xcal.php
@@ -81,6 +81,10 @@ abstract class kolab_format_xcal extends kolab_format
'IN-PROCESS' => kolabformat::StatusInProcess,
'COMPLETED' => kolabformat::StatusCompleted,
'CANCELLED' => kolabformat::StatusCancelled,
+ 'TENTATIVE' => kolabformat::StatusTentative,
+ 'CONFIRMED' => kolabformat::StatusConfirmed,
+ 'DRAFT' => kolabformat::StatusDraft,
+ 'FINAL' => kolabformat::StatusFinal,
);
protected $part_status_map = array(
More information about the commits
mailing list