5 commits - lib/kolab_sync_backend.php lib/kolab_sync_data.php
Jeroen van Meeuwen
vanmeeuwen at kolabsys.com
Wed Sep 19 17:23:26 CEST 2012
lib/kolab_sync_backend.php | 20 ++++++++++++++++++++
lib/kolab_sync_data.php | 14 ++++++++++----
2 files changed, 30 insertions(+), 4 deletions(-)
New commits:
commit 856a084b407809c1fe93fefc9a8d5555ddb365ba
Merge: 89f14db 68cde45
Author: Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen at kolabsys.com>
Date: Wed Sep 19 17:23:19 2012 +0200
Merge branch 'master' of ssh://git.kolab.org/git/kolab-syncroton
commit 89f14dbea8919c4754ffebe2e5d8c014f095ed28
Author: Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen at kolabsys.com>
Date: Wed Sep 19 17:23:01 2012 +0200
Make sure the default folder is found, used and communicated as being the default folder
diff --git a/lib/kolab_sync_data.php b/lib/kolab_sync_data.php
index ec2ca79..0cdb25c 100644
--- a/lib/kolab_sync_data.php
+++ b/lib/kolab_sync_data.php
@@ -207,6 +207,8 @@ abstract class kolab_sync_data implements Syncroton_Data_IData
*/
protected function getDefaultFolder()
{
+ $default = null;
+
// Check if there's any folder configured for sync
$folders = $this->backend->folders_list($this->device->deviceid, $this->modelName);
@@ -223,7 +225,10 @@ abstract class kolab_sync_data implements Syncroton_Data_IData
// Return first on the list if there's no default
if (empty($default)) {
- $default = $folders[key($folders)];
+ $keys = array_keys($folders);
+ $key = array_shift($keys);
+ $default = $folders[$key];
+ $default['type'] = kolab_sync_backend::default_type_id_for_type($default['type']);
}
// Remember real folder ID and set ID/name to root folder
commit fddf18c56156e7d33e543cf6eb9f8cec78b001cc
Author: Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen at kolabsys.com>
Date: Wed Sep 19 17:22:17 2012 +0200
Let's not use the same variable name for the iteratee and the result
diff --git a/lib/kolab_sync_data.php b/lib/kolab_sync_data.php
index 1ef5efb..ec2ca79 100644
--- a/lib/kolab_sync_data.php
+++ b/lib/kolab_sync_data.php
@@ -183,18 +183,19 @@ abstract class kolab_sync_data implements Syncroton_Data_IData
*/
public function getAllFolders()
{
+ $_list = array();
$list = array();
// device supports multiple folders ?
if (in_array(strtolower($this->device->devicetype), array('iphone', 'ipad', 'thundertine', 'windowsphone'))) {
// get the folders the user has access to
- $list = $this->backend->folders_list($this->device->deviceid, $this->modelName);
+ $_list = $this->backend->folders_list($this->device->deviceid, $this->modelName);
}
else if ($default = $this->getDefaultFolder()) {
- $list = array($default['serverId'] => $default);
+ $_list = array($default['serverId'] => $default);
}
- foreach ($list as $idx => $folder) {
+ foreach ($_list as $idx => $folder) {
$list[$idx] = new Syncroton_Model_Folder($folder);
}
commit 184027d4f9620c4c24088df6827f65399ad98169
Author: Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen at kolabsys.com>
Date: Wed Sep 19 17:21:32 2012 +0200
Do not include only folders that we can find are marked as default for their type
diff --git a/lib/kolab_sync_backend.php b/lib/kolab_sync_backend.php
index eb3aae4..a8fc4f2 100644
--- a/lib/kolab_sync_backend.php
+++ b/lib/kolab_sync_backend.php
@@ -406,6 +406,9 @@ class kolab_sync_backend
'event.default',
'contact.default',
'task.default',
+ 'event',
+ 'contact',
+ 'task'
);
$foldertypes = array_map('implode', $foldertypes);
commit f1b7a051b7d9e2eca0e254e97c3fd6fca3df3aad
Author: Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen at kolabsys.com>
Date: Wed Sep 19 17:19:36 2012 +0200
Add a function to convert a given type id to its existing default type id, if it exists
diff --git a/lib/kolab_sync_backend.php b/lib/kolab_sync_backend.php
index b8f5463..eb3aae4 100644
--- a/lib/kolab_sync_backend.php
+++ b/lib/kolab_sync_backend.php
@@ -110,6 +110,23 @@ class kolab_sync_backend
$this->storage->set_pagesize(999999);
}
+ public static function default_type_id_for_type($type) {
+ if (!isset(self::$types[$type])) {
+ return $type;
+ }
+
+ $type_str = self::$types[$type];
+
+ $default_type_str = self::$types[$type] . ".default";
+
+ $default_type_id = array_search($default_type_str, self::$types);
+
+ if (!$default_type_id) {
+ return $type;
+ } else {
+ return $default_type_id;
+ }
+ }
/**
* List known devices
More information about the commits
mailing list