diff options
-rw-r--r-- | program/steps/mail/func.inc | 3 | ||||
-rw-r--r-- | skins/larry/ui.js | 17 |
2 files changed, 15 insertions, 5 deletions
diff --git a/program/steps/mail/func.inc b/program/steps/mail/func.inc index e3866aa57..c21202588 100644 --- a/program/steps/mail/func.inc +++ b/program/steps/mail/func.inc @@ -68,6 +68,9 @@ if (!empty($_REQUEST['_search']) && isset($_SESSION['search']) // set main env variables, labels and page title if (empty($RCMAIL->action) || $RCMAIL->action == 'list') { + // connect to storage server and trigger error on failure + $RCMAIL->storage_connect(); + $mbox_name = $RCMAIL->storage->get_folder(); if (empty($RCMAIL->action)) { diff --git a/skins/larry/ui.js b/skins/larry/ui.js index 9b5d8309c..42d5237ea 100644 --- a/skins/larry/ui.js +++ b/skins/larry/ui.js @@ -288,14 +288,21 @@ function rcube_mail_ui() { // show a popup dialog on errors if (p.type == 'error' && rcmail.env.task != 'login') { + if (me.message_timer) { + window.clearTimeout(me.message_timer); + } if (!me.messagedialog) { - me.messagedialog = $('<div>').addClass('popupdialog'); + me.messagedialog = $('<div>').addClass('popupdialog').hide(); } - var pos = $(p.object).offset(); + var msg = p.message, + pos = $(p.object).offset(); pos.top -= (rcmail.env.task == 'login' ? 20 : 160); - me.messagedialog.dialog('close'); - me.messagedialog.html(p.message) + + if (me.messagedialog.is(':visible')) + msg = me.messagedialog.html() + '<p>' + p.message + '</p>'; + + me.messagedialog.html(msg) .dialog({ resizable: false, closeOnEscape: true, @@ -310,7 +317,7 @@ function rcube_mail_ui() minHeight: 90 }).show(); - window.setTimeout(function(){ me.messagedialog.dialog('close'); }, Math.max(2000, p.timeout / 2)); + me.message_timer = window.setTimeout(function(){ me.messagedialog.dialog('close'); }, Math.max(2000, p.timeout / 2)); } } |