From 2498155abec3bca663b9f30c8548fd322c4e3a13 Mon Sep 17 00:00:00 2001 From: alecpl Date: Tue, 22 Nov 2011 13:26:11 +0000 Subject: - Code improvements --- program/js/app.js | 181 +++++++++++++++++++++++------------------------------- 1 file changed, 77 insertions(+), 104 deletions(-) (limited to 'program/js/app.js') diff --git a/program/js/app.js b/program/js/app.js index 37a29255d..4b4187d91 100644 --- a/program/js/app.js +++ b/program/js/app.js @@ -128,7 +128,7 @@ function rcube_webmail() // initialize webmail client this.init = function() { - var p = this; + var n, p = this; this.task = this.env.task; // check browser @@ -138,11 +138,11 @@ function rcube_webmail() } // find all registered gui containers - for (var n in this.gui_containers) + for (n in this.gui_containers) this.gui_containers[n] = $('#'+this.gui_containers[n]); // find all registered gui objects - for (var n in this.gui_objects) + for (n in this.gui_objects) this.gui_objects[n] = rcube_find_object(this.gui_objects[n]); // init registered buttons @@ -380,8 +380,10 @@ function rcube_webmail() $('#rcmloginpwd').focus(); // detect client timezone - var tz = new Date().getTimezoneOffset() / -60; - var stdtz = new Date().getStdTimezoneOffset() / -60; + var dt = new Date(), + tz = dt.getTimezoneOffset() / -60, + stdtz = dt.getStdTimezoneOffset() / -60; + $('#rcmlogintz').val(stdtz); $('#rcmlogindst').val(tz > stdtz ? 1 : 0); @@ -442,7 +444,7 @@ function rcube_webmail() // execute a specific command on the web client this.command = function(command, props, obj) { - var ret; + var ret, uid, cid, url, flag; if (obj && obj.blur) obj.blur(); @@ -521,7 +523,6 @@ function rcube_webmail() return false; case 'open': - var uid; if (uid = this.get_single_uid()) { obj.href = '?_task='+this.env.task+'&_action=show&_mbox='+urlencode(this.env.mailbox)+'&_uid='+uid; return true; @@ -590,7 +591,7 @@ function rcube_webmail() // common commands used in multiple tasks case 'show': if (this.task == 'mail') { - var uid = this.get_single_uid(); + uid = this.get_single_uid(); if (uid && (!this.env.uid || uid != this.env.uid)) { if (this.env.mailbox == this.env.drafts_mailbox) this.goto_url('compose', '_draft_uid='+uid+'&_mbox='+urlencode(this.env.mailbox), true); @@ -599,7 +600,7 @@ function rcube_webmail() } } else if (this.task == 'addressbook') { - var cid = props ? props : this.get_single_cid(); + cid = props ? props : this.get_single_cid(); if (cid && !(this.env.action == 'show' && cid == this.env.cid)) this.load_contact(cid, 'show'); } @@ -615,13 +616,12 @@ function rcube_webmail() break; case 'edit': - var cid; if (this.task=='addressbook' && (cid = this.get_single_cid())) this.load_contact(cid, 'edit'); else if (this.task=='settings' && props) this.load_identity(props, 'edit-identity'); else if (this.task=='mail' && (cid = this.get_single_uid())) { - var url = (this.env.mailbox == this.env.drafts_mailbox) ? '_draft_uid=' : '_uid='; + url = (this.env.mailbox == this.env.drafts_mailbox) ? '_draft_uid=' : '_uid='; this.goto_url('compose', url+cid+'&_mbox='+urlencode(this.env.mailbox), true); } break; @@ -699,7 +699,7 @@ function rcube_webmail() if (props && !props._row) break; - var uid, flag = 'read'; + flag = 'read'; if (props._row.uid) { uid = props._row.uid; @@ -719,7 +719,7 @@ function rcube_webmail() if (props && !props._row) break; - var uid, flag = 'flagged'; + flag = 'flagged'; if (props._row.uid) { uid = props._row.uid; @@ -815,7 +815,7 @@ function rcube_webmail() break; case 'compose': - var url = this.url('mail/compose'); + url = this.url('mail/compose'); if (this.task == 'mail') { url += '&_mbox='+urlencode(this.env.mailbox); @@ -925,9 +925,8 @@ function rcube_webmail() case 'reply-all': case 'reply-list': case 'reply': - var uid; if (uid = this.get_single_uid()) { - var url = '_reply_uid='+uid+'&_mbox='+urlencode(this.env.mailbox); + url = '_reply_uid='+uid+'&_mbox='+urlencode(this.env.mailbox); if (command == 'reply-all') // do reply-list, when list is detected and popup menu wasn't used url += '&_all=' + (!props && this.commands['reply-list'] ? 'list' : 'all'); @@ -940,7 +939,6 @@ function rcube_webmail() case 'forward-attachment': case 'forward': - var uid, url; if (uid = this.get_single_uid()) { url = '_forward_uid='+uid+'&_mbox='+urlencode(this.env.mailbox); if (command == 'forward-attachment' || (!props && this.env.forward_attachment)) @@ -950,7 +948,6 @@ function rcube_webmail() break; case 'print': - var uid; 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) { @@ -962,7 +959,6 @@ function rcube_webmail() break; case 'viewsource': - var uid; 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) @@ -971,7 +967,6 @@ function rcube_webmail() break; case 'download': - var uid; if (uid = this.get_single_uid()) this.goto_url('viewsource', '&_uid='+uid+'&_mbox='+urlencode(this.env.mailbox)+'&_save=1'); break; @@ -1068,10 +1063,10 @@ function rcube_webmail() // set command(s) enabled or disabled this.enable_command = function() { - var args = Array.prototype.slice.call(arguments), + var i, n, args = Array.prototype.slice.call(arguments), enable = args.pop(), cmd; - for (var n=0; n= pos.x2 || mouse.y < pos.y1 || mouse.y >= pos.y2) { @@ -1322,10 +1317,10 @@ function rcube_webmail() } // over the folders - for (var k in this.env.folder_coords) { + for (k in this.env.folder_coords) { pos = this.env.folder_coords[k]; if (mouse.x >= pos.x1 && mouse.x < pos.x2 && mouse.y >= pos.y1 && mouse.y < pos.y2){ - if ((check = this.check_droptarget(k))) { + if ((check = this.check_droptarget(k))) { li = this.get_folder_li(k); div = $(li.getElementsByTagName('div')[0]); @@ -1336,9 +1331,9 @@ function rcube_webmail() this.folder_auto_expand = k; this.folder_auto_timer = window.setTimeout(function() { - rcmail.command('collapse-folder', rcmail.folder_auto_expand); - rcmail.drag_start(null); - }, 1000); + 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); this.folder_auto_timer = null; @@ -3353,16 +3348,8 @@ function rcube_webmail() this.remove_from_attachment_list = function(name) { - if (this.env.attachments[name]) - delete this.env.attachments[name]; - - if (!this.gui_objects.attachmentlist) - return false; - - var list = this.gui_objects.attachmentlist.getElementsByTagName("li"); - for (i=0; i 0; i++) { + if (results && (len = results.length)) { + for (i=0; i < len && maxlen > 0; i++) { text = typeof results[i] === 'object' ? results[i].name : results[i]; li = document.createElement('LI'); li.innerHTML = text.replace(new RegExp('('+RegExp.escape(value)+')', 'ig'), '##$1%%').replace(//g, '>').replace(/##([^%]+)%%/g, '$1'); @@ -3752,7 +3739,7 @@ function rcube_webmail() } } - if (results && results.length) + if (len) this.env.contacts = this.env.contacts.concat(results); // run next parallel search @@ -4035,10 +4022,10 @@ function rcube_webmail() this.delete_contacts = function() { - // exit if no mailbox specified or if selection is empty var selection = this.contact_list.get_selection(), undelete = this.env.address_sources[this.env.source].undelete; + // exit if no mailbox specified or if selection is empty if (!(selection.length || this.env.cid) || (!undelete && !confirm(this.get_label('deletecontactconfirm')))) return; @@ -4422,7 +4409,7 @@ function rcube_webmail() .appendTo(cell); this.init_edit_field(col, input); - + if (colprop.type == 'date' && $.datepicker) input.datepicker(); } @@ -5160,12 +5147,10 @@ function rcube_webmail() // set button to a specific state this.set_button = function(command, state) { - var button, obj, a_buttons = this.buttons[command]; + var n, button, obj, a_buttons = this.buttons[command], + len = a_buttons ? a_buttons.length : 0; - if (!a_buttons || !a_buttons.length) - return false; - - for (var n=0; n'+plainText+'' : ''); + $('#'+id).val(plainText ? '
'+plainText+'
' : ''); this.set_busy(false, null, lock); }; -- cgit v1.2.3