From 06e8308dc213c8c617c1990dc8de9942a862e1b0 Mon Sep 17 00:00:00 2001 From: Veeck Date: Mon, 20 Apr 2020 10:44:56 +0200 Subject: [PATCH] Replace old js files with modern code --- modules/default/alert/alert.js | 19 +++--- modules/default/alert/classie.js | 79 ----------------------- modules/default/alert/modernizr.custom.js | 3 - modules/default/alert/notificationFx.js | 78 +++++++--------------- 4 files changed, 31 insertions(+), 148 deletions(-) delete mode 100644 modules/default/alert/classie.js delete mode 100644 modules/default/alert/modernizr.custom.js diff --git a/modules/default/alert/alert.js b/modules/default/alert/alert.js index d316b3ea..6bf3af0f 100644 --- a/modules/default/alert/alert.js +++ b/modules/default/alert/alert.js @@ -21,7 +21,7 @@ Module.register("alert",{ welcome_message: false, }, getScripts: function() { - return ["classie.js", "modernizr.custom.js", "notificationFx.js"]; + return ["notificationFx.js"]; }, getStyles: function() { return ["ns-default.css", "font-awesome.css"]; @@ -36,7 +36,7 @@ Module.register("alert",{ }, show_notification: function(message) { if (this.config.effect === "slide") {this.config.effect = this.config.effect + "-" + this.config.position;} - msg = ""; + let msg = ""; if (message.title) { msg += "" + message.title + ""; } @@ -55,20 +55,19 @@ Module.register("alert",{ }).show(); }, show_alert: function(params, sender) { - var self = this; + let image = ""; //Set standard params if not provided by module if (typeof params.timer === "undefined") { params.timer = null; } if (typeof params.imageHeight === "undefined") { params.imageHeight = "80px"; } if (typeof params.imageUrl === "undefined" && typeof params.imageFA === "undefined") { params.imageUrl = null; - image = ""; } else if (typeof params.imageFA === "undefined"){ image = "
"; } else if (typeof params.imageUrl === "undefined"){ image = "
"; } //Create overlay - var overlay = document.createElement("div"); + const overlay = document.createElement("div"); overlay.id = "overlay"; overlay.innerHTML += "
"; document.body.insertBefore(overlay, document.body.firstChild); @@ -79,7 +78,7 @@ Module.register("alert",{ } //Display title and message only if they are provided in notification parameters - var message = ""; + let message = ""; if (params.title) { message += "" + params.title + ""; } @@ -102,8 +101,8 @@ Module.register("alert",{ this.alerts[sender.name].show(); //Add timer to dismiss alert and overlay if (params.timer) { - setTimeout(function() { - self.hide_alert(sender); + setTimeout(() => { + this.hide_alert(sender); }, params.timer); } @@ -114,13 +113,13 @@ Module.register("alert",{ this.alerts[sender.name].dismiss(); this.alerts[sender.name] = null; //Remove overlay - var overlay = document.getElementById("overlay"); + const overlay = document.getElementById("overlay"); overlay.parentNode.removeChild(overlay); } }, setPosition: function(pos) { //Add css to body depending on the set position for notifications - var sheet = document.createElement("style"); + const sheet = document.createElement("style"); if (pos === "center") {sheet.innerHTML = ".ns-box {margin-left: auto; margin-right: auto;text-align: center;}";} if (pos === "right") {sheet.innerHTML = ".ns-box {margin-left: auto;text-align: right;}";} if (pos === "left") {sheet.innerHTML = ".ns-box {margin-right: auto;text-align: left;}";} diff --git a/modules/default/alert/classie.js b/modules/default/alert/classie.js deleted file mode 100644 index 4a096f1e..00000000 --- a/modules/default/alert/classie.js +++ /dev/null @@ -1,79 +0,0 @@ -/*! - * classie - class helper functions - * from bonzo https://github.com/ded/bonzo - * - * classie.has( elem, 'my-class' ) -> true/false - * classie.add( elem, 'my-new-class' ) - * classie.remove( elem, 'my-unwanted-class' ) - * classie.toggle( elem, 'my-class' ) - */ -// jscs:disable -/*jshint browser: true, strict: true, undef: true */ -/*global define: false */ - -(function(window) { - -"use strict"; - -// class helper functions from bonzo https://github.com/ded/bonzo - -function classReg(className) { - return new RegExp("(^|\\s+)" + className + "(\\s+|$)"); -} - -// classList support for class management -// altho to be fair, the api sucks because it won't accept multiple classes at once -var hasClass, addClass, removeClass; - -if ("classList" in document.documentElement) { - hasClass = function(elem, c) { - return elem.classList.contains(c); - }; - addClass = function(elem, c) { - elem.classList.add(c); - }; - removeClass = function(elem, c) { - elem.classList.remove(c); - }; -} else { - hasClass = function(elem, c) { - return classReg(c).test(elem.className); - }; - addClass = function(elem, c) { - if (!hasClass(elem, c)) { - elem.className = elem.className + " " + c; - } - }; - removeClass = function(elem, c) { - elem.className = elem.className.replace(classReg(c), " "); - }; -} - -function toggleClass(elem, c) { - var fn = hasClass(elem, c) ? removeClass : addClass; - fn(elem, c); -} - -var classie = { - // full names - hasClass: hasClass, - addClass: addClass, - removeClass: removeClass, - toggleClass: toggleClass, - // short names - has: hasClass, - add: addClass, - remove: removeClass, - toggle: toggleClass -}; - -// transport -if (typeof define === "function" && define.amd) { - // AMD - define(classie); -} else { - // browser global - window.classie = classie; -} - -})(window); diff --git a/modules/default/alert/modernizr.custom.js b/modules/default/alert/modernizr.custom.js deleted file mode 100644 index 83c3d3f1..00000000 --- a/modules/default/alert/modernizr.custom.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! modernizr 3.7.0 (Custom Build) | MIT * - * https://modernizr.com/download/?-cssanimations-domprefixes-prefixed-setclasses-shiv-testallprops-testprop !*/ -!function(e,t,n){function r(e,t){return typeof e===t}function o(e,t){return!!~(""+e).indexOf(t)}function i(){return"function"!=typeof t.createElement?t.createElement(arguments[0]):E?t.createElementNS.call(t,"http://www.w3.org/2000/svg",arguments[0]):t.createElement.apply(t,arguments)}function a(){var e=t.body;return e||(e=i(E?"svg":"body"),e.fake=!0),e}function s(e,n,r,o){var s,l,c,u,f="modernizr",d=i("div"),p=a();if(parseInt(r,10))for(;r--;)c=i("div"),c.id=o?o[r]:f+(r+1),d.appendChild(c);return s=i("style"),s.type="text/css",s.id="s"+f,(p.fake?p:d).appendChild(s),p.appendChild(d),s.styleSheet?s.styleSheet.cssText=e:s.appendChild(t.createTextNode(e)),d.id=f,p.fake&&(p.style.background="",p.style.overflow="hidden",u=S.style.overflow,S.style.overflow="hidden",S.appendChild(p)),l=n(d,e),p.fake?(p.parentNode.removeChild(p),S.style.overflow=u,S.offsetHeight):d.parentNode.removeChild(d),!!l}function l(e){return e.replace(/([A-Z])/g,function(e,t){return"-"+t.toLowerCase()}).replace(/^ms-/,"-ms-")}function c(t,n,r){var o;if("getComputedStyle"in e){o=getComputedStyle.call(e,t,n);var i=e.console;if(null!==o)r&&(o=o.getPropertyValue(r));else if(i){var a=i.error?"error":"log";i[a].call(i,"getComputedStyle returning null, its possible modernizr test results are inaccurate")}}else o=!n&&t.currentStyle&&t.currentStyle[r];return o}function u(t,r){var o=t.length;if("CSS"in e&&"supports"in e.CSS){for(;o--;)if(e.CSS.supports(l(t[o]),r))return!0;return!1}if("CSSSupportsRule"in e){for(var i=[];o--;)i.push("("+l(t[o])+":"+r+")");return i=i.join(" or "),s("@supports ("+i+") { #modernizr { position: absolute; } }",function(e){return"absolute"===c(e,null,"position")})}return n}function f(e){return e.replace(/([a-z])-([a-z])/g,function(e,t,n){return t+n.toUpperCase()}).replace(/^-/,"")}function d(e,t,a,s){function l(){d&&(delete N.style,delete N.modElem)}if(s=!r(s,"undefined")&&s,!r(a,"undefined")){var c=u(e,a);if(!r(c,"undefined"))return c}for(var d,p,m,h,v,g=["modernizr","tspan","samp"];!N.style&&g.length;)d=!0,N.modElem=i(g.shift()),N.style=N.modElem.style;for(m=e.length,p=0;p",r.insertBefore(n.lastChild,r.firstChild)}function r(){var e=y.elements;return"string"==typeof e?e.split(" "):e}function o(e,t){var n=y.elements;"string"!=typeof n&&(n=n.join(" ")),"string"!=typeof e&&(e=e.join(" ")),y.elements=n+" "+e,c(t)}function i(e){var t=g[e[h]];return t||(t={},v++,e[h]=v,g[v]=t),t}function a(e,n,r){if(n||(n=t),f)return n.createElement(e);r||(r=i(n));var o;return o=r.cache[e]?r.cache[e].cloneNode():m.test(e)?(r.cache[e]=r.createElem(e)).cloneNode():r.createElem(e),!o.canHaveChildren||p.test(e)||o.tagUrn?o:r.frag.appendChild(o)}function s(e,n){if(e||(e=t),f)return e.createDocumentFragment();n=n||i(e);for(var o=n.frag.cloneNode(),a=0,s=r(),l=s.length;a",u="hidden"in e,f=1==e.childNodes.length||function(){t.createElement("a");var e=t.createDocumentFragment();return void 0===e.cloneNode||void 0===e.createDocumentFragment||void 0===e.createElement}()}catch(e){u=!0,f=!0}}();var y={elements:d.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:"3.7.3",shivCSS:!1!==d.shivCSS,supportsUnknownElements:f,shivMethods:!1!==d.shivMethods,type:"default",shivDocument:c,createElement:a,createDocumentFragment:s,addElements:o};e.html5=y,c(t),"object"==typeof module&&module.exports&&(module.exports=y)}(void 0!==e?e:this,t);var w=y._config.usePrefixes?x.split(" "):[];y._cssomPrefixes=w;var _={elem:i("modernizr")};Modernizr._q.push(function(){delete _.elem});var N={style:_.elem.style};Modernizr._q.unshift(function(){delete N.style}),y.testAllProps=h;var j=function(t){var r,o=prefixes.length,i=e.CSSRule;if(void 0===i)return n;if(!t)return!1;if(t=t.replace(/^@/,""),(r=t.replace(/-/g,"_").toUpperCase()+"_RULE")in i)return"@"+t;for(var a=0;a0&&(t+=" "+n+e.join(" "+n)),E?S.className.baseVal=t:S.className=t)}(C),delete y.addTest,delete y.addAsyncTest;for(var z=0;z"; + let strinner = "
"; strinner += this.options.message; strinner += "
"; this.ntf.innerHTML = strinner; @@ -91,13 +66,12 @@ this.options.wrapper.insertBefore(this.ntf, this.options.wrapper.nextSibling); // dismiss after [options.ttl]ms - var self = this; if (this.options.ttl) { - this.dismissttl = setTimeout(function() { - if (self.active) { - self.dismiss(); - } - }, this.options.ttl); + this.dismissttl = setTimeout(() => { + if (this.active) { + this.dismiss(); + } + }, this.options.ttl); } // init events @@ -108,9 +82,8 @@ * init events */ NotificationFx.prototype._initEvents = function() { - var self = this; // dismiss notification by tapping on it if someone has a touchscreen - this.ntf.querySelector(".ns-box-inner").addEventListener("click", function() { self.dismiss(); }); + this.ntf.querySelector(".ns-box-inner").addEventListener("click", () => { this.dismiss(); }); }; /** @@ -118,8 +91,8 @@ */ NotificationFx.prototype.show = function() { this.active = true; - classie.remove(this.ntf, "ns-hide"); - classie.add(this.ntf, "ns-show"); + this.ntf.classList.remove("ns-hide"); + this.ntf.classList.add("ns-show"); this.options.onOpen(); }; @@ -127,34 +100,27 @@ * dismiss the notification */ NotificationFx.prototype.dismiss = function() { - var self = this; this.active = false; clearTimeout(this.dismissttl); - classie.remove(this.ntf, "ns-show"); - setTimeout(function() { - classie.add(self.ntf, "ns-hide"); + this.ntf.classList.remove("ns-show"); + setTimeout(() => { + this.ntf.classList.add("ns-hide"); // callback - self.options.onClose(); + this.options.onClose(); }, 25); // after animation ends remove ntf from the DOM - var onEndAnimationFn = function(ev) { - if (support.animations) { - if (ev.target !== self.ntf) return false; - this.removeEventListener(animEndEventName, onEndAnimationFn); - } + const onEndAnimationFn = (ev) => { + if (ev.target !== this.ntf) return false; + this.ntf.removeEventListener("animationend", onEndAnimationFn); - if (this.parentNode === self.options.wrapper) { - self.options.wrapper.removeChild(this); + if (ev.target.parentNode === this.options.wrapper) { + this.options.wrapper.removeChild(this.ntf); } }; - if (support.animations) { - this.ntf.addEventListener(animEndEventName, onEndAnimationFn); - } else { - onEndAnimationFn(); - } + this.ntf.addEventListener("animationend", onEndAnimationFn); }; /**