From be6a095f83bea9d21002186de4dfdb6e934ddc3e Mon Sep 17 00:00:00 2001 From: Aleksander Machniak <alec@alec.pl> Date: Mon, 21 Jul 2014 05:26:01 -0400 Subject: [PATCH] Use jQuery.each instead of "for (i in Array)" (#1489988) --- program/js/app.js | 138 ++++++++++++++++++++++++--------------------- 1 files changed, 74 insertions(+), 64 deletions(-) diff --git a/program/js/app.js b/program/js/app.js index 895671a..1bf35e4 100644 --- a/program/js/app.js +++ b/program/js/app.js @@ -3375,61 +3375,7 @@ // check for locally stored compose data if (window.localStorage) { - var key, formdata, index = this.local_storage_get_item('compose.index', []); - - for (i = 0; i < index.length; i++) { - key = index[i]; - formdata = this.local_storage_get_item('compose.' + key, null, true); - if (!formdata) { - continue; - } - // restore saved copy of current compose_id - if (formdata.changed && key == this.env.compose_id) { - this.restore_compose_form(key, html_mode); - break; - } - // skip records from 'other' drafts - if (this.env.draft_id && formdata.draft_id && formdata.draft_id != this.env.draft_id) { - continue; - } - // skip records on reply - if (this.env.reply_msgid && formdata.reply_msgid != this.env.reply_msgid) { - continue; - } - // show dialog asking to restore the message - if (formdata.changed && formdata.session != this.env.session_id) { - this.show_popup_dialog( - this.get_label('restoresavedcomposedata') - .replace('$date', new Date(formdata.changed).toLocaleString()) - .replace('$subject', formdata._subject) - .replace(/\n/g, '<br/>'), - this.get_label('restoremessage'), - [{ - text: this.get_label('restore'), - click: function(){ - ref.restore_compose_form(key, html_mode); - ref.remove_compose_data(key); // remove old copy - ref.save_compose_form_local(); // save under current compose_id - $(this).dialog('close'); - } - }, - { - text: this.get_label('delete'), - click: function(){ - ref.remove_compose_data(key); - $(this).dialog('close'); - } - }, - { - text: this.get_label('ignore'), - click: function(){ - $(this).dialog('close'); - } - }] - ); - break; - } - } + this.compose_restore_dialog(0, html_mode) } if (input_to.val() == '') @@ -3447,6 +3393,72 @@ // start the auto-save timer this.auto_save_start(); }; + + this.compose_restore_dialog = function(j, html_mode) + { + var i, key, formdata, index = this.local_storage_get_item('compose.index', []); + + var show_next = function(i) { + if (++i < index.length) + ref.compose_restore_dialog(i, html_mode) + } + + for (i = j || 0; i < index.length; i++) { + key = index[i]; + formdata = this.local_storage_get_item('compose.' + key, null, true); + if (!formdata) { + continue; + } + // restore saved copy of current compose_id + if (formdata.changed && key == this.env.compose_id) { + this.restore_compose_form(key, html_mode); + break; + } + // skip records from 'other' drafts + if (this.env.draft_id && formdata.draft_id && formdata.draft_id != this.env.draft_id) { + continue; + } + // skip records on reply + if (this.env.reply_msgid && formdata.reply_msgid != this.env.reply_msgid) { + continue; + } + // show dialog asking to restore the message + if (formdata.changed && formdata.session != this.env.session_id) { + this.show_popup_dialog( + this.get_label('restoresavedcomposedata') + .replace('$date', new Date(formdata.changed).toLocaleString()) + .replace('$subject', formdata._subject) + .replace(/\n/g, '<br/>'), + this.get_label('restoremessage'), + [{ + text: this.get_label('restore'), + click: function(){ + ref.restore_compose_form(key, html_mode); + ref.remove_compose_data(key); // remove old copy + ref.save_compose_form_local(); // save under current compose_id + $(this).dialog('close'); + } + }, + { + text: this.get_label('delete'), + click: function(){ + ref.remove_compose_data(key); + $(this).dialog('close'); + show_next(i); + } + }, + { + text: this.get_label('ignore'), + click: function(){ + $(this).dialog('close'); + show_next(i); + } + }] + ); + break; + } + } + } this.init_address_input_events = function(obj, props) { @@ -3969,18 +3981,16 @@ return; } - var i, rx, - id = obj.options[obj.selectedIndex].value, + var id = obj.options[obj.selectedIndex].value, sig = this.env.identity, delim = this.env.recipients_separator, - rx_delim = RegExp.escape(delim), - headers = ['replyto', 'bcc']; + rx_delim = RegExp.escape(delim); // update reply-to/bcc fields with addresses defined in identities - for (i in headers) { - var key = headers[i], - old_val = sig && this.env.identities[sig] ? this.env.identities[sig][key] : '', - new_val = id && this.env.identities[id] ? this.env.identities[id][key] : '', + $.each(['replyto', 'bcc'], function() { + var rx, key = this, + old_val = sig && ref.env.identities[sig] ? ref.env.identities[sig][key] : '', + new_val = id && ref.env.identities[id] ? ref.env.identities[id][key] : '', input = $('[name="_'+key+'"]'), input_val = input.val(); // remove old address(es) @@ -4007,7 +4017,7 @@ if (old_val || new_val) input.val(input_val).change(); - } + }); // enable manual signature insert if (this.env.signatures && this.env.signatures[id]) { -- Gitblit v1.9.1