Only update prefs if they contain non-default values
authorMichael M Slusarz <slusarz@curecanti.org>
Mon, 12 Apr 2010 18:23:16 +0000 (12:23 -0600)
committerMichael M Slusarz <slusarz@curecanti.org>
Mon, 12 Apr 2010 18:23:16 +0000 (12:23 -0600)
imp/lib/LoginTasks/SystemTask/UpgradeFromImp4.php
kronolith/lib/LoginTasks/SystemTask/UpgradeFromKronolith2.php
turba/lib/LoginTasks/SystemTask/UpgradeFromTurba2.php
whups/lib/LoginTasks/SystemTask/UpgradeFromWhups1 [deleted file]
whups/lib/LoginTasks/SystemTask/UpgradeFromWhups1.php [new file with mode: 0644]

index 80ec99d..8aaeae4 100644 (file)
@@ -37,25 +37,29 @@ class IMP_LoginTasks_SystemTask_UpgradeFromImp4 extends Horde_LoginTasks_SystemT
     {
         global $prefs;
 
-        $src = $prefs->getValue('search_sources');
-        if (!is_array(json_decode($src))) {
-            $prefs->setValue('search_sources', json_encode(explode("\t", $src)));
+        if (!$prefs->isDefault('search_sources')) {
+            $src = $prefs->getValue('search_sources');
+            if (!is_array(json_decode($src))) {
+                $prefs->setValue('search_sources', json_encode(explode("\t", $src)));
+            }
         }
 
-        $val = $prefs->getValue('search_fields');
-        if (!is_array(json_decode($val, true))) {
-            $fields = array();
-            foreach (explode("\n", $val) as $field) {
-                $field = trim($field);
-                if (!empty($field)) {
-                    $tmp = explode("\t", $field);
-                    if (count($tmp) > 1) {
-                        $source = array_splice($tmp, 0, 1);
-                        $fields[$source[0]] = $tmp;
+        if (!$prefs->isDefault('search_fields')) {
+            $val = $prefs->getValue('search_fields');
+            if (!is_array(json_decode($val, true))) {
+                $fields = array();
+                foreach (explode("\n", $val) as $field) {
+                    $field = trim($field);
+                    if (!empty($field)) {
+                        $tmp = explode("\t", $field);
+                        if (count($tmp) > 1) {
+                            $source = array_splice($tmp, 0, 1);
+                            $fields[$source[0]] = $tmp;
+                        }
                     }
                 }
+                $prefs->setValue('search_fields', $fields);
             }
-            $prefs->setValue('search_fields', $fields);
         }
     }
 
@@ -66,6 +70,10 @@ class IMP_LoginTasks_SystemTask_UpgradeFromImp4 extends Horde_LoginTasks_SystemT
     {
         global $prefs;
 
+        if ($prefs->isDefault('forward_default')) {
+            return;
+        }
+
         switch ($prefs->getValue('forward_default')) {
         case 'forward_attachments':
             $prefs->setValue('forward_default', 'both');
@@ -99,23 +107,27 @@ class IMP_LoginTasks_SystemTask_UpgradeFromImp4 extends Horde_LoginTasks_SystemT
     {
         global $prefs;
 
-        $update = false;
-        $sortpref = @unserialize($prefs->getValue('sortpref'));
-        foreach ($sortpref as $key => $val) {
-            $sb = $this->_newSortbyValue($val['b']);
-            if (!is_null($sb)) {
-                $sortpref[$key]['b'] = $sb;
-                $update = true;
+        if (!$prefs->isDefault('sortpref')) {
+            $update = false;
+            $sortpref = @unserialize($prefs->getValue('sortpref'));
+            foreach ($sortpref as $key => $val) {
+                $sb = $this->_newSortbyValue($val['b']);
+                if (!is_null($sb)) {
+                    $sortpref[$key]['b'] = $sb;
+                    $update = true;
+                }
             }
-        }
 
-        if ($update) {
-            $prefs->setValue('sortpref', serialize($sortpref));
+            if ($update) {
+                $prefs->setValue('sortpref', serialize($sortpref));
+            }
         }
 
-        $sb = $this->_newSortbyValue($prefs->getValue('sortby'));
-        if (!is_null($sb)) {
-            $prefs->setValue('sortby', $sb);
+        if (!$prefs->isDefault('sortby')) {
+            $sb = $this->_newSortbyValue($prefs->getValue('sortby'));
+            if (!is_null($sb)) {
+                $prefs->setValue('sortby', $sb);
+            }
         }
     }
 
@@ -148,6 +160,10 @@ class IMP_LoginTasks_SystemTask_UpgradeFromImp4 extends Horde_LoginTasks_SystemT
      */
     protected function _upgradeVirtualFolders()
     {
+        if ($GLOBALS['prefs']->isDefault('vfolder')) {
+            return;
+        }
+
         $vfolders = $GLOBALS['prefs']->getValue('vfolder');
         if (!empty($vfolders)) {
             $vfolders = @unserialize($vfolders);
index 0849769..3dacfad 100644 (file)
@@ -34,25 +34,29 @@ class Kronolith_LoginTasks_SystemTask_UpgradeFromKronolith2 extends Horde_LoginT
     {
         global $prefs;
 
-        $src = $prefs->getValue('search_sources');
-        if (!is_array(json_decode($src))) {
-            $prefs->setValue('search_sources', json_encode(explode("\t", $src)));
+        if (!$prefs->isDefault('search_sources')) {
+            $src = $prefs->getValue('search_sources');
+            if (!is_array(json_decode($src))) {
+                $prefs->setValue('search_sources', json_encode(explode("\t", $src)));
+            }
         }
 
-        $val = $prefs->getValue('search_fields');
-        if (!is_array(json_decode($val, true))) {
-            $fields = array();
-            foreach (explode("\n", $val) as $field) {
-                $field = trim($field);
-                if (!empty($field)) {
-                    $tmp = explode("\t", $field);
-                    if (count($tmp) > 1) {
-                        $source = array_splice($tmp, 0, 1);
-                        $fields[$source[0]] = $tmp;
+        if (!$prefs->isDefault('search_fields')) {
+            $val = $prefs->getValue('search_fields');
+            if (!is_array(json_decode($val, true))) {
+                $fields = array();
+                foreach (explode("\n", $val) as $field) {
+                    $field = trim($field);
+                    if (!empty($field)) {
+                        $tmp = explode("\t", $field);
+                        if (count($tmp) > 1) {
+                            $source = array_splice($tmp, 0, 1);
+                            $fields[$source[0]] = $tmp;
+                        }
                     }
                 }
+                $prefs->setValue('search_fields', $fields);
             }
-            $prefs->setValue('search_fields', $fields);
         }
     }
 
index b0ffae6..bcd4f0b 100644 (file)
@@ -34,14 +34,16 @@ class Turba_LoginTasks_SystemTask_UpgradeFromTurba2 extends Horde_LoginTasks_Sys
     {
         global $prefs;
 
-        $abooks = $prefs->getValue('addressbooks');
-        if (!is_array(json_decode($abooks))) {
-            $abooks = @explode("\n", $abooks);
-            if (empty($abooks)) {
-                $abooks = array();
-            }
+        if (!$prefs->isDefault('addressbooks')) {
+            $abooks = $prefs->getValue('addressbooks');
+            if (!is_array(json_decode($abooks))) {
+                $abooks = @explode("\n", $abooks);
+                if (empty($abooks)) {
+                    $abooks = array();
+                }
 
-            return $prefs->setValue('addressbooks', json_encode($abooks));
+                return $prefs->setValue('addressbooks', json_encode($abooks));
+            }
         }
     }
 
diff --git a/whups/lib/LoginTasks/SystemTask/UpgradeFromWhups1 b/whups/lib/LoginTasks/SystemTask/UpgradeFromWhups1
deleted file mode 100644 (file)
index d0601c0..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-<?php
-/**
- * Login system task for automated upgrade tasks.
- *
- * Copyright 2010 The Horde Project (http://www.horde.org/)
- *
- * See the enclosed file LICENSE for license information (BSD). If you
- * did not receive this file, see http://www.horde.org/licenses/bsdl.php.
- *
- * @author  Michael Slusarz <slusarz@horde.org>
- * @package Whups
- */
-class Whups_LoginTasks_SystemTask_UpgradeFromWhups1 extends Horde_LoginTasks_SystemTask
-{
-    /**
-     * The interval at which to run the task.
-     *
-     * @var integer
-     */
-    public $interval = Horde_LoginTasks::ONCE;
-
-    /**
-     * Perform all functions for this task.
-     */
-    public function execute()
-    {
-        $this->_upgradeAbookPrefs();
-    }
-
-    /**
-     * Upgrade to the new addressbook preferences.
-     */
-    protected function _upgradeAbookPrefs()
-    {
-        global $prefs;
-
-        $src = $prefs->getValue('search_sources');
-        if (!is_array(json_decode($src))) {
-            $prefs->setValue('search_sources', json_encode(explode("\t", $src)));
-        }
-
-        $val = $prefs->getValue('search_fields');
-        if (!is_array(json_decode($val, true))) {
-            $fields = array();
-            foreach (explode("\n", $val) as $field) {
-                $field = trim($field);
-                if (!empty($field)) {
-                    $tmp = explode("\t", $field);
-                    if (count($tmp) > 1) {
-                        $source = array_splice($tmp, 0, 1);
-                        $fields[$source[0]] = $tmp;
-                    }
-                }
-            }
-            $prefs->setValue('search_fields', $fields);
-        }
-    }
-
-}
diff --git a/whups/lib/LoginTasks/SystemTask/UpgradeFromWhups1.php b/whups/lib/LoginTasks/SystemTask/UpgradeFromWhups1.php
new file mode 100644 (file)
index 0000000..05cd62b
--- /dev/null
@@ -0,0 +1,63 @@
+<?php
+/**
+ * Login system task for automated upgrade tasks.
+ *
+ * Copyright 2010 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file LICENSE for license information (BSD). If you
+ * did not receive this file, see http://www.horde.org/licenses/bsdl.php.
+ *
+ * @author  Michael Slusarz <slusarz@horde.org>
+ * @package Whups
+ */
+class Whups_LoginTasks_SystemTask_UpgradeFromWhups1 extends Horde_LoginTasks_SystemTask
+{
+    /**
+     * The interval at which to run the task.
+     *
+     * @var integer
+     */
+    public $interval = Horde_LoginTasks::ONCE;
+
+    /**
+     * Perform all functions for this task.
+     */
+    public function execute()
+    {
+        $this->_upgradeAbookPrefs();
+    }
+
+    /**
+     * Upgrade to the new addressbook preferences.
+     */
+    protected function _upgradeAbookPrefs()
+    {
+        global $prefs;
+
+        if (!$prefs->isDefault('search_sources')) {
+            $src = $prefs->getValue('search_sources');
+            if (!is_array(json_decode($src))) {
+                $prefs->setValue('search_sources', json_encode(explode("\t", $src)));
+            }
+        }
+
+        if (!$prefs->isDefault('search_fields')) {
+            $val = $prefs->getValue('search_fields');
+            if (!is_array(json_decode($val, true))) {
+                $fields = array();
+                foreach (explode("\n", $val) as $field) {
+                    $field = trim($field);
+                    if (!empty($field)) {
+                        $tmp = explode("\t", $field);
+                        if (count($tmp) > 1) {
+                            $source = array_splice($tmp, 0, 1);
+                            $fields[$source[0]] = $tmp;
+                        }
+                    }
+                }
+                $prefs->setValue('search_fields', $fields);
+            }
+        }
+    }
+
+}