summaryrefslogtreecommitdiff
path: root/roundcubemail/program/js/app.js
diff options
context:
space:
mode:
authorthomasb <thomasb@208e9e7b-5314-0410-a742-e7e81cd9613c>2010-03-24 09:47:45 +0000
committerthomasb <thomasb@208e9e7b-5314-0410-a742-e7e81cd9613c>2010-03-24 09:47:45 +0000
commitb16eb8ab3519bb5f32c421c0b53dc493df3cdf56 (patch)
tree24d91f085c140e15ed512f513b70092369647b61 /roundcubemail/program/js/app.js
parent5ccb2b88ddec6daa6f78ab29a6f18b888184b548 (diff)
Only select childs when a message row is collapsed but also do it when deleting a thread
git-svn-id: https://svn.roundcube.net/trunk@3411 208e9e7b-5314-0410-a742-e7e81cd9613c
Diffstat (limited to 'roundcubemail/program/js/app.js')
-rw-r--r--roundcubemail/program/js/app.js24
1 files changed, 15 insertions, 9 deletions
diff --git a/roundcubemail/program/js/app.js b/roundcubemail/program/js/app.js
index ad2ecf50f..1f7290913 100644
--- a/roundcubemail/program/js/app.js
+++ b/roundcubemail/program/js/app.js
@@ -2203,32 +2203,38 @@ function rcube_webmail()
// delete selected messages from the current mailbox
this.delete_messages = function()
- {
- var selection = this.message_list ? this.message_list.get_selection() : new Array();
+ {
+ var selection = this.message_list ? $.merge([], this.message_list.get_selection()) : new Array();
// exit if no mailbox specified or if selection is empty
if (!this.env.uid && !selection.length)
return;
-
+
+ // also select childs of collapsed rows
+ for (var uid, i=0; i < selection.length; i++) {
+ uid = selection[i];
+ if (this.message_list.rows[uid].has_children && !this.message_list.rows[uid].expanded)
+ this.message_list.select_childs(uid);
+ }
+
// if config is set to flag for deletion
if (this.env.flag_for_deletion) {
this.mark_message('delete');
return false;
- }
+ }
// if there isn't a defined trash mailbox or we are in it
else if (!this.env.trash_mailbox || this.env.mailbox == this.env.trash_mailbox)
this.permanently_remove_messages();
// if there is a trash mailbox defined and we're not currently in it
else {
// if shift was pressed delete it immediately
- if (this.message_list && this.message_list.shiftkey)
- {
+ if (this.message_list && this.message_list.shiftkey) {
if (confirm(this.get_label('deletemessagesconfirm')))
this.permanently_remove_messages();
- }
+ }
else
this.move_messages(this.env.trash_mailbox);
- }
+ }
return true;
};
@@ -2260,7 +2266,7 @@ function rcube_webmail()
for (var n=0; n<selection.length; n++) {
id = selection[n];
a_uids[a_uids.length] = id;
- count += this.update_thread(id);
+ count += this.update_thread(id);
this.message_list.remove_row(id, (this.env.display_next && n == selection.length-1));
}
// make sure there are no selected rows