Consider sort order in UID sort mode of multi-folder search results

pull/175/head
Thomas Bruederli 10 years ago
parent 5aab24e547
commit 94e797c1fb

@ -988,6 +988,10 @@ class rcube_imap extends rcube_storage
$a_msg_headers = array_slice(array_values($a_msg_headers), $from, $slice_length);
}
else {
if ($this->sort_order != $search_set->get_parameters('ORDER')) {
$search_set->revert();
}
// slice resultset first...
$fetch = array();
foreach (array_slice($search_set->get(), $from, $slice_length) as $msg_id) {

@ -130,6 +130,17 @@ class rcube_result_multifolder
public function revert()
{
$this->order = $this->order == 'ASC' ? 'DESC' : 'ASC';
$this->index = array();
// revert order in all sub-sets
foreach ($this->sets as $set) {
if ($this->order != $set->get_parameters('ORDER')) {
$set->revert();
}
$folder = $set->get_parameters('MAILBOX');
$index = array_map(function($uid) use ($folder) { return $uid . '-' . $folder; }, $set->get());
$this->index = array_merge($this->index, $index);
}
}

Loading…
Cancel
Save