- Add possibility to return subscription status and css class name for folder row from "folder_save" hook
- Fix folder preview frame state after folder creation
| | |
| | | }; |
| | | |
| | | // Add folder row to the table and initialize it |
| | | this.add_folder_row = function (name, display_name, protected, subscribed, skip_init) |
| | | this.add_folder_row = function (name, display_name, protected, subscribed, skip_init, class_name) |
| | | { |
| | | if (!this.gui_objects.subscriptionlist) |
| | | return false; |
| | |
| | | } |
| | | |
| | | // clone a table row if there are existing rows |
| | | row = $(refrow).clone(true); |
| | | row = $(refrow).clone(true); |
| | | |
| | | // set ID, reset css class |
| | | row.attr('id', id); |
| | | row.attr('class', class_name); |
| | | |
| | | // set folder name |
| | | row.find('td:first').html(display_name); |
| | |
| | | }; |
| | | |
| | | // replace an existing table row with a new folder line (with subfolders) |
| | | this.replace_folder_row = function(oldfolder, newfolder, display_name, protected) |
| | | this.replace_folder_row = function(oldfolder, newfolder, display_name, protected, class_name) |
| | | { |
| | | if (!this.gui_objects.subscriptionlist) |
| | | return false; |
| | |
| | | |
| | | // replace an existing table row |
| | | this._remove_folder_row(id); |
| | | row = $(this.add_folder_row(newfolder, display_name, protected, subscribed, true)); |
| | | row = $(this.add_folder_row(newfolder, display_name, protected, subscribed, true, class_name)); |
| | | |
| | | // detect tree depth change |
| | | if (len = list.length) { |
| | |
| | | } |
| | | } |
| | | |
| | | return $options; |
| | | return $options; |
| | | } |
| | | |
| | | // Updates (or creates) folder row in the subscriptions table |
| | | function rcmail_update_folder_row($name, $oldname=null) |
| | | /** |
| | | * Updates (or creates) folder row in the subscriptions table |
| | | * |
| | | * @param string $name Folder name |
| | | * @param string $oldname Old folder name (for update) |
| | | * @param bool $subscribe Checks subscription checkbox |
| | | * @param string $class CSS class name for folder row |
| | | */ |
| | | function rcmail_update_folder_row($name, $oldname=null, $subscribe=false, $class_name=null) |
| | | { |
| | | global $IMAP, $CONFIG, $OUTPUT; |
| | | |
| | |
| | | . Q($protected ? rcmail_localize_foldername($name) : rcube_charset_convert($foldersplit[$level], 'UTF7-IMAP')); |
| | | |
| | | if ($oldname === null) |
| | | $OUTPUT->command('add_folder_row', $name_utf8, $display_name, $protected, true); |
| | | $OUTPUT->command('add_folder_row', $name_utf8, $display_name, $protected, $subscribe, |
| | | false, $class_name); |
| | | else |
| | | $OUTPUT->command('replace_folder_row', rcube_charset_convert($oldname, 'UTF7-IMAP'), |
| | | $name_utf8, $display_name, $protected); |
| | | $name_utf8, $display_name, $protected, $class_name); |
| | | } |
| | | |
| | | |
| | |
| | | |
| | | $folder['name'] = $name_imap; |
| | | $folder['oldname'] = $old_imap; |
| | | $folder['class'] = ''; |
| | | $folder['settings'] = array( |
| | | // List view mode: 0-list, 1-threads |
| | | 'view_mode' => (int) get_input_value('_viewmode', RCUBE_INPUT_POST), |
| | |
| | | // create a new mailbox |
| | | if (!$error && !strlen($old)) { |
| | | |
| | | $folder['subscribe'] = true; |
| | | |
| | | $plugin = $RCMAIL->plugins->exec_hook('folder_create', array('record' => $folder)); |
| | | |
| | | $folder = $plugin['record']; |
| | | |
| | | if (!$plugin['abort']) { |
| | | $created = $IMAP->create_mailbox($folder['name'], TRUE); |
| | | $created = $IMAP->create_mailbox($folder['name'], $folder['subscribe']); |
| | | } |
| | | else { |
| | | $created = $plugin['result']; |
| | |
| | | |
| | | $RCMAIL->user->save_prefs(array('message_threading' => $a_threaded)); |
| | | } |
| | | |
| | | rcmail_update_folder_row($folder['name']); |
| | | |
| | | rcmail_update_folder_row($folder['name'], null, $folder['subscribe'], $folder['class']); |
| | | $OUTPUT->show_message('foldercreated', 'confirmation'); |
| | | // reset folder preview frame |
| | | $OUTPUT->command('subscription_select'); |
| | | $OUTPUT->send('iframe'); |
| | | } |
| | | else { |
| | |
| | | |
| | | $OUTPUT->show_message('folderupdated', 'confirmation'); |
| | | if ($rename) { |
| | | rcmail_update_folder_row($folder['name'], $folder['oldname']); |
| | | rcmail_update_folder_row($folder['name'], $folder['oldname'], $folder['subscribe'], $folder['class']); |
| | | $OUTPUT->send('iframe'); |
| | | } |
| | | } |