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