lib/kolab_sync_data_calendar.php lib/kolab_sync_data.php lib/kolab_sync_data_tasks.php
Aleksander Machniak
machniak at kolabsys.com
Fri Sep 27 10:45:13 CEST 2013
lib/kolab_sync_data.php | 20 +++++++++++++++++++-
lib/kolab_sync_data_calendar.php | 2 +-
lib/kolab_sync_data_tasks.php | 6 +++---
3 files changed, 23 insertions(+), 5 deletions(-)
New commits:
commit d2b160d80b14f0ab134ed6547d80a77e41a38f59
Author: Aleksander Machniak <alec at alec.pl>
Date: Fri Sep 27 10:41:47 2013 +0200
Fixed alarms synchronization in direction from device to server (Bug #2178)
diff --git a/lib/kolab_sync_data.php b/lib/kolab_sync_data.php
index bdfcbb7..eae8630 100644
--- a/lib/kolab_sync_data.php
+++ b/lib/kolab_sync_data.php
@@ -875,7 +875,7 @@ abstract class kolab_sync_data implements Syncroton_Data_IData
/**
* Returns ActiveSync settings of specified folder
*
- * @param string $name Folder name (UTF7-IMAP)
+ * @param string $name Folder name (UTF7-IMAP)
*
* @return array Folder settings
*/
@@ -896,6 +896,24 @@ abstract class kolab_sync_data implements Syncroton_Data_IData
}
/**
+ * Returns real folder name for specified folder ID
+ */
+ protected function getFolderName($folderid)
+ {
+ if ($folderid == $this->defaultRootFolder) {
+ $default = $this->getDefaultFolder();
+
+ if (!is_array($default)) {
+ return null;
+ }
+
+ $folderid = isset($default['realid']) ? $default['realid'] : $default['serverId'];
+ }
+
+ return $this->backend->folder_id2name($folderid, $this->device->deviceid);
+ }
+
+ /**
* Convert contact from xml to kolab format
*
* @param Syncroton_Model_IEntry $data Contact data
diff --git a/lib/kolab_sync_data_calendar.php b/lib/kolab_sync_data_calendar.php
index 092f0e9..d305dde 100644
--- a/lib/kolab_sync_data_calendar.php
+++ b/lib/kolab_sync_data_calendar.php
@@ -326,8 +326,8 @@ class kolab_sync_data_calendar extends kolab_sync_data implements Syncroton_Data
*/
public function toKolab(Syncroton_Model_IEntry $data, $folderid, $entry = null, $timezone = null)
{
- $foldername = $this->backend->folder_id2name($folderid, $this->device->deviceid);
$event = !empty($entry) ? $entry : array();
+ $foldername = isset($event['_mailbox']) ? $event['_mailbox'] : $this->getFolderName($folderid);
$config = $this->getFolderConfig($foldername);
$is_exception = $data instanceof Syncroton_Model_EventException;
diff --git a/lib/kolab_sync_data_tasks.php b/lib/kolab_sync_data_tasks.php
index 608c808..bade8a6 100644
--- a/lib/kolab_sync_data_tasks.php
+++ b/lib/kolab_sync_data_tasks.php
@@ -108,7 +108,7 @@ class kolab_sync_data_tasks extends kolab_sync_data
*/
public function getEntry(Syncroton_Model_SyncCollection $collection, $serverId, $as_array = false)
{
- $task = is_array($serverId) ? $serverId : $this->getObject($collection->collectionId, $serverId);
+ $task = is_array($serverId) ? $serverId : $this->getObject($collection->collectionId, $serverId);
$config = $this->getFolderConfig($task['_mailbox']);
$result = array();
@@ -168,8 +168,8 @@ class kolab_sync_data_tasks extends kolab_sync_data
*/
public function toKolab(Syncroton_Model_IEntry $data, $folderid, $entry = null)
{
- $foldername = $this->backend->folder_id2name($folderid, $this->device->deviceid);
- $task = !empty($entry) ? $entry : array();
+ $task = !empty($entry) ? $entry : array();
+ $foldername = isset($task['_mailbox']) ? $task['_mailbox'] : $this->getFolderName($folderid);
$config = $this->getFolderConfig($foldername);
$task['allday'] = 0;
More information about the commits
mailing list