From fb7ec576ab3a353b6eb99614e9636a9096462807 Mon Sep 17 00:00:00 2001 From: alecpl Date: Thu, 25 Mar 2010 16:29:02 +0000 Subject: - Added possibility to select all messages in a folder (#1484756) --- program/js/app.js | 81 ++++++++++++++++++++++++++++++------------------------- 1 file changed, 44 insertions(+), 37 deletions(-) (limited to 'program/js/app.js') diff --git a/program/js/app.js b/program/js/app.js index 1f7290913..0fc5e7675 100644 --- a/program/js/app.js +++ b/program/js/app.js @@ -489,8 +489,8 @@ function rcube_webmail() case 'menu-open': case 'menu-save': - this.triggerEvent(command, {props:props}); - return false; + this.triggerEvent(command, {props:props}); + return false; break; case 'open': @@ -753,10 +753,11 @@ function rcube_webmail() break; case 'select-all': + this.select_all_mode = props ? false : true; if (props == 'invert') this.message_list.invert_selection(); else - this.message_list.select_all(props); + this.message_list.select_all(props == 'page' ? '' : props); break; case 'select-none': @@ -1833,9 +1834,10 @@ function rcube_webmail() // unselect selected messages this.last_selected = 0; - if (this.message_list) + if (this.message_list) { this.message_list.clear_selection(); - + this.select_all_mode = false; + } this.select_folder(mbox, this.env.mailbox); this.env.mailbox = mbox; @@ -2254,8 +2256,8 @@ function rcube_webmail() // @private this._with_selected_messages = function(action, lock, add_url) { - var a_uids = new Array(); - var count = 0; + var a_uids = new Array(), + count = 0; if (this.env.uid) a_uids[0] = this.env.uid; @@ -2287,8 +2289,10 @@ function rcube_webmail() // remove threads from the end of the list this.delete_excessive_thread_rows(); + add_url += '&_uid='+this.uids_to_list(a_uids); + // send request to server - this.http_post(action, '_uid='+a_uids.join(',')+'&_mbox='+urlencode(this.env.mailbox)+add_url, lock); + this.http_post(action, '_mbox='+urlencode(this.env.mailbox)+add_url, lock); }; // set a specific flag to one or more messages @@ -2355,7 +2359,7 @@ function rcube_webmail() for (var i=0; i 0) // remove threads from the end of the list this.delete_excessive_thread_rows(); - } + } add_url = '&_from='+(this.env.action ? this.env.action : ''); + // ?? if (r_uids.length) - add_url += '&_ruid='+r_uids.join(','); + add_url += '&_ruid='+this.uids_to_list(r_uids); if (this.env.skip_deleted) { // also send search request to get the right messages @@ -2464,7 +2467,7 @@ function rcube_webmail() add_url += '&_next_uid='+this.env.next_uid; } - this.http_post('mark', '_uid='+a_uids.join(',')+'&_flag=delete'+add_url); + this.http_post('mark', '_uid='+this.uids_to_list(a_uids)+'&_flag=delete'+add_url); return true; }; @@ -2472,21 +2475,25 @@ function rcube_webmail() // argument should be a coma-separated list of uids this.flag_deleted_as_read = function(uids) { - var icn_src; - var rows = this.message_list ? this.message_list.rows : new Array(); - var str = String(uids); - var a_uids = new Array(); + var icn_src, uid, + rows = this.message_list ? this.message_list.rows : new Array(), + str = String(uids), + a_uids = str.split(','); - a_uids = str.split(','); - - for (var uid, i=0; i