From ef292efaa36cd82883f41c8c965274713d8f24b1 Mon Sep 17 00:00:00 2001 From: thomascube Date: Thu, 6 Jan 2011 13:49:06 +0000 Subject: Only display one loading message at once --- program/js/app.js | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/program/js/app.js b/program/js/app.js index 868919cbd..308088612 100644 --- a/program/js/app.js +++ b/program/js/app.js @@ -4521,16 +4521,23 @@ function rcube_webmail() type = type ? type : 'notice'; var ref = this, + key = msg, date = new Date(), id = type + date.getTime(), - timeout = type == 'loading' ? this.env.request_timeout * 1000 : (this.message_time * (type == 'error' || type == 'warning' ? 2 : 1)); - - if (type == 'loading' && !msg) - msg = this.get_label('loading'); + timeout = this.message_time * (type == 'error' || type == 'warning' ? 2 : 1); + + if (type == 'loading') { + key = 'loading'; + timeout = this.env.request_timeout * 1000; + if (!msg) + msg = this.get_label('loading'); + } // The same message is already displayed - if (this.messages[msg]) { - this.messages[msg].elements.push(id); + if (this.messages[key]) { + if (this.messages[key].obj) + this.messages[key].obj.html(msg); + this.messages[key].elements.push(id); window.setTimeout(function() { ref.hide_message(id, true); }, timeout); return id; } @@ -4540,14 +4547,14 @@ function rcube_webmail() if (type == 'loading') { obj.appendTo(cont); - this.messages[msg] = {'obj': obj, 'elements': [id]}; + this.messages[key] = {'obj': obj, 'elements': [id]}; window.setTimeout(function() { rcmail.hide_message(id); }, timeout); return id; } else { obj.appendTo(cont).bind('mousedown', function() { return ref.hide_message(obj, true); }); window.setTimeout(function() { ref.hide_message(id, true); }, timeout); - this.messages[msg] = { 'obj': obj, 'elements': [id] }; + this.messages[key] = { 'obj': obj, 'elements': [id] }; return id; } }; -- cgit v1.2.3