From 5be6dcf0e2234b22391ad4f654efddd0ba7c0e92 Mon Sep 17 00:00:00 2001 From: Aleksander Machniak <alec@alec.pl> Date: Tue, 15 Apr 2014 13:19:56 -0400 Subject: [PATCH] Remove useless debug_level=8 and javascripts's rcube_console --- program/js/common.js | 134 ++++++++++++++++---------------------------- 1 files changed, 49 insertions(+), 85 deletions(-) diff --git a/program/js/common.js b/program/js/common.js index de07ec1..3d264c3 100644 --- a/program/js/common.js +++ b/program/js/common.js @@ -37,58 +37,55 @@ this.vendver = n.vendorSub ? parseFloat(n.vendorSub) : 0; this.product = n.product ? n.product : ''; this.platform = String(n.platform).toLowerCase(); - this.lang = (n.language) ? n.language.substring(0,2) : - (n.browserLanguage) ? n.browserLanguage.substring(0,2) : - (n.systemLanguage) ? n.systemLanguage.substring(0,2) : 'en'; + this.lang = n.language ? n.language.substring(0,2) : + n.browserLanguage ? n.browserLanguage.substring(0,2) : + n.systemLanguage ? n.systemLanguage.substring(0,2) : 'en'; - this.win = (this.platform.indexOf('win') >= 0); - this.mac = (this.platform.indexOf('mac') >= 0); - this.linux = (this.platform.indexOf('linux') >= 0); - this.unix = (this.platform.indexOf('unix') >= 0); + this.win = this.platform.indexOf('win') >= 0; + this.mac = this.platform.indexOf('mac') >= 0; + this.linux = this.platform.indexOf('linux') >= 0; + this.unix = this.platform.indexOf('unix') >= 0; this.dom = document.getElementById ? true : false; - this.dom2 = (document.addEventListener && document.removeEventListener); + this.dom2 = document.addEventListener && document.removeEventListener; - this.ie = (document.all && !window.opera); - this.ie4 = (this.ie && !this.dom); - this.ie5 = (this.dom && this.appver.indexOf('MSIE 5')>0); - this.ie8 = (this.dom && this.appver.indexOf('MSIE 8')>0); - this.ie9 = (this.dom && this.appver.indexOf('MSIE 9')>0); - 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.webkit = this.agent_lc.indexOf('applewebkit') > 0; + this.ie = (document.all && !window.opera) || (this.win && this.agent_lc.indexOf('trident/') > 0); - this.ns = ((this.ver < 5 && this.name == 'Netscape') || (this.ver >= 5 && this.vendor.indexOf('Netscape') >= 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.konq = (this.agent_lc.indexOf('konqueror') > 0); - this.mz = (this.dom && !this.ie && !this.ns && !this.chrome && !this.safari && !this.konq && this.agent.indexOf('Mozilla') >= 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.ie) { + this.ie7 = this.appver.indexOf('MSIE 7') > 0; + this.ie8 = this.appver.indexOf('MSIE 8') > 0; + this.ie9 = this.appver.indexOf('MSIE 9') > 0; + } + else if (window.opera) { + this.opera = true; + this.vendver = opera.version(); + } + else { + this.chrome = this.agent_lc.indexOf('chrome') > 0; + this.safari = !this.chrome && (this.webkit || this.agent_lc.indexOf('safari') > 0); + this.konq = this.agent_lc.indexOf('konqueror') > 0; + this.mz = this.dom && !this.chrome && !this.safari && !this.konq && this.agent.indexOf('Mozilla') >= 0; + this.iphone = this.safari && (this.agent_lc.indexOf('iphone') > 0 || this.agent_lc.indexOf('ipod') > 0); + this.ipad = this.safari && this.agent_lc.indexOf('ipad') > 0; + } - if (this.opera && window.RegExp) - this.vendver = (/opera(\s|\/)([0-9\.]+)/.test(this.agent_lc)) ? parseFloat(RegExp.$2) : -1; - else if (this.chrome && window.RegExp) - this.vendver = (/chrome\/([0-9\.]+)/.test(this.agent_lc)) ? parseFloat(RegExp.$1) : 0; - else if (!this.vendver && this.safari) - this.vendver = (/(safari|applewebkit)\/([0-9]+)/.test(this.agent_lc)) ? parseInt(RegExp.$2) : 0; - else if ((!this.vendver && this.mz) || this.agent.indexOf('Camino')>0) - this.vendver = (/rv:([0-9\.]+)/.test(this.agent)) ? parseFloat(RegExp.$1) : 0; - else if (this.ie && window.RegExp) - this.vendver = (/msie\s+([0-9\.]+)/.test(this.agent_lc)) ? parseFloat(RegExp.$1) : 0; - else if (this.konq && window.RegExp) - this.vendver = (/khtml\/([0-9\.]+)/.test(this.agent_lc)) ? parseFloat(RegExp.$1) : 0; + if (!this.vendver) { + // common version strings + this.vendver = /(opera|opr|khtml|chrome|safari|applewebkit|msie)(\s|\/)([0-9\.]+)/.test(this.agent_lc) ? parseFloat(RegExp.$3) : 0; + + // any other (Mozilla, Camino, IE>=11) + if (!this.vendver) + this.vendver = /rv:([0-9\.]+)/.test(this.agent) ? parseFloat(RegExp.$1) : 0; + } // get real language out of safari's user agent if (this.safari && (/;\s+([a-z]{2})-[a-z]{2}\)/.test(this.agent_lc))) this.lang = RegExp.$1; - this.mobile = this.agent_lc.match(/iphone|ipad|ipod|android|blackberry|iemobile|opera mini|opera mobi/); - this.dhtml = ((this.ie4 && this.win) || this.ie5 || this.ie6 || this.ns4 || this.mz); - this.vml = (this.win && this.ie && this.dom && !this.opera); - this.pngalpha = (this.mz || (this.opera && this.vendver >= 6) || (this.ie && this.mac && this.vendver >= 5) || - (this.ie && this.win && this.vendver >= 5.5) || this.safari); - this.opacity = (this.mz || (this.ie && this.vendver >= 5.5 && !this.opera) || (this.safari && this.vendver >= 100)); + this.tablet = /ipad|android|xoom|sch-i800|playbook|tablet|kindle/i.test(this.agent_lc); + this.mobile = /iphone|ipod|blackberry|iemobile|opera mini|opera mobi|mobile/i.test(this.agent_lc); + this.touch = this.mobile || this.tablet; this.cookies = n.cookieEnabled; // test for XMLHTTP support @@ -122,11 +119,13 @@ classname += ' iphone'; else if (this.ipad) classname += ' ipad'; - else if (this.safari || this.chrome) + else if (this.webkit) classname += ' webkit'; if (this.mobile) classname += ' mobile'; + if (this.tablet) + classname += ' tablet'; if (document.documentElement) document.documentElement.className += classname; @@ -289,7 +288,6 @@ * * @param {String} Event name * @param {Function} Handler function - * @return Listener ID (used to remove this handler later on) */ addEventListener: function(evt, func, obj) { @@ -299,6 +297,8 @@ this._events[evt] = []; this._events[evt].push({func:func, obj:obj ? obj : window}); + + return this; // chainable }, /** @@ -529,36 +529,6 @@ roundcube_browser.prototype.set_cookie = setCookie; roundcube_browser.prototype.get_cookie = getCookie; -// tiny replacement for Firebox functionality -function rcube_console() -{ - this.log = function(msg) - { - var box = rcube_find_object('dbgconsole'); - - if (box) { - if (msg.charAt(msg.length-1)=='\n') - msg += '--------------------------------------\n'; - else - msg += '\n--------------------------------------\n'; - - // Konqueror doesn't allow to just change the value of hidden element - if (bw.konq) { - box.innerText += msg; - box.value = box.innerText; - } else - box.value += msg; - } - }; - - this.reset = function() - { - var box = rcube_find_object('dbgconsole'); - if (box) - box.innerText = box.value = ''; - }; -}; - var bw = new roundcube_browser(); bw.set_html_class(); @@ -588,18 +558,12 @@ return tzo; } -// Make getElementById() case-sensitive on IE -if (bw.ie) { - document._getElementById = document.getElementById; - document.getElementById = function(id) { - var i = 0, obj = document._getElementById(id); - - if (obj && obj.id != id) - while ((obj = document.all[i]) && obj.id != id) - i++; - - return obj; - } +// define String's startsWith() method for old browsers +if (!String.prototype.startsWith) { + String.prototype.startsWith = function(search, position) { + position = position || 0; + return this.slice(position, search.length) === search; + }; } // jQuery plugin to emulate HTML5 placeholder attributes on input elements -- Gitblit v1.9.1