From 7c28d45c8e9a448002595d26ca5cf88726b47123 Mon Sep 17 00:00:00 2001 From: Thomas Bruederli Date: Tue, 14 Jan 2014 18:19:16 +0100 Subject: [PATCH] Update class name in subscriptions folder list after saving folder properties --- program/js/app.js | 12 +++++++++++- program/steps/settings/save_folder.inc | 3 +++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/program/js/app.js b/program/js/app.js index da102143f..3c547566d 100644 --- a/program/js/app.js +++ b/program/js/app.js @@ -5834,8 +5834,11 @@ function rcube_webmail() // 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 @@ function rcube_webmail() // 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 f720735e0..d1449bb38 100644 --- a/program/steps/settings/save_folder.inc +++ b/program/steps/settings/save_folder.inc @@ -189,6 +189,9 @@ else if (!$error) { 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