From a3644638aaf0418598196a870204e0b632a4c8ad Mon Sep 17 00:00:00 2001 From: Thomas Bruederli <thomas@roundcube.net> Date: Fri, 17 Apr 2015 06:28:40 -0400 Subject: [PATCH] Allow preference sections to define CSS class names --- program/steps/mail/folders.inc | 111 +++++++++++++++++++++++++++++++------------------------ 1 files changed, 62 insertions(+), 49 deletions(-) diff --git a/program/steps/mail/folders.inc b/program/steps/mail/folders.inc index 26f464b..49bf253 100644 --- a/program/steps/mail/folders.inc +++ b/program/steps/mail/folders.inc @@ -5,8 +5,11 @@ | program/steps/mail/folders.inc | | | | This file is part of the Roundcube Webmail client | - | Copyright (C) 2005-2009, Roundcube Dev. - Switzerland | - | Licensed under the GNU GPL | + | Copyright (C) 2005-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | | | | PURPOSE: | | Implement folder operations line EXPUNGE and Clear | @@ -14,61 +17,71 @@ +-----------------------------------------------------------------------+ | Author: Thomas Bruederli <roundcube@gmail.com> | +-----------------------------------------------------------------------+ - - $Id$ */ // only process ajax requests -if (!$OUTPUT->ajax_call) - return; +if (!$OUTPUT->ajax_call) { + return; +} -$mbox = get_input_value('_mbox', RCUBE_INPUT_POST, true); +$mbox = rcube_utils::get_input_value('_mbox', rcube_utils::INPUT_POST, true); // send EXPUNGE command -if ($RCMAIL->action=='expunge') -{ - $success = $IMAP->expunge($mbox); +if ($RCMAIL->action == 'expunge') { + $success = $RCMAIL->storage->expunge_folder($mbox); - // reload message list if current mailbox - if ($success && !empty($_REQUEST['_reload'])) - { - $OUTPUT->command('set_quota', rcmail_quota_content()); - $OUTPUT->command('message_list.clear'); - $RCMAIL->action = 'list'; - return; - } - else - $commands = "// expunged: $success\n"; -} + // reload message list if current mailbox + if ($success) { + $OUTPUT->show_message('folderexpunged', 'confirmation'); -// clear mailbox -else if ($RCMAIL->action=='purge') -{ - $delimiter = $IMAP->get_hierarchy_delimiter(); - $trash_regexp = '/^' . preg_quote($CONFIG['trash_mbox'] . $delimiter, '/') . '/'; - $junk_regexp = '/^' . preg_quote($CONFIG['junk_mbox'] . $delimiter, '/') . '/'; - - // we should only be purging trash and junk (or their subfolders) - if ($mbox == $CONFIG['trash_mbox'] || $mbox == $CONFIG['junk_mbox'] - || preg_match($trash_regexp, $mbox) || preg_match($junk_regexp, $mbox)) - { - $success = $IMAP->clear_mailbox($mbox); - - if ($success && !empty($_REQUEST['_reload'])) - { - $OUTPUT->set_env('messagecount', 0); - $OUTPUT->set_env('pagecount', 0); - $OUTPUT->command('message_list.clear'); - $OUTPUT->command('set_rowcount', rcmail_get_messagecount_text()); - $OUTPUT->command('set_unread_count', $mbox, 0); - $OUTPUT->command('set_quota', rcmail_quota_content()); - $_SESSION['unseen_count'][$mbox] = 0; + if (!empty($_REQUEST['_reload'])) { + $OUTPUT->command('set_quota', $RCMAIL->quota_content(null, $mbox)); + $OUTPUT->command('message_list.clear'); + $RCMAIL->action = 'list'; + return; + } } - else - $commands = "// purged: $success"; - } + else { + $RCMAIL->display_server_error(); + } +} +// clear mailbox +else if ($RCMAIL->action == 'purge') { + $delimiter = $RCMAIL->storage->get_hierarchy_delimiter(); + $trash_mbox = $RCMAIL->config->get('trash_mbox'); + $junk_mbox = $RCMAIL->config->get('junk_mbox'); + $trash_regexp = '/^' . preg_quote($trash_mbox . $delimiter, '/') . '/'; + $junk_regexp = '/^' . preg_quote($junk_mbox . $delimiter, '/') . '/'; + + // we should only be purging trash and junk (or their subfolders) + if ($mbox == $trash_mbox || $mbox == $junk_mbox + || preg_match($trash_regexp, $mbox) || preg_match($junk_regexp, $mbox) + ) { + $success = $RCMAIL->storage->clear_folder($mbox); + + if ($success) { + $OUTPUT->show_message('folderpurged', 'confirmation'); + + if (!empty($_REQUEST['_reload'])) { + $OUTPUT->set_env('messagecount', 0); + $OUTPUT->set_env('pagecount', 0); + $OUTPUT->set_env('exists', 0); + $OUTPUT->command('message_list.clear'); + $OUTPUT->command('set_rowcount', rcmail_get_messagecount_text(), $mbox); + $OUTPUT->command('set_unread_count', $mbox, 0); + $OUTPUT->command('set_quota', $RCMAIL->quota_content(null, $mbox)); + rcmail_set_unseen_count($mbox, 0); + + // set trash folder state + if ($mbox === $trash_mbox) { + $OUTPUT->command('set_trash_count', 0); + } + } + } + else { + $RCMAIL->display_server_error(); + } + } } -$OUTPUT->send($commands); - - +$OUTPUT->send(); -- Gitblit v1.9.1