From 9a526141fc5c46995fa750de24b50f5020eb13d1 Mon Sep 17 00:00:00 2001 From: thomascube Date: Sun, 6 Aug 2006 13:24:11 +0000 Subject: Added patch for Bug #1483932; Fixed attachment bug; Cleaned up JS vars --- program/js/app.js | 81 ++++++++++++++++++++++++++++++++++--------------------- 1 file changed, 50 insertions(+), 31 deletions(-) (limited to 'program/js') diff --git a/program/js/app.js b/program/js/app.js index 3c9efb886..83a50a0e9 100644 --- a/program/js/app.js +++ b/program/js/app.js @@ -18,7 +18,6 @@ var CONTROL_KEY = 1; var SHIFT_KEY = 2; var CONTROL_SHIFT_KEY = 3; -var DRAFT_AUTOSAVE = 5; // Minutes var rcube_webmail_client; @@ -40,10 +39,8 @@ function rcube_webmail() // webmail client settings this.dblclick_time = 600; this.message_time = 5000; - this.request_timeout = 180000; - this._interval = 60000; + this.mbox_expression = new RegExp('[^0-9a-z\-_]', 'gi'); - this.env.blank_img = 'skins/default/images/blank.gif'; // mimetypes supported by the browser (default settings) this.mimetypes = new Array('text/plain', 'text/html', 'text/xml', @@ -51,12 +48,16 @@ function rcube_webmail() 'application/x-javascript', 'application/pdf', 'application/x-shockwave-flash'); + // default environment vars + this.env.keep_alive = 60; // seconds + this.env.request_timeout = 180; // seconds + this.env.draft_autosave = 300; // seconds + // set environment variable this.set_env = function(name, value) { - //if (!this.busy) - this.env[name] = value; + this.env[name] = value; }; @@ -246,25 +247,29 @@ function rcube_webmail() // load body click event document.onmousedown = function(){ return rcube_webmail_client.reset_click(); }; document.onkeydown = function(e){ return rcube_webmail_client.key_pressed(e, msg_list_frame); }; - - // set default keep alive interval - if (!this.keep_alive_interval) - this.keep_alive_interval = this._interval; // flag object as complete this.loaded = true; - + // show message if (this.pending_message) this.display_message(this.pending_message[0], this.pending_message[1]); - - // start interval for keep-alive/recent_check signal - if (this.keep_alive_interval && this.task=='mail' && this.gui_objects.messagelist) - this._int = setInterval(this.ref+'.check_for_recent()', this.keep_alive_interval); - else if (this.task!='login') - this._int = setInterval(this.ref+'.send_keep_alive()', this.keep_alive_interval); + + // start keep-alive interval + this.start_keepalive(); }; + + // start interval for keep-alive/recent_check signal + this.start_keepalive = function() + { + if (this.env.keep_alive && this.task=='mail' && this.gui_objects.messagelist) + this._int = setInterval(this.ref+'.check_for_recent()', this.env.keep_alive * 1000); + else if (this.env.keep_alive && this.task!='login') + this._int = setInterval(this.ref+'.send_keep_alive()', this.env.keep_alive * 1000); + } + + // reset last clicked if user clicks on anything other than the message table this.reset_click = function() { @@ -951,6 +956,9 @@ function rcube_webmail() if (!this.check_compose_input()) break; + + // Reset the auto-save timer + self.clearTimeout(this.save_timer); // all checks passed, send message this.set_busy(true, 'sendingmessage'); @@ -958,6 +966,9 @@ function rcube_webmail() form.target = "savetarget"; form._draft.value = ''; form.submit(); + + // clear timeout (sending could take longer) + clearTimeout(this.request_timer); break; case 'add-attachment': @@ -1130,8 +1141,8 @@ function rcube_webmail() clearTimeout(this.request_timer); // set timer for requests - if (a && this.request_timeout) - this.request_timer = setTimeout(this.ref+'.request_timed_out()', this.request_timeout); + if (a && this.env.request_timeout) + this.request_timer = setTimeout(this.ref+'.request_timed_out()', this.env.request_timeout * 1000); }; @@ -2015,7 +2026,8 @@ function rcube_webmail() this.auto_save_start = function() { - this.save_timer = self.setTimeout('rcmail.command("savedraft","",this)', DRAFT_AUTOSAVE * 60000); + if (this.env.draft_autosave) + this.save_timer = self.setTimeout(this.ref+'.command("savedraft")', this.env.draft_autosave * 1000); }; @@ -2168,7 +2180,7 @@ function rcube_webmail() // add file name to attachment list // called from upload page - this.add2attachment_list = function(name,content) + this.add2attachment_list = function(name, content) { if (!this.gui_objects.attachmentlist) return false; @@ -2188,13 +2200,13 @@ function rcube_webmail() var list = this.gui_objects.attachmentlist.getElementsByTagName("li"); for (i=0;i