From 04a6889246b23292c820dc50f3eb432f497361b1 Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Wed, 10 Jun 2015 02:53:40 -0400
Subject: [PATCH] Fix bug where some messages in multi-folder search couldn't be opened (#1490426)

---
 CHANGELOG         |    1 +
 program/js/app.js |   25 ++++++++++++++-----------
 2 files changed, 15 insertions(+), 11 deletions(-)

diff --git a/CHANGELOG b/CHANGELOG
index 0ffaf76..f8c41e1 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -13,6 +13,7 @@
 - Fix so unrecognized TNEF attachments are displayed on the list of attachments (#1490351)
 - Fix "Importing..." message does not hide on error (#1490422)
 - Fix Compose action in addressbook for results from multiple addressbooks (#1490413)
+- Fix bug where some messages in multi-folder search couldn't be opened (#1490426)
 
 RELEASE 1.1.2
 -------------
diff --git a/program/js/app.js b/program/js/app.js
index b3e4632..ce97ecc 100644
--- a/program/js/app.js
+++ b/program/js/app.js
@@ -2233,35 +2233,38 @@
       return;
 
     var win, target = window,
-      action = preview ? 'preview': 'show',
-      url = '&_action='+action+'&_uid='+id+'&_mbox='+urlencode(this.get_message_mailbox(id));
+      url = {
+        _uid: id,
+        _mbox: this.get_message_mailbox(id),
+        // add browser capabilities, so we can properly handle attachments
+        _caps: this.browser_capabilities()
+      };
 
     if (preview && (win = this.get_frame_window(this.env.contentframe))) {
       target = win;
-      url += '&_framed=1';
+      url._framed = 1;
     }
 
     if (safe)
-      url += '&_safe=1';
+      url._safe = 1;
 
     // also send search request to get the right messages
     if (this.env.search_request)
-      url += '&_search='+this.env.search_request;
-
-    // add browser capabilities, so we can properly handle attachments
-    url += '&_caps='+urlencode(this.browser_capabilities());
+      url._search = this.env.search_request;
 
     if (this.env.extwin)
-      url += '&_extwin=1';
+      url._extwin = 1;
+
+    url = this.url(preview ? 'preview': 'show', url);
 
     if (preview && String(target.location.href).indexOf(url) >= 0) {
       this.show_contentframe(true);
     }
     else {
       if (!preview && this.env.message_extwin && !this.env.extwin)
-        this.open_window(this.env.comm_path+url, true);
+        this.open_window(url, true);
       else
-        this.location_href(this.env.comm_path+url, target, true);
+        this.location_href(url, target, true);
 
       // mark as read and change mbox unread counter
       if (preview && this.message_list && this.message_list.rows[id] && this.message_list.rows[id].unread && this.env.preview_pane_mark_read > 0) {

--
Gitblit v1.9.1