Branch 'kolab-syncroton-2.2' - lib/kolab_sync_data_tasks.php lib/plugins
Aleksander Machniak
machniak at kolabsys.com
Thu May 1 08:59:28 CEST 2014
lib/kolab_sync_data_tasks.php | 6 +++++-
lib/plugins/libkolab/lib/kolab_format_task.php | 13 +++++++++----
lib/plugins/libkolab/lib/kolab_format_xcal.php | 2 +-
3 files changed, 15 insertions(+), 6 deletions(-)
New commits:
commit d5fffc26d9e8c0b4ccccc6c595f3719d62f1db2f
Author: Aleksander Machniak <machniak at kolabsys.com>
Date: Thu May 1 08:56:00 2014 +0200
Fix task completeness status sync (Bug #3023)
diff --git a/lib/kolab_sync_data_tasks.php b/lib/kolab_sync_data_tasks.php
index b27c98e..d43df66 100644
--- a/lib/kolab_sync_data_tasks.php
+++ b/lib/kolab_sync_data_tasks.php
@@ -113,7 +113,7 @@ class kolab_sync_data_tasks extends kolab_sync_data
$result = array();
// Completion status (required)
- $result['complete'] = intval(!empty($task['status']) && $task['status'] == 'COMPLETED');
+ $result['complete'] = intval($task['status'] == 'COMPLETED' || $task['complete'] == 100);
// Calendar namespace fields
foreach ($this->mapping as $key => $name) {
@@ -204,6 +204,10 @@ class kolab_sync_data_tasks extends kolab_sync_data
$task['status'] = 'COMPLETED';
$task['complete'] = 100;
}
+ else if (isset($data->complete) && ($task['status'] == 'COMPLETED' || $task['complete'] == 100)) {
+ $task['status'] = '';
+ $task['complete'] = 0;
+ }
// recurrence
$task['recurrence'] = $this->recurrence_to_kolab($data, $folderid, null);
diff --git a/lib/plugins/libkolab/lib/kolab_format_task.php b/lib/plugins/libkolab/lib/kolab_format_task.php
index a15cb0b..465ba90 100644
--- a/lib/plugins/libkolab/lib/kolab_format_task.php
+++ b/lib/plugins/libkolab/lib/kolab_format_task.php
@@ -43,9 +43,14 @@ class kolab_format_task extends kolab_format_xcal
$this->obj->setPercentComplete(intval($object['complete']));
- if (isset($object['start']))
- $this->obj->setStart(self::get_datetime($object['start'], null, $object['start']->_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);
+
+ $this->obj->setStart(self::get_datetime($object['start'], null, $object['start']->_dateonly));
$this->obj->setDue(self::get_datetime($object['due'], null, $object['due']->_dateonly));
$related = new vectors;
@@ -114,7 +119,7 @@ class kolab_format_task extends kolab_format_xcal
if ($this->data['priority'] == 1)
$tags[] = 'x-flagged';
- if (!empty($this->data['alarms']))
+ if (!empty($this->data['valarms']))
$tags[] = 'x-has-alarms';
if ($this->data['parent_id'])
diff --git a/lib/plugins/libkolab/lib/kolab_format_xcal.php b/lib/plugins/libkolab/lib/kolab_format_xcal.php
index 500dfa2..ef423aa 100644
--- a/lib/plugins/libkolab/lib/kolab_format_xcal.php
+++ b/lib/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,
More information about the commits
mailing list