diff options
Diffstat (limited to 'program/steps/mail/folders.inc')
-rw-r--r-- | program/steps/mail/folders.inc | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/program/steps/mail/folders.inc b/program/steps/mail/folders.inc index d7cfd93f3..1c9ed0dae 100644 --- a/program/steps/mail/folders.inc +++ b/program/steps/mail/folders.inc @@ -27,7 +27,6 @@ $mbox = rcube_utils::get_input_value('_mbox', rcube_utils::INPUT_POST, true); // send EXPUNGE command if ($RCMAIL->action == 'expunge') { - $success = $RCMAIL->storage->expunge_folder($mbox); // reload message list if current mailbox @@ -45,16 +44,16 @@ if ($RCMAIL->action == 'expunge') { $RCMAIL->display_server_error(); } } - // clear mailbox -else if ($RCMAIL->action == 'purge') -{ - $delimiter = $RCMAIL->storage->get_hierarchy_delimiter(); - $trash_regexp = '/^' . preg_quote($CONFIG['trash_mbox'] . $delimiter, '/') . '/'; - $junk_regexp = '/^' . preg_quote($CONFIG['junk_mbox'] . $delimiter, '/') . '/'; +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 == $CONFIG['trash_mbox'] || $mbox == $CONFIG['junk_mbox'] + if ($mbox == $trash_mbox || $mbox == $junk_mbox || preg_match($trash_regexp, $mbox) || preg_match($junk_regexp, $mbox) ) { $success = $RCMAIL->storage->clear_folder($mbox); @@ -71,6 +70,11 @@ else if ($RCMAIL->action == 'purge') $OUTPUT->command('set_unread_count', $mbox, 0); $OUTPUT->command('set_quota', $RCMAIL->quota_content()); rcmail_set_unseen_count($mbox, 0); + + // set trash folder state + if ($mbox === $trash_mbox) { + $OUTPUT->command('set_trash_count', 0); + } } } else { |