summaryrefslogtreecommitdiff
path: root/program/lib/Roundcube/rcube_result_multifolder.php
diff options
context:
space:
mode:
authorAleksander Machniak <alec@alec.pl>2014-04-10 08:41:34 +0200
committerAleksander Machniak <alec@alec.pl>2014-04-10 08:41:34 +0200
commiteddaf0b5f68c9863181b62db33bc468d38071e8a (patch)
tree16028e6f44573377ba901f097d64e97b1b79f6c2 /program/lib/Roundcube/rcube_result_multifolder.php
parent70c0d256841aa736a3f4a74a345ec4b0dfcdad78 (diff)
parent39ca69b0072a618c0ccc112a016a44970c6667f7 (diff)
Merge branch 'master' of github.com:roundcube/roundcubemail
Diffstat (limited to 'program/lib/Roundcube/rcube_result_multifolder.php')
-rw-r--r--program/lib/Roundcube/rcube_result_multifolder.php11
1 files changed, 11 insertions, 0 deletions
diff --git a/program/lib/Roundcube/rcube_result_multifolder.php b/program/lib/Roundcube/rcube_result_multifolder.php
index 74a3d7805..b5473b841 100644
--- a/program/lib/Roundcube/rcube_result_multifolder.php
+++ b/program/lib/Roundcube/rcube_result_multifolder.php
@@ -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);
+ }
}