From bba25299f8d1569f560fc66f82837c95145ee121 Mon Sep 17 00:00:00 2001
From: alecpl <alec@alec.pl>
Date: Thu, 22 Sep 2011 03:49:33 -0400
Subject: [PATCH] - Fix bug where after delete message rows can be added to the list of another folder (#1487752)
---
CHANGELOG | 1 +
program/steps/mail/list.inc | 2 +-
program/steps/mail/search.inc | 2 +-
program/steps/mail/folders.inc | 2 +-
program/steps/mail/check_recent.inc | 2 +-
program/steps/mail/func.inc | 2 +-
program/steps/mail/mark.inc | 2 +-
program/js/app.js | 16 ++++++++++++++--
program/steps/mail/move_del.inc | 2 +-
9 files changed, 22 insertions(+), 9 deletions(-)
diff --git a/CHANGELOG b/CHANGELOG
index 61d5f9a..2ae2c77 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,7 @@
CHANGELOG Roundcube Webmail
===========================
+- Fix bug where after delete message rows can be added to the list of another folder (#1487752)
- Add notice on autocompletion that not all records were displayed
- Add option 'searchonly' for LDAP address books
- Add Priority filter to the messages list
diff --git a/program/js/app.js b/program/js/app.js
index 65d4f06..a9fbe98 100644
--- a/program/js/app.js
+++ b/program/js/app.js
@@ -1641,6 +1641,10 @@
if (!this.gui_objects.messagelist || !this.message_list)
return false;
+ // Prevent from adding messages from different folder (#1487752)
+ if (flags.mbox != this.env.mailbox && !flags.skip_mbox_check)
+ return false;
+
if (!this.env.messages[uid])
this.env.messages[uid] = {};
@@ -2091,8 +2095,12 @@
};
// Initializes threads indicators/expanders after list update
- this.init_threads = function(roots)
+ this.init_threads = function(roots, mbox)
{
+ // #1487752
+ if (mbox && mbox != this.env.mailbox)
+ return false;
+
for (var n=0, len=roots.length; n<len; n++)
this.add_tree_icons(roots[n]);
this.expand_threads();
@@ -5463,8 +5471,12 @@
};
// replace content of row count display
- this.set_rowcount = function(text)
+ this.set_rowcount = function(text, mbox)
{
+ // #1487752
+ if (mbox && mbox != this.env.mailbox)
+ return false;
+
$(this.gui_objects.countdisplay).html(text);
// update page navigation buttons
diff --git a/program/steps/mail/check_recent.inc b/program/steps/mail/check_recent.inc
index c7d607c..e22cccc 100644
--- a/program/steps/mail/check_recent.inc
+++ b/program/steps/mail/check_recent.inc
@@ -81,7 +81,7 @@
$OUTPUT->set_env('messagecount', $all_count);
$OUTPUT->set_env('pagecount', ceil($all_count/$IMAP->page_size));
- $OUTPUT->command('set_rowcount', rcmail_get_messagecount_text($all_count));
+ $OUTPUT->command('set_rowcount', rcmail_get_messagecount_text($all_count), $mbox_name);
$OUTPUT->set_env('current_page', $all_count ? $IMAP->list_page : 1);
// remove old rows (and clear selection if new list is empty)
diff --git a/program/steps/mail/folders.inc b/program/steps/mail/folders.inc
index 7ba6f0c..fad2bf3 100644
--- a/program/steps/mail/folders.inc
+++ b/program/steps/mail/folders.inc
@@ -65,7 +65,7 @@
$OUTPUT->set_env('messagecount', 0);
$OUTPUT->set_env('pagecount', 0);
$OUTPUT->command('message_list.clear');
- $OUTPUT->command('set_rowcount', rcmail_get_messagecount_text());
+ $OUTPUT->command('set_rowcount', rcmail_get_messagecount_text(), $mbox);
$OUTPUT->command('set_unread_count', $mbox, 0);
$OUTPUT->command('set_quota', rcmail_quota_content());
rcmail_set_unseen_count($mbox, 0);
diff --git a/program/steps/mail/func.inc b/program/steps/mail/func.inc
index 57ad9c7..6ece175 100644
--- a/program/steps/mail/func.inc
+++ b/program/steps/mail/func.inc
@@ -320,7 +320,7 @@
}
if ($IMAP->threading) {
- $OUTPUT->command('init_threads', (array) $roots);
+ $OUTPUT->command('init_threads', (array) $roots, $mbox);
}
}
diff --git a/program/steps/mail/list.inc b/program/steps/mail/list.inc
index 1f6c21e..9988a00 100644
--- a/program/steps/mail/list.inc
+++ b/program/steps/mail/list.inc
@@ -96,7 +96,7 @@
$OUTPUT->set_env('pagecount', $pages);
$OUTPUT->set_env('threading', (bool) $IMAP->threading);
$OUTPUT->set_env('current_page', $count ? $IMAP->list_page : 1);
-$OUTPUT->command('set_rowcount', rcmail_get_messagecount_text($count));
+$OUTPUT->command('set_rowcount', rcmail_get_messagecount_text($count), $mbox_name);
$OUTPUT->command('set_mailboxname', rcmail_get_mailbox_name_text());
// add message rows
diff --git a/program/steps/mail/mark.inc b/program/steps/mail/mark.inc
index 30ffec0..c232d8c 100644
--- a/program/steps/mail/mark.inc
+++ b/program/steps/mail/mark.inc
@@ -104,7 +104,7 @@
$OUTPUT->command('set_unread_count', $mbox, $unseen_count, ($mbox == 'INBOX'));
rcmail_set_unseen_count($mbox, $unseen_count);
}
- $OUTPUT->command('set_rowcount', rcmail_get_messagecount_text($msg_count));
+ $OUTPUT->command('set_rowcount', rcmail_get_messagecount_text($msg_count), $mbox);
if ($IMAP->threading)
$count = get_input_value('_count', RCUBE_INPUT_POST);
diff --git a/program/steps/mail/move_del.inc b/program/steps/mail/move_del.inc
index e77979a..a42bc90 100644
--- a/program/steps/mail/move_del.inc
+++ b/program/steps/mail/move_del.inc
@@ -121,7 +121,7 @@
}
$OUTPUT->command('set_quota', rcmail_quota_content());
- $OUTPUT->command('set_rowcount', rcmail_get_messagecount_text($msg_count));
+ $OUTPUT->command('set_rowcount', rcmail_get_messagecount_text($msg_count), $mbox);
if ($IMAP->threading)
$count = get_input_value('_count', RCUBE_INPUT_POST);
diff --git a/program/steps/mail/search.inc b/program/steps/mail/search.inc
index c038d77..d34454f 100644
--- a/program/steps/mail/search.inc
+++ b/program/steps/mail/search.inc
@@ -135,7 +135,7 @@
$OUTPUT->set_env('search_request', $search_str ? $search_request : '');
$OUTPUT->set_env('messagecount', $count);
$OUTPUT->set_env('pagecount', ceil($count/$IMAP->page_size));
-$OUTPUT->command('set_rowcount', rcmail_get_messagecount_text($count, 1));
+$OUTPUT->command('set_rowcount', rcmail_get_messagecount_text($count, 1), $mbox);
$OUTPUT->send();
--
Gitblit v1.9.1