diff options
Diffstat (limited to 'program/js')
-rw-r--r-- | program/js/app.js | 106 |
1 files changed, 57 insertions, 49 deletions
diff --git a/program/js/app.js b/program/js/app.js index eba53bd56..d7bdfbf63 100644 --- a/program/js/app.js +++ b/program/js/app.js @@ -273,7 +273,7 @@ function rcube_webmail() // show printing dialog else if (this.env.action == 'print' && this.env.uid) if (bw.safari) - window.setTimeout('window.print()', 10); + setTimeout('window.print()', 10); else window.print(); @@ -770,7 +770,7 @@ function rcube_webmail() case 'always-load': if (this.env.uid && this.env.sender) { this.add_contact(urlencode(this.env.sender)); - window.setTimeout(function(){ ref.command('load-images'); }, 300); + setTimeout(function(){ ref.command('load-images'); }, 300); break; } @@ -788,7 +788,7 @@ function rcube_webmail() qstring += '&_safe=1'; this.attachment_win = window.open(this.env.comm_path+'&_action=get&'+qstring+'&_frame=1', 'rcubemailattachment'); if (this.attachment_win) { - window.setTimeout(function(){ ref.attachment_win.focus(); }, 10); + setTimeout(function(){ ref.attachment_win.focus(); }, 10); break; } } @@ -911,19 +911,25 @@ function rcube_webmail() break; case 'savedraft': + var form = this.gui_objects.messageform, msgid; + // Reset the auto-save timer - self.clearTimeout(this.save_timer); + clearTimeout(this.save_timer); - if (!this.gui_objects.messageform) + // saving Drafts is disabled + if (!form) break; - // if saving Drafts is disabled in main.inc.php - // or if compose form did not change - if (!this.env.drafts_mailbox || this.cmp_hash == this.compose_field_hash()) + // compose form did not change + if (this.cmp_hash == this.compose_field_hash()) { + this.auto_save_start(); break; + } + + // re-set keep-alive timeout + this.start_keepalive(); - var form = this.gui_objects.messageform, - msgid = this.set_busy(true, 'savingmessage'); + msgid = this.set_busy(true, 'savingmessage'); form.target = "savetarget"; form._draft.value = '1'; @@ -939,7 +945,7 @@ function rcube_webmail() break; // Reset the auto-save timer - self.clearTimeout(this.save_timer); + clearTimeout(this.save_timer); // all checks passed, send message var lang = this.spellcheck_lang(), @@ -958,7 +964,7 @@ function rcube_webmail() case 'send-attachment': // Reset the auto-save timer - self.clearTimeout(this.save_timer); + clearTimeout(this.save_timer); this.upload_file(props || this.gui_objects.uploadform); break; @@ -1005,7 +1011,7 @@ function rcube_webmail() if (uid = this.get_single_uid()) { ref.printwin = window.open(this.env.comm_path+'&_action=print&_uid='+uid+'&_mbox='+urlencode(this.env.mailbox)+(this.env.safemode ? '&_safe=1' : '')); if (this.printwin) { - window.setTimeout(function(){ ref.printwin.focus(); }, 20); + setTimeout(function(){ ref.printwin.focus(); }, 20); if (this.env.action != 'show') this.mark_message('read', uid); } @@ -1016,7 +1022,7 @@ function rcube_webmail() if (uid = this.get_single_uid()) { ref.sourcewin = window.open(this.env.comm_path+'&_action=viewsource&_uid='+uid+'&_mbox='+urlencode(this.env.mailbox)); if (this.sourcewin) - window.setTimeout(function(){ ref.sourcewin.focus(); }, 20); + setTimeout(function(){ ref.sourcewin.focus(); }, 20); } break; @@ -1161,7 +1167,7 @@ function rcube_webmail() // set timer for requests if (a && this.env.request_timeout) - this.request_timer = window.setTimeout(function(){ ref.request_timed_out(); }, this.env.request_timeout * 1000); + this.request_timer = setTimeout(function(){ ref.request_timed_out(); }, this.env.request_timeout * 1000); return id; }; @@ -1213,7 +1219,7 @@ function rcube_webmail() if (this.is_framed()) parent.rcmail.reload(delay); else if (delay) - window.setTimeout(function(){ rcmail.reload(); }, delay); + setTimeout(function(){ rcmail.reload(); }, delay); else if (window.location) location.href = this.env.comm_path + (this.env.action ? '&_action='+this.env.action : ''); }; @@ -1346,7 +1352,7 @@ function rcube_webmail() this.env.last_folder_target = null; if (this.folder_auto_timer) { - window.clearTimeout(this.folder_auto_timer); + clearTimeout(this.folder_auto_timer); this.folder_auto_timer = null; this.folder_auto_expand = null; } @@ -1399,15 +1405,15 @@ function rcube_webmail() // if the folder is collapsed, expand it after 1sec and restart the drag & drop process. if (div.hasClass('collapsed')) { if (this.folder_auto_timer) - window.clearTimeout(this.folder_auto_timer); + clearTimeout(this.folder_auto_timer); this.folder_auto_expand = this.env.mailboxes[k].id; - this.folder_auto_timer = window.setTimeout(function() { + this.folder_auto_timer = setTimeout(function() { rcmail.command('collapse-folder', rcmail.folder_auto_expand); rcmail.drag_start(null); }, 1000); } else if (this.folder_auto_timer) { - window.clearTimeout(this.folder_auto_timer); + clearTimeout(this.folder_auto_timer); this.folder_auto_timer = null; this.folder_auto_expand = null; } @@ -1559,7 +1565,7 @@ function rcube_webmail() // start timer for message preview (wait for double click) if (selected && this.env.contentframe && !list.multi_selecting && !this.dummy_select) - this.preview_timer = window.setTimeout(function(){ ref.msglist_get_preview(); }, 200); + this.preview_timer = setTimeout(function(){ ref.msglist_get_preview(); }, 200); else if (this.env.contentframe) this.show_contentframe(false); }; @@ -1576,7 +1582,7 @@ function rcube_webmail() clearTimeout(this.preview_timer); if (this.preview_read_timer) clearTimeout(this.preview_read_timer); - this.preview_timer = window.setTimeout(function(){ ref.msglist_get_preview(); }, 200); + this.preview_timer = setTimeout(function(){ ref.msglist_get_preview(); }, 200); } } }; @@ -1962,7 +1968,7 @@ function rcube_webmail() // mark as read and change mbox unread counter if (action == 'preview' && this.message_list && this.message_list.rows[id] && this.message_list.rows[id].unread && this.env.preview_pane_mark_read >= 0) { - this.preview_read_timer = window.setTimeout(function() { + this.preview_read_timer = setTimeout(function() { ref.set_message(id, 'unread', false); ref.update_thread_root(id, 'read'); if (ref.env.unread_counts[ref.env.mailbox]) { @@ -3142,7 +3148,7 @@ function rcube_webmail() tinyMCE.execCommand('mceAddControl', false, props.id); if (this.env.default_font) - window.setTimeout(function() { + setTimeout(function() { $(tinyMCE.get(props.id).getBody()).css('font-family', rcmail.env.default_font); }, 500); } @@ -3241,7 +3247,7 @@ function rcube_webmail() this.auto_save_start = function() { if (this.env.draft_autosave) - this.save_timer = self.setTimeout(function(){ ref.command("savedraft"); }, this.env.draft_autosave * 1000); + this.save_timer = setTimeout(function(){ ref.command("savedraft"); }, this.env.draft_autosave * 1000); // Unlock interface now that saving is complete this.busy = false; @@ -3250,20 +3256,11 @@ function rcube_webmail() this.compose_field_hash = function(save) { // check input fields - var ed, str = '', - value_to = $("[name='_to']").val(), - value_cc = $("[name='_cc']").val(), - value_bcc = $("[name='_bcc']").val(), - value_subject = $("[name='_subject']").val(); - - if (value_to) - str += value_to+':'; - if (value_cc) - str += value_cc+':'; - if (value_bcc) - str += value_bcc+':'; - if (value_subject) - str += value_subject+':'; + var ed, i, val, str = '', hash_fields = ['to', 'cc', 'bcc', 'subject']; + + for (i=0; i<hash_fields.length; i++) + if (val = $('[name="_' + hash_fields[i] + '"]').val()) + str += val + ':'; if (window.tinyMCE && (ed = tinyMCE.get(this.env.composebody))) str += ed.getContent(); @@ -3526,7 +3523,7 @@ function rcube_webmail() this.upload_progress_start = function(action, name) { - window.setTimeout(function() { rcmail.http_request(action, {_progress: name}); }, + setTimeout(function() { rcmail.http_request(action, {_progress: name}); }, this.env.upload_progress_time * 1000); }; @@ -3626,7 +3623,7 @@ function rcube_webmail() { this.display_message(msg, type); // before redirect we need to wait some time for Chrome (#1486177) - window.setTimeout(function(){ ref.list_mailbox(); }, 500); + setTimeout(function(){ ref.list_mailbox(); }, 500); }; @@ -3684,11 +3681,11 @@ function rcube_webmail() case 37: // left case 39: // right if (mod != SHIFT_KEY) - return; + return; } // start timer - this.ksearch_timer = window.setTimeout(function(){ ref.ksearch_get_results(props); }, 200); + this.ksearch_timer = setTimeout(function(){ ref.ksearch_get_results(props); }, 200); this.ksearch_input = obj; return true; @@ -3995,7 +3992,7 @@ function rcube_webmail() source = this.env.source ? this.env.address_sources[this.env.source] : null; if (id = list.get_single_selection()) - this.preview_timer = window.setTimeout(function(){ ref.load_contact(id, 'show'); }, 200); + this.preview_timer = setTimeout(function(){ ref.load_contact(id, 'show'); }, 200); else if (this.env.contentframe) this.show_contentframe(false); @@ -4599,6 +4596,14 @@ function rcube_webmail() if (colprop.type == 'date' && $.datepicker) input.datepicker(); } + else if (colprop.type == 'textarea') { + input = $('<textarea>') + .addClass('ff_'+col) + .attr({ name: '_'+col+name_suffix, cols:colprop.size, rows:colprop.rows }) + .appendTo(cell); + + this.init_edit_field(col, input); + } else if (colprop.type == 'composite') { var childcol, cp, first, templ, cols = [], suffices = []; // read template for composite field order @@ -5524,7 +5529,7 @@ function rcube_webmail() } // add element and set timeout this.messages[key].elements.push(id); - window.setTimeout(function() { ref.hide_message(id, type == 'loading'); }, timeout); + setTimeout(function() { ref.hide_message(id, type == 'loading'); }, timeout); return id; } @@ -5544,7 +5549,7 @@ function rcube_webmail() this.triggerEvent('message', { message:msg, type:type, timeout:timeout, object:obj }); if (timeout > 0) - window.setTimeout(function() { ref.hide_message(id, type == 'loading'); }, timeout); + setTimeout(function() { ref.hide_message(id, type == 'loading'); }, timeout); return id; }; @@ -6196,12 +6201,15 @@ function rcube_webmail() // starts interval for keep-alive/check-recent signal this.start_keepalive = function() { + if (!this.env.keep_alive || this.env.framed) + return; + if (this._int) clearInterval(this._int); - if (this.env.keep_alive && !this.env.framed && this.task == 'mail' && this.gui_objects.mailboxlist) + if (this.task == 'mail' && this.gui_objects.mailboxlist) this._int = setInterval(function(){ ref.check_for_recent(false); }, this.env.keep_alive * 1000); - else if (this.env.keep_alive && !this.env.framed && this.task != 'login' && this.env.action != 'print') + else if (this.task != 'login' && this.env.action != 'print') this._int = setInterval(function(){ ref.keep_alive(); }, this.env.keep_alive * 1000); }; @@ -6262,7 +6270,7 @@ function rcube_webmail() return obj.selectionEnd; else if (document.selection && document.selection.createRange) { var range = document.selection.createRange(); - if (range.parentElement()!=obj) + if (range.parentElement() != obj) return 0; var gm = range.duplicate(); |