From b7fd98e338d64027c1df26c88e0fa66e1988dc74 Mon Sep 17 00:00:00 2001
From: alecpl <alec@alec.pl>
Date: Thu, 08 Sep 2011 10:45:26 -0400
Subject: [PATCH] - Fix compacting folder resets message list filter (#1488076) - Fix reset-search action so it resets list page number to 1

---
 CHANGELOG                      |    1 +
 program/include/rcube_imap.php |    2 +-
 program/js/app.js              |   15 ++++++++-------
 3 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/CHANGELOG b/CHANGELOG
index 2009c7e..1a301f4 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,7 @@
 CHANGELOG Roundcube Webmail
 ===========================
 
+- Fix compacting folder resets message list filter (#1488076)
 - Fix displaying multipart/alternative messages with only one part (#1487938)
 - Rewritten messages caching:
   Indexes are stored in a separate table, so there's no need to store all messages in a folder
diff --git a/program/include/rcube_imap.php b/program/include/rcube_imap.php
index d14a643..dfbee76 100644
--- a/program/include/rcube_imap.php
+++ b/program/include/rcube_imap.php
@@ -426,7 +426,7 @@
     function set_search_set($str=null, $msgs=null, $charset=null, $sort_field=null, $threads=false, $sorted=false)
     {
         if (is_array($str) && $msgs == null)
-            list($str, $msgs, $charset, $sort_field, $threads) = $str;
+            list($str, $msgs, $charset, $sort_field, $threads, $sorted) = $str;
         if ($msgs === false)
             $msgs = array();
         else if ($msgs != null && !is_array($msgs))
diff --git a/program/js/app.js b/program/js/app.js
index 002f345..4233611 100644
--- a/program/js/app.js
+++ b/program/js/app.js
@@ -990,14 +990,14 @@
         this.select_all_mode = false;
 
         if (s && this.env.mailbox)
-          this.list_mailbox(this.env.mailbox);
+          this.list_mailbox(this.env.mailbox, 1);
         else if (s && this.task == 'addressbook') {
           if (this.env.source == '') {
             for (n in this.env.address_sources) break;
             this.env.source = n;
             this.env.group = '';
           }
-          this.list_contacts(this.env.source, this.env.group);
+          this.list_contacts(this.env.source, this.env.group, 1);
         }
         break;
 
@@ -2797,14 +2797,15 @@
 
   this.expunge_mailbox = function(mbox)
   {
-    var lock = false,
-      url = '_mbox='+urlencode(mbox);
+    var lock, url = '_mbox='+urlencode(mbox);
 
     // lock interface if it's the active mailbox
     if (mbox == this.env.mailbox) {
-       lock = this.set_busy(true, 'loading');
-       url += '&_reload=1';
-     }
+      lock = this.set_busy(true, 'loading');
+      url += '&_reload=1';
+      if (this.env.search_request)
+        url += '&_search='+this.env.search_request;
+    }
 
     // send request to server
     this.http_post('expunge', url, lock);

--
Gitblit v1.9.1