Branch 'dev/kolab3' - plugins/calendar plugins/kolab_addressbook plugins/libkolab

Aleksander Machniak machniak at kolabsys.com
Thu May 17 15:57:49 CEST 2012


 plugins/calendar/drivers/kolab/kolab_driver.php |    2 -
 plugins/kolab_addressbook/kolab_addressbook.php |    2 -
 plugins/libkolab/lib/kolab_storage.php          |   27 ++++++++++++++----------
 3 files changed, 18 insertions(+), 13 deletions(-)

New commits:
commit cb61bf76a1084b13b5e2d8ebb1c6aed7b986a3d8
Author: Aleksander Machniak <alec at alec.pl>
Date:   Thu May 17 15:57:23 2012 +0200

    Improved folder_create() method

diff --git a/plugins/calendar/drivers/kolab/kolab_driver.php b/plugins/calendar/drivers/kolab/kolab_driver.php
index b97d2e1..c00f45f 100644
--- a/plugins/calendar/drivers/kolab/kolab_driver.php
+++ b/plugins/calendar/drivers/kolab/kolab_driver.php
@@ -307,7 +307,7 @@ class kolab_driver extends calendar_driver
     }
     // create new folder
     else {
-      if (!($result = kolab_storage::folder_create($folder, 'event', false)))
+      if (!($result = kolab_storage::folder_create($folder, 'event')))
         $this->last_error = kolab_storage::$last_error;
     }
 
diff --git a/plugins/kolab_addressbook/kolab_addressbook.php b/plugins/kolab_addressbook/kolab_addressbook.php
index 3e1d200..5fd45b7 100644
--- a/plugins/kolab_addressbook/kolab_addressbook.php
+++ b/plugins/kolab_addressbook/kolab_addressbook.php
@@ -497,7 +497,7 @@ class kolab_addressbook extends rcube_plugin
                 $folder = $plugin['name'];
 
                 if (!$plugin['abort']) {
-                    $result = kolab_storage::folder_create($folder, 'contact', false);
+                    $result = kolab_storage::folder_create($folder, 'contact');
                 }
                 else {
                     $result = $plugin['result'];
diff --git a/plugins/libkolab/lib/kolab_storage.php b/plugins/libkolab/lib/kolab_storage.php
index 62b7796..5924530 100644
--- a/plugins/libkolab/lib/kolab_storage.php
+++ b/plugins/libkolab/lib/kolab_storage.php
@@ -173,25 +173,30 @@ class kolab_storage
     /**
      * Creates IMAP folder
      *
-     * @param string $name    Folder name (UTF7-IMAP)
-     * @param string $type    Folder type
-     * @param bool   $default True if older is default (for specified type)
+     * @param string $name        Folder name (UTF7-IMAP)
+     * @param string $type        Folder type
+     * @param bool   $subscribed  Sets folder subscription
      *
      * @return bool True on success, false on failure
      */
-    public static function folder_create($name, $type=null, $default=false)
+    public static function folder_create($name, $type = null, $subscribed = false)
     {
         self::setup();
 
-        if (self::$imap->create_folder($name)) {
+        if ($saved = self::$imap->create_folder($name, $subscribed)) {
             // set metadata for folder type
-            $ctype = $type . ($default ? '.default' : '');
-            $saved = self::$imap->set_metadata($name, array(self::CTYPE_KEY => $ctype));
+            if ($type) {
+                $saved = self::$imap->set_metadata($name, array(self::CTYPE_KEY => $type));
+
+                // revert if metadata could not be set
+                if (!$saved) {
+                    self::$imap->delete_folder($name);
+                }
+            }
+        }
 
-            if ($saved)
-                return true;
-            else  // revert if metadata could not be set
-                self::$imap->delete_folder($name);
+        if ($saved) {
+            return true;
         }
 
         self::$last_error = self::$imap->get_error_str();





More information about the commits mailing list