Fix message UID extraction for _uid=*; update unread count for all affected mailboxes

pull/175/head
Thomas Bruederli 10 years ago
parent 0ccef59cfa
commit 0f48e6e660

@ -2029,13 +2029,24 @@ class rcmail extends rcube
return $uid;
}
// create a per-folder UIDs array
$result = array();
foreach (explode(',', $_uid) as $uid) {
list($uid, $mbox) = explode('-', $uid, 2);
if (empty($mbox))
$mbox = $_mbox;
$result[$mbox][] = $uid;
// special case: *
if ($_uid == '*' && is_object($_SESSION['search'][1]) && $_SESSION['search'][1]->multi) {
// extract the full list of UIDs per folder from the search set
foreach ($_SESSION['search'][1]->sets as $subset) {
$mbox = $subset->get_parameters('MAILBOX');
$result[$mbox] = $subset->get();
}
}
else {
// create a per-folder UIDs array
foreach (explode(',', $_uid) as $uid) {
list($uid, $mbox) = explode('-', $uid, 2);
if (empty($mbox))
$mbox = $_mbox;
$result[$mbox][] = $uid;
}
}
return $result;

@ -4,7 +4,7 @@
| program/steps/mail/mark.inc |
| |
| This file is part of the Roundcube Webmail client |
| Copyright (C) 2005-2013, The Roundcube Dev Team |
| Copyright (C) 2005-2014, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
@ -76,7 +76,9 @@ if (($_uids = rcube_utils::get_input_value('_uid', rcube_utils::INPUT_POST))
}
if ($flag == 'SEEN' || $flag == 'UNSEEN' || ($flag == 'DELETED' && !$skip_deleted)) {
rcmail_send_unread_count($RCMAIL->storage->get_folder());
foreach (rcmail::get_uids() as $mbox => $uids) {
rcmail_send_unread_count($mbox);
}
}
else if ($flag == 'DELETED' && $skip_deleted) {
if ($_POST['_from'] == 'show') {

Loading…
Cancel
Save