From a6cc96a55def228775780b7e0c49eced0a23dc1a Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Wed, 30 Oct 2013 05:02:48 -0400
Subject: [PATCH] Fix archive button on messages page when using archive_type != '' (#1489404)

---
 plugins/archive/archive.php |   12 +++++++++++-
 plugins/archive/archive.js  |    9 ++++++++-
 2 files changed, 19 insertions(+), 2 deletions(-)

diff --git a/plugins/archive/archive.js b/plugins/archive/archive.js
index 3500b9f..cf44b74 100644
--- a/plugins/archive/archive.js
+++ b/plugins/archive/archive.js
@@ -15,7 +15,14 @@
     }
     else {
       // let the server sort the messages to the according subfolders
-      var post_data = { _uid: rcmail.message_list.get_selection().join(','), _mbox: rcmail.env.mailbox };
+      var post_data = { _uid: rcmail.env.uid ? rcmail.env.uid : rcmail.message_list.get_selection().join(','), _mbox: rcmail.env.mailbox };
+
+      if (rcmail.env.display_next && rcmail.env.next_uid)
+        post_data._next_uid = rcmail.env.next_uid;
+
+      if (rcmail.env.action)
+        post_data._from = rcmail.env.action;
+
       rcmail.http_post('plugin.move2archive', post_data);
     }
   }
diff --git a/plugins/archive/archive.php b/plugins/archive/archive.php
index 420f691..291ef13 100644
--- a/plugins/archive/archive.php
+++ b/plugins/archive/archive.php
@@ -208,7 +208,17 @@
       $rcmail->output->show_message($this->gettext('archived'), 'confirmation');
     }
 
-    $rcmail->output->command('plugin.move2archive_response', $result);
+    if ($_POST['_from'] == 'show' && !empty($result['update'])) {
+      if ($next = get_input_value('_next_uid', RCUBE_INPUT_GPC)) {
+        $rcmail->output->command('show_message', $next);
+      }
+      else {
+        $rcmail->output->command('command', 'list');
+      }
+    }
+    else {
+      $rcmail->output->command('plugin.move2archive_response', $result);
+    }
   }
 
   /**

--
Gitblit v1.9.1