From 84a3312f0b16fdf02061d8bbdc62228290b0beeb Mon Sep 17 00:00:00 2001 From: thomascube Date: Wed, 24 Mar 2010 09:47:45 +0000 Subject: [PATCH] Only select childs when a message row is collapsed but also do it when deleting a thread --- program/js/app.js | 24 +++++++++++++++--------- program/js/list.js | 40 +++++++++++++++++++++++++--------------- 2 files changed, 40 insertions(+), 24 deletions(-) diff --git a/program/js/app.js b/program/js/app.js index ad2ecf50f..1f7290913 100644 --- a/program/js/app.js +++ b/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