summaryrefslogtreecommitdiff
path: root/program/js
diff options
context:
space:
mode:
Diffstat (limited to 'program/js')
-rw-r--r--program/js/app.js5
-rw-r--r--program/js/common.js4
2 files changed, 5 insertions, 4 deletions
diff --git a/program/js/app.js b/program/js/app.js
index 8cdddccca..07947db76 100644
--- a/program/js/app.js
+++ b/program/js/app.js
@@ -4872,8 +4872,9 @@ function rcube_webmail()
quota_width = parseInt(quota / 100 * width),
pos = $(obj).position();
- // Opera bug?
+ // workarounds for Opera and Webkit bugs
pos.top = Math.max(0, pos.top);
+ pos.left = Math.max(0, pos.left);
this.env.indicator_width = width;
this.env.indicator_height = height;
@@ -5163,7 +5164,7 @@ function rcube_webmail()
this.set_busy(false, null, lock);
request.abort();
- if (errmsg)
+ if (request.status && errmsg)
this.display_message(this.get_label('servererror') + ' (' + errmsg + ')', 'error');
};
diff --git a/program/js/common.js b/program/js/common.js
index 5c9102771..bb169a8c7 100644
--- a/program/js/common.js
+++ b/program/js/common.js
@@ -493,8 +493,8 @@ function rcube_check_email(input, inline)
// So, e-mail address should be validated also on server side after idn_to_ascii() use
//domain_literal = '\\x5b('+dtext+'|'+quoted_pair+')*\\x5d',
//sub_domain = '('+atom+'|'+domain_literal+')',
- // allow punycode in last domain part for ICANN test domains
- domain = '([^@\\x2e]+\\x2e)+([a-z]{2,}|xn--[a-z0-9]{2,})',
+ // allow punycode/unicode top-level domain
+ domain = '([^@\\x2e]+\\x2e)+([^\\x00-\\x40\\x5b-\\x60\\x7b-\\x7f]{2,}|xn--[a-z0-9]{2,})',
// ICANN e-mail test (http://idn.icann.org/E-mail_test)
icann_domains = [
'\\u0645\\u062b\\u0627\\u0644\\x2e\\u0625\\u062e\\u062a\\u0628\\u0627\\u0631',