From d06e57fdf21879a4e93d6c00b939ca42094d3e86 Mon Sep 17 00:00:00 2001 From: thomascube <thomas@roundcube.net> Date: Wed, 21 Sep 2011 16:43:47 -0400 Subject: [PATCH] Skip confirmation dialog when deleting a contact from a source that supports undelete operations --- program/js/common.js | 66 +++++++++++++++++--------------- 1 files changed, 35 insertions(+), 31 deletions(-) diff --git a/program/js/common.js b/program/js/common.js index 4d3cbfa..0011fea 100644 --- a/program/js/common.js +++ b/program/js/common.js @@ -55,16 +55,13 @@ this.ie7 = (this.dom && this.appver.indexOf('MSIE 7')>0); this.ie6 = (this.dom && !this.ie8 && !this.ie7 && this.appver.indexOf('MSIE 6')>0); - this.mz = (this.dom && this.ver >= 5); // (this.dom && this.product=='Gecko') this.ns = ((this.ver < 5 && this.name == 'Netscape') || (this.ver >= 5 && this.vendor.indexOf('Netscape') >= 0)); - this.ns6 = (this.ns && parseInt(this.vendver) == 6); // (this.mz && this.ns) ? true : false; - this.ns7 = (this.ns && parseInt(this.vendver) == 7); // this.agent.indexOf('Netscape/7')>0); this.chrome = (this.agent_lc.indexOf('chrome') > 0); this.safari = (!this.chrome && (this.agent_lc.indexOf('safari') > 0 || this.agent_lc.indexOf('applewebkit') > 0)); + this.mz = (this.dom && !this.ie && !this.ns && !this.chrome && !this.safari && this.agent.indexOf('Mozilla') >= 0); this.konq = (this.agent_lc.indexOf('konqueror') > 0); this.iphone = (this.safari && this.agent_lc.indexOf('iphone') > 0); this.ipad = (this.safari && this.agent_lc.indexOf('ipad') > 0); - this.opera = window.opera ? true : false; if (this.opera && window.RegExp) @@ -129,10 +126,6 @@ classname += ' iphone'; else if (this.ipad) classname += ' ipad'; - else if (this.ns6) - classname += ' netscape6'; - else if (this.ns7) - classname += ' netscape7'; if (document.documentElement) document.documentElement.className += classname; @@ -178,14 +171,12 @@ var opcode = 0; e = e || window.event; - if (bw.mac && e) { + if (bw.mac && e) opcode += (e.metaKey && CONTROL_KEY) + (e.shiftKey && SHIFT_KEY); - return opcode; - } - if (e) { + else if (e) opcode += (e.ctrlKey && CONTROL_KEY) + (e.shiftKey && SHIFT_KEY); - return opcode; - } + + return opcode; }, /** @@ -354,9 +345,26 @@ break; } } + if (ret && ret.event) { + try { + delete ret.event; + } catch (err) { + // IE6-7 doesn't support deleting HTMLFormElement attributes (#1488017) + $(ret).removeAttr('event'); + } + } } this._event_exec = false; + if (e.event) { + try { + delete e.event; + } catch (err) { + // IE6-7 doesn't support deleting HTMLFormElement attributes (#1488017) + $(e).removeAttr('event'); + } + } + return ret; } @@ -385,21 +393,17 @@ parent = arg.parent, obj = document.createElement('DIV'); - with (obj) { - id = this.name; - with (style) { - position = 'absolute'; - visibility = (vis) ? (vis==2) ? 'inherit' : 'visible' : 'hidden'; - left = l+'px'; - top = t+'px'; - if (w) - width = w.toString().match(/\%$/) ? w : w+'px'; - if (h) - height = h.toString().match(/\%$/) ? h : h+'px'; - if (z) - zIndex = z; - } - } + obj.id = this.name; + obj.style.position = 'absolute'; + obj.style.visibility = (vis) ? (vis==2) ? 'inherit' : 'visible' : 'hidden'; + obj.style.left = l+'px'; + obj.style.top = t+'px'; + if (w) + obj.style.width = w.toString().match(/\%$/) ? w : w+'px'; + if (h) + obj.style.height = h.toString().match(/\%$/) ? h : h+'px'; + if (z) + obj.style.zIndex = z; if (parent) parent.appendChild(obj); @@ -493,8 +497,8 @@ // 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', -- Gitblit v1.9.1