diff options
author | Bart Visscher <bartv@thisnet.nl> | 2013-02-14 06:10:00 -0800 |
---|---|---|
committer | Bart Visscher <bartv@thisnet.nl> | 2013-02-14 06:10:00 -0800 |
commit | f4c9d4c06797a5c9e2f30d20a8e13686e98dd7f9 (patch) | |
tree | af8caa963a78089ad8d8716aac0625acfd13c4c4 | |
parent | ae172ce7de767096b83f2626f889bc402c5a27c3 (diff) | |
parent | 022993c09865b90993c869053a3217e2700a6f22 (diff) | |
download | nextcloud-server-f4c9d4c06797a5c9e2f30d20a8e13686e98dd7f9.tar.gz nextcloud-server-f4c9d4c06797a5c9e2f30d20a8e13686e98dd7f9.zip |
Merge pull request #1682 from owncloud/fix-ie8-master
Fix ie8 master
-rw-r--r-- | apps/files/js/jquery-visibility.js | 13 | ||||
-rw-r--r-- | core/js/compatibility.js | 32 | ||||
-rw-r--r-- | core/js/eventsource.js | 10 | ||||
-rw-r--r-- | lib/base.php | 1 | ||||
-rw-r--r-- | settings/js/users.js | 7 |
5 files changed, 50 insertions, 13 deletions
diff --git a/apps/files/js/jquery-visibility.js b/apps/files/js/jquery-visibility.js index a824bf68730..18f57d1f2bd 100644 --- a/apps/files/js/jquery-visibility.js +++ b/apps/files/js/jquery-visibility.js @@ -3,7 +3,7 @@ var prefix, property, -// In Opera, `'onfocusin' in document == true`, hence the extra `hasFocus` check to detect IE-like behavior + // In Opera, `'onfocusin' in document == true`, hence the extra `hasFocus` check to detect IE-like behavior eventName = 'onfocusin' in document && 'hasFocus' in document ? 'focusin focusout' : 'focus blur', prefixes = ['', 'moz', 'ms', 'o', 'webkit'], $support = $.support, @@ -19,12 +19,11 @@ $(/blur$/.test(eventName) ? window : document).on(eventName, function (event) { var type = event.type, - originalEvent = event.originalEvent, - toElement = originalEvent.toElement; -// If it’s a `{focusin,focusout}` event (IE), `fromElement` and `toElement` should both be `null` or `undefined`; -// else, the page visibility hasn’t changed, but the user just clicked somewhere in the doc. -// In IE9, we need to check the `relatedTarget` property instead. - if (!/^focus./.test(type) || (toElement == undefined && originalEvent.fromElement == undefined && originalEvent.relatedTarget == undefined)) { + originalEvent = event.originalEvent; + // If it’s a `{focusin,focusout}` event (IE), `fromElement` and `toElement` should both be `null` or `undefined`; + // else, the page visibility hasn’t changed, but the user just clicked somewhere in the doc. + // In IE9, we need to check the `relatedTarget` property instead. + if (!/^focus./.test(type) || originalEvent == undefined || (originalEvent.toElement == undefined && originalEvent.fromElement == undefined && originalEvent.relatedTarget == undefined)) { $event.trigger((property && document[property] || /^(?:blur|focusout)$/.test(type) ? 'hide' : 'show') + '.visibility'); } }); diff --git a/core/js/compatibility.js b/core/js/compatibility.js new file mode 100644 index 00000000000..0cfeefab871 --- /dev/null +++ b/core/js/compatibility.js @@ -0,0 +1,32 @@ + +//https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Function/bind +if (!Function.prototype.bind) { + Function.prototype.bind = function (oThis) { + if (typeof this !== "function") { + // closest thing possible to the ECMAScript 5 internal IsCallable function + throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable"); + } + + var aArgs = Array.prototype.slice.call(arguments, 1), + fToBind = this, + fNOP = function () {}, + fBound = function () { + return fToBind.apply(this instanceof fNOP && oThis + ? this + : oThis, + aArgs.concat(Array.prototype.slice.call(arguments))); + }; + + fNOP.prototype = this.prototype; + fBound.prototype = new fNOP(); + + return fBound; + }; +} + +//https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/Trim +if(!String.prototype.trim) { + String.prototype.trim = function () { + return this.replace(/^\s+|\s+$/g,''); + }; +}
\ No newline at end of file diff --git a/core/js/eventsource.js b/core/js/eventsource.js index f783ade7ae9..ce8c8387c8e 100644 --- a/core/js/eventsource.js +++ b/core/js/eventsource.js @@ -87,8 +87,10 @@ OC.EventSource.prototype={ useFallBack:false, fallBackCallBack:function(type,data){ if(type){ - for(var i=0;i<this.listeners[type].length;i++){ - this.listeners[type][i](data); + if (typeof this.listeners['done'] != 'undefined') { + for(var i=0;i<this.listeners[type].length;i++){ + this.listeners[type][i](data); + } } }else{ for(var i=0;i<this.typelessListeners.length;i++){ @@ -117,6 +119,8 @@ OC.EventSource.prototype={ } }, close:function(){ - this.source.close(); + if (typeof this.source !='undefined') { + this.source.close(); + } } } diff --git a/lib/base.php b/lib/base.php index c60a97100f4..fd9a1d41121 100644 --- a/lib/base.php +++ b/lib/base.php @@ -278,6 +278,7 @@ class OC { OC_Util::addScript("jquery-showpassword"); OC_Util::addScript("jquery.infieldlabel"); OC_Util::addScript("jquery-tipsy"); + OC_Util::addScript("compatibility"); OC_Util::addScript("oc-dialogs"); OC_Util::addScript("js"); OC_Util::addScript("eventsource"); diff --git a/settings/js/users.js b/settings/js/users.js index a70cf18ead3..da18b4be836 100644 --- a/settings/js/users.js +++ b/settings/js/users.js @@ -92,11 +92,12 @@ var UserList = { UserList.applyMultiplySelect(subadminSelect); } if (tr.find('td.remove img').length == 0 && OC.currentUser != username) { - var rm_img = $('<img>', { - class: 'svg action', + var rm_img = $('<img class="svg action">').attr({ src: OC.imagePath('core', 'actions/delete') }); - var rm_link = $('<a>', { class: 'action delete', href: '#', 'original-title': t('settings', 'Delete')}).append(rm_img); + var rm_link = $('<a class="action delete">') + .attr({ href: '#', 'original-title': t('settings', 'Delete')}) + .append(rm_img); tr.find('td.remove').append(rm_link); } else if (OC.currentUser == username) { tr.find('td.remove a').remove(); |