From 7c28d45c8e9a448002595d26ca5cf88726b47123 Mon Sep 17 00:00:00 2001
From: Thomas Bruederli <thomas@roundcube.net>
Date: Tue, 14 Jan 2014 12:19:16 -0500
Subject: [PATCH] Update class name in subscriptions folder list after saving folder properties

---
 program/steps/settings/save_folder.inc |    3 +++
 program/js/app.js                      |   12 +++++++++++-
 2 files changed, 14 insertions(+), 1 deletions(-)

diff --git a/program/js/app.js b/program/js/app.js
index da10214..3c54756 100644
--- a/program/js/app.js
+++ b/program/js/app.js
@@ -5834,8 +5834,11 @@
   // replace an existing table row with a new folder line (with subfolders)
   this.replace_folder_row = function(oldfolder, newfolder, display_name, is_protected, class_name)
   {
-    if (!this.gui_objects.subscriptionlist)
+    if (!this.gui_objects.subscriptionlist) {
+      if (this.is_framed)
+        return parent.rcmail.replace_folder_row(oldfolder, newfolder, display_name, is_protected, class_name);
       return false;
+    }
 
     var i, n, len, name, dispname, oldrow, tmprow, row, level,
       tbody = this.gui_objects.subscriptionlist.tBodies[0],
@@ -5846,6 +5849,13 @@
       // find subfolders of renamed folder
       list = this.get_subfolders(oldfolder);
 
+    // no renaming, only update class_name
+    if (oldfolder == newfolder) {
+      $('#'+id).attr('class', class_name || '');
+      this.subscription_list.focus();
+      return;
+    }
+
     // replace an existing table row
     this._remove_folder_row(id);
     row = $(this.add_folder_row(newfolder, display_name, is_protected, subscribed, true, class_name));
diff --git a/program/steps/settings/save_folder.inc b/program/steps/settings/save_folder.inc
index f720735..d1449bb 100644
--- a/program/steps/settings/save_folder.inc
+++ b/program/steps/settings/save_folder.inc
@@ -189,6 +189,9 @@
             rcmail_update_folder_row($folder['name'], $folder['oldname'], $folder['subscribe'], $folder['class']);
             $OUTPUT->send('iframe');
         }
+        else if (!empty($folder['class'])) {
+            rcmail_update_folder_row($folder['name'], $folder['oldname'], $folder['subscribe'], $folder['class']);
+        }
     }
     else {
         // show error message

--
Gitblit v1.9.1