From 43fa235da354c8b53aa69ba745c1d398a758fcaf Mon Sep 17 00:00:00 2001 From: svncommit <devs@roundcube.net> Date: Wed, 26 Oct 2005 05:42:19 -0400 Subject: [PATCH] --- program/js/app.js | 49 +++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 41 insertions(+), 8 deletions(-) diff --git a/program/js/app.js b/program/js/app.js index 18ce674..7179898 100644 --- a/program/js/app.js +++ b/program/js/app.js @@ -1,4 +1,4 @@ -/* +/* +-----------------------------------------------------------------------+ | RoundCube Webmail Client Script | | | @@ -6,7 +6,7 @@ | Copyright (C) 2005, RoundCube Dev, - Switzerland | | Licensed under the GNU GPL | | | - | Modified: 2005/10/13 (tbr) | + | Modified: 2005/10/21 (roundcube) | | | +-----------------------------------------------------------------------+ | Author: Thomas Bruederli <roundcube@gmail.com> | @@ -31,6 +31,7 @@ // webmail client settings this.dblclick_time = 600; this.message_time = 5000; + this.request_timeout = 120000; this.mbox_expression = new RegExp('[^0-9a-z\-_]', 'gi'); this.env.blank_img = 'skins/default/images/blank.gif'; @@ -76,8 +77,7 @@ this.task = this.env.task; // check browser - if (!(bw.dom && ((bw.ie && bw.vendver>=5.5 && !bw.opera) || (bw.mz && bw.vendver>=1) || (bw.safari && bw.vendver>=125) || - (bw.opera && bw.vendver>=8) || (bw.konq && bw.vendver>=3.4)))) + if (!bw.dom || !bw.xmlhttp_test()) { location.href = this.env.comm_path+'&_action=error&_code=0x199'; return; @@ -127,7 +127,7 @@ this.enable_command('add-attachment', 'send-attachment', 'send', true); if (this.env.messagecount) - this.enable_command('select-all', 'select-none', true); + this.enable_command('select-all', 'select-none', 'sort', true); this.set_page_buttons(); @@ -204,7 +204,7 @@ // flag object as complete this.loaded = true; - + // show message if (this.pending_message) this.display_message(this.pending_message[0], this.pending_message[1]); @@ -441,6 +441,11 @@ this.list_mailbox(props); else if (this.task=='addressbook') this.list_contacts(); + break; + + case 'sort': + // get the type of sorting + this.list_mailbox('', '', props); break; case 'nextpage': @@ -732,6 +737,7 @@ }; + // lock/unlock interface this.set_busy = function(a, message) { if (a && message) @@ -744,6 +750,14 @@ if (this.gui_objects.editform) this.lock_form(this.gui_objects.editform, a); + + // clear pending timer + if (this.request_timer) + 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); }; @@ -763,6 +777,14 @@ url = this.env.comm_path; return url.replace(/_task=[a-z]+/, '_task='+task); + }; + + + // called when a request timed out + this.request_timed_out = function() + { + this.set_busy(false); + this.display_message('Request timed out!', 'error'); }; @@ -994,7 +1016,7 @@ // list messages of a specific mailbox - this.list_mailbox = function(mbox, page) + this.list_mailbox = function(mbox, page, sort) { var add_url = ''; var target = window; @@ -1002,6 +1024,10 @@ if (!mbox) mbox = this.env.mailbox; + // add sort to url if set + if (sort) + add_url += '&_sort=' + sort; + // set page=1 if changeing to another mailbox if (!page && mbox != this.env.mailbox) { @@ -1968,9 +1994,13 @@ var cont = msg; if (type) cont = '<div class="'+type+'">'+cont+'</div>'; - + + this.gui_objects.message._rcube = this; this.gui_objects.message.innerHTML = cont; this.gui_objects.message.style.display = 'block'; + + if (type!='loading') + this.gui_objects.message.onmousedown = function(){ this._rcube.hide_message(); return true; }; if (!hold) this.message_timer = setTimeout(this.ref+'.hide_message()', this.message_time); @@ -1981,7 +2011,10 @@ this.hide_message = function() { if (this.gui_objects.message) + { this.gui_objects.message.style.display = 'none'; + this.gui_objects.message.onmousedown = null; + } }; -- Gitblit v1.9.1