CHANGELOG | ●●●●● patch | view | raw | blame | history | |
program/js/app.js | ●●●●● patch | view | raw | blame | history | |
program/js/list.js | ●●●●● patch | view | raw | blame | history |
CHANGELOG
@@ -1,6 +1,7 @@ CHANGELOG Roundcube Webmail =========================== - Fix issue where children of selected and collapsed thread were skipped on various actions (#1489457) - Fix issue where groups were not deleted when "Replace entire addressbook" option on contacts import was used (#1489420) - Fix unreliable mimetype tests in Installer (#1489453) - Fix performance of listing writeable folders (#1489451) program/js/app.js
@@ -2662,20 +2662,7 @@ // delete selected messages from the current mailbox this.delete_messages = function(event) { var uid, i, len, trash = this.env.trash_mailbox, list = this.message_list, selection = list ? list.get_selection() : []; // exit if no mailbox specified or if selection is empty if (!this.env.uid && !selection.length) return; // also select childs of collapsed rows for (i=0, len=selection.length; i<len; i++) { uid = selection[i]; if (list.rows[uid].has_children && !list.rows[uid].expanded) list.select_children(uid); } var list = this.message_list, trash = this.env.trash_mailbox; // if config is set to flag for deletion if (this.env.flag_for_deletion) { @@ -2715,7 +2702,7 @@ this._with_selected_messages('delete', post_data); }; // Send a specifc move/delete request with UIDs of all selected messages // Send a specific move/delete request with UIDs of all selected messages // @private this._with_selected_messages = function(action, post_data, lock) { program/js/list.js
@@ -542,17 +542,18 @@ collapse: function(row) { var r, depth = row.depth, new_row = row ? row.obj.nextSibling : null; row.expanded = false; this.triggerEvent('expandcollapse', { uid:row.uid, expanded:row.expanded, obj:row.obj }); var depth = row.depth; var new_row = row ? row.obj.nextSibling : null; var r; while (new_row) { if (new_row.nodeType == 1) { var r = this.rows[new_row.uid]; r = this.rows[new_row.uid]; if (r && r.depth <= depth) break; $(new_row).css('display', 'none'); if (r.expanded) { r.expanded = false; @@ -564,6 +565,7 @@ this.resize(); this.triggerEvent('listupdate'); return false; }, @@ -1057,9 +1059,26 @@ /** * Getter for the selection array */ get_selection: function() get_selection: function(deep) { return this.selection; var res = $.merge([], this.selection); // return children of selected threads even if only root is selected if (deep !== false && res.length) { for (var uid, uids, i=0, len=res.length; i<len; i++) { uid = res[i]; if (this.rows[uid].has_children && !this.rows[uid].expanded) { uids = this.row_children(uid); for (var j=0, uids_len=uids.length; j<uids_len; j++) { uid = uids[j]; if (!this.in_selection(uid)) res.push(uid); } } } } return res; }, @@ -1325,7 +1344,7 @@ this.draglayer.html(''); // get subjects of selected messages var i, n, obj, me; var n, obj, me = this; for (n=0; n<this.selection.length; n++) { // only show 12 lines if (n>12) { @@ -1333,7 +1352,6 @@ break; } me = this; if (obj = this.rows[this.selection[n]].obj) { $('> '+this.col_tagname(), obj).each(function(i,elem){ if (n == 0) @@ -1541,7 +1559,7 @@ while (row) { if (row.nodeType == 1) { if ((r = this.rows[row.uid])) { if (r = this.rows[row.uid]) { if (!r.depth || r.depth <= depth) break; res.push(r.uid);