aboutsummaryrefslogtreecommitdiff
path: root/html/js
diff options
context:
space:
mode:
authorFlorian Fischer <florian.fischer@muhq.space>2025-06-08 20:18:49 -0500
committerFlorian Fischer <florian.fischer@muhq.space>2025-07-03 22:01:22 -0400
commitc82e8a3b86c0e09b9b003d8e27f660d1c041c067 (patch)
tree29b169d6e633406d586889411c8a9c782ed3076d /html/js
parentac17d110ce1d8d6660c26a2fef39dc76c5c160ef (diff)
downloadmuhqs-game-c82e8a3b86c0e09b9b003d8e27f660d1c041c067.tar.gz
muhqs-game-c82e8a3b86c0e09b9b003d8e27f660d1c041c067.zip
move linkable rule js into seperate file
Diffstat (limited to 'html/js')
-rw-r--r--html/js/linkableRules.js44
1 files changed, 44 insertions, 0 deletions
diff --git a/html/js/linkableRules.js b/html/js/linkableRules.js
new file mode 100644
index 00000000..82261a1e
--- /dev/null
+++ b/html/js/linkableRules.js
@@ -0,0 +1,44 @@
+/*
+@licstart The following is the entire license notice for the
+JavaScript code in this page.
+
+Copyright (C) 2025 Florian Fischer
+
+The JavaScript code in this page is free software: you can
+redistribute it and/or modify it under the terms of the GNU
+General Public License (GNU GPL) as published by the Free Software
+Foundation, either version 3 of the License, or any later version.
+The code is distributed WITHOUT ANY WARRANTY;
+without even the implied warranty of MERCHANTABILITY or FITNESS
+FOR A PARTICULAR PURPOSE. See the GNU GPL for more details.
+
+As additional permission under GNU GPL version 3 section 7, you
+may distribute non-source (e.g., minimized or compacted) forms of
+that code without the copy of the GNU GPL normally required by
+section 4, provided you include this license notice and a URL
+through which recipients can access the Corresponding Source.
+
+@licend The above is the entire license notice
+for the JavaScript code in this page.
+*/
+function prepareLinkableRules() {
+ for (let e of document.querySelectorAll(".rule")) {
+ // Add class via js to ensure there is no wrong
+ // sense of functionality in browsers without js
+ e.classList.add("linkable-rule");
+ // TODO: support nested lists
+ e.onclick = function() {
+ if (e.matches(':hover') || e.matches(':active')) {
+ const origin = window.location.origin;
+ const path = window.location.pathname;
+ const anchor = e.id;
+ let url = origin + '/' + path + '#' + anchor;
+ navigator.clipboard.writeText(url);
+ // document.getElementsByTagName("body")[0].focus();
+ }
+ }
+ }
+}
+window.onload = function() {
+ prepareLinkableRules();
+}