From 0d433ac53d0cf387e8d6ce88850a46d0671e78f9 Mon Sep 17 00:00:00 2001 From: Tim van Dijen <tvdijen@gmail.com> Date: Thu, 24 Mar 2022 22:21:30 +0100 Subject: [PATCH] Use events instead of the more rudimentary implementation --- modules/core/www/assets/js/loginuserpass.js | 7 ++++++- package-lock.json | 5 ----- src/js/bundle/clipboard.js | 3 +-- src/js/bundle/expander.js | 9 ++------- src/js/bundle/highlight.js | 3 +-- src/js/bundle/language.js | 20 ++++---------------- src/js/bundle/main.js | 1 - src/js/bundle/ready.js | 15 --------------- src/js/logout/main.js | 2 +- 9 files changed, 15 insertions(+), 50 deletions(-) delete mode 100644 src/js/bundle/ready.js diff --git a/modules/core/www/assets/js/loginuserpass.js b/modules/core/www/assets/js/loginuserpass.js index 8667593a7..ff67c96f7 100644 --- a/modules/core/www/assets/js/loginuserpass.js +++ b/modules/core/www/assets/js/loginuserpass.js @@ -1,4 +1,4 @@ -ready(function () { +document.addEventListener("DOMContentLoaded", function(event) { var button = document.getElementById("submit_button"); button.onclick = function () { this.innerHTML = button.getAttribute("data-processing"); @@ -8,5 +8,10 @@ ready(function () { form.submit(); return true; }; + + button.focus(); + + var username = document.getElementById("username"); + username.focus(); }); diff --git a/package-lock.json b/package-lock.json index 24c2c78aa..fab1daece 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1387,11 +1387,6 @@ } } }, - "jquery": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.0.tgz", - "integrity": "sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw==" - }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", diff --git a/src/js/bundle/clipboard.js b/src/js/bundle/clipboard.js index f3dfbeb81..5a360f6b6 100644 --- a/src/js/bundle/clipboard.js +++ b/src/js/bundle/clipboard.js @@ -1,7 +1,6 @@ import ClipboardJS from "clipboard/dist/clipboard"; -ready(function () { - // Clipboard +document.addEventListener("DOMContentLoaded", function(event) { var clipboard = new ClipboardJS('.copy'); clipboard.on('success', function (e) { setTimeout(function () { diff --git a/src/js/bundle/expander.js b/src/js/bundle/expander.js index 42bb2e57d..2aadb2471 100644 --- a/src/js/bundle/expander.js +++ b/src/js/bundle/expander.js @@ -1,14 +1,9 @@ -ready(function () { - // Expander boxes +document.addEventListener("DOMContentLoaded", function(event) { var expandable = document.querySelectorAll('.expandable > .expander'); for (var i = 0; i < expandable.length; i++) { expandable[i].currentValue.onclick = function (e) { var parent = e.currentTarget.parentNode; - if (parent.className.match(/(?:^|\s)expanded(?!\S)/)) { - parent.className = parent.className.replace(/(?:^|\s)expanded(?!\S)/g , ''); - } else { - parent.className += " expanded"; - } + parent.classList.toggle('expanded'); e.currentTarget.blur(); }; } diff --git a/src/js/bundle/highlight.js b/src/js/bundle/highlight.js index ce7b0728a..f1974a337 100644 --- a/src/js/bundle/highlight.js +++ b/src/js/bundle/highlight.js @@ -3,8 +3,7 @@ import xml from "highlight.js/lib/languages/xml"; import php from "highlight.js/lib/languages/php"; import json from "highlight.js/lib/languages/json"; -ready(function () { - // Syntax highlight +document.addEventListener("DOMContentLoaded", function(event) { hljs.registerLanguage('xml', xml); hljs.registerLanguage('php', php); hljs.registerLanguage('json', json); diff --git a/src/js/bundle/language.js b/src/js/bundle/language.js index 5734632b4..72a6a72d4 100644 --- a/src/js/bundle/language.js +++ b/src/js/bundle/language.js @@ -1,4 +1,4 @@ -ready(function () { +document.addEventListener("DOMContentLoaded", function(event) { // Language selector var languageSelector = document.getElementById("language-selector"); languageSelector.onchange = function() { @@ -14,23 +14,11 @@ ready(function () { e.preventDefault(); var layout = document.getElementById("layout"); - if (layout.className.match(/(?:^|\s)active(?!\S)/)) { - layout.className = layout.className.replace(/(?:^|\s)active(?!\S)/g , ''); - } else { - layout.className += " active"; - } + layout.classList.toggle('active'); var foot = document.getElementById("foot"); - if (foot.className.match(/(?:^|\s)active(?!\S)/)) { - foot.className = foot.className.replace(/(?:^|\s)active(?!\S)/g , ''); - } else { - foot.className += " active"; - } + foot.classList.toggle('active'); - if (menuLink.className.match(/(?:^|\s)active(?!\S)/)) { - menuLink.className = menuLink.className.replace(/(?:^|\s)active(?!\S)/g , ''); - } else { - menuLink.className += " active"; - } + menuLink.classList.toggle('active'); }; }); diff --git a/src/js/bundle/main.js b/src/js/bundle/main.js index dba686359..066b0da96 100644 --- a/src/js/bundle/main.js +++ b/src/js/bundle/main.js @@ -2,7 +2,6 @@ import "es5-shim"; import "es6-shim"; -import * as ready from './ready'; import * as language from './language'; import * as expander from './expander'; import * as clipboard from './clipboard'; diff --git a/src/js/bundle/ready.js b/src/js/bundle/ready.js deleted file mode 100644 index 8e6c27a09..000000000 --- a/src/js/bundle/ready.js +++ /dev/null @@ -1,15 +0,0 @@ -window.readyHandlers = []; -window.ready = function ready(handler) { - window.readyHandlers.push(handler); - handleState(); -}; - -window.handleState = function handleState () { - if (document.readyState === 'interactive' || document.readyState === "complete") { - while(window.readyHandlers.length > 0) { - (window.readyHandlers.shift())(); - } - } -}; - -document.onreadystatechange = window.handleState; diff --git a/src/js/logout/main.js b/src/js/logout/main.js index f0f759031..5d859d2e8 100644 --- a/src/js/logout/main.js +++ b/src/js/logout/main.js @@ -2,6 +2,6 @@ import SimpleSAMLLogout from './logout.js'; -ready(function () { +document.addEventListener("DOMContentLoaded", function(event) { new SimpleSAMLLogout(document.body.id); }); -- GitLab