From 442f37c3139c21a7fc2d0bc81f9ac52ba157e986 Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Wed, 30 Oct 2013 06:02:34 -0400
Subject: [PATCH] Fix list update after archive action on search result

---
 plugins/archive/archive.php |    6 ++++++
 plugins/archive/archive.js  |    2 +-
 2 files changed, 7 insertions(+), 1 deletions(-)

diff --git a/plugins/archive/archive.js b/plugins/archive/archive.js
index 5097b53..17a1ecd 100644
--- a/plugins/archive/archive.js
+++ b/plugins/archive/archive.js
@@ -53,7 +53,7 @@
     // callback for server response
     rcmail.addEventListener('plugin.move2archive_response', function(result) {
       if (result.update)
-        rcmail.command('checkmail');  // refresh list
+        rcmail.command('list');  // refresh list
     });
   })
 }
diff --git a/plugins/archive/archive.php b/plugins/archive/archive.php
index ca32e73..4a00d5f5 100644
--- a/plugins/archive/archive.php
+++ b/plugins/archive/archive.php
@@ -123,6 +123,7 @@
     $result  = array('reload' => false, 'update' => false, 'errors' => array());
     $folders = array();
     $uids    = rcube_utils::get_input_value('_uid', RCUBE_INPUT_POST);
+    $search_request = get_input_value('_search', RCUBE_INPUT_GPC);
 
     if ($uids == '*') {
       $index = $storage->index(null, rcmail_sort_column(), rcmail_sort_order());
@@ -216,6 +217,11 @@
       $rcmail->output->show_message($this->gettext('archived'), 'confirmation');
     }
 
+    // refresh saved search set after moving some messages
+    if ($search_request && $rcmail->storage->get_search_set()) {
+        $_SESSION['search'] = $rcmail->storage->refresh_search();
+    }
+
     if ($_POST['_from'] == 'show' && !empty($result['update'])) {
       if ($next = get_input_value('_next_uid', RCUBE_INPUT_GPC)) {
         $rcmail->output->command('show_message', $next);

--
Gitblit v1.9.1