# HG changeset patch # User Ted Unangst # Date 1712454445 14400 # Sat Apr 06 21:47:25 2024 -0400 # Node ID 8e2437c1123d91e1849f90c97d45a31db4584364 # Parent 7a88927cfe6c0c044624be4286fdd7448d9c6863 make a common.js file for some functions on all pages diff --git a/views/common.js b/views/common.js new file mode 100644 --- /dev/null +++ b/views/common.js @@ -0,0 +1,62 @@ + +function hotkey(e) { + if (e.ctrlKey || e.altKey) + return + if (e.code == "Escape") { + var menu = document.getElementById("topmenu") + menu.open = false + return + } + if (e.target instanceof HTMLInputElement || e.target instanceof HTMLTextAreaElement) + return + + switch (e.code) { + case "KeyR": + refreshhonks(document.getElementById("honkrefresher")); + break; + case "KeyS": + oldestnewest(document.getElementById("newerscroller")); + break; + case "KeyJ": + scrollnexthonk(); + break; + case "KeyK": + scrollprevioushonk(); + break; + case "KeyM": + var menu = document.getElementById("topmenu") + if (!menu.open) { + menu.open = true + menu.querySelector("a").focus() + } else { + menu.open = false + } + break + case "Slash": + document.getElementById("topmenu").open = true + document.getElementById("searchbox").focus() + e.preventDefault() + break + } +} + +(function() { + document.addEventListener("keydown", hotkey) + var totop = document.querySelector(".nophone") + if (totop) { + totop.onclick = function() { + window.scrollTo(0,0) + } + } + var els = document.getElementsByClassName("donklink") + while (els.length) { + let el = els[0] + el.onclick = function() { + el.classList.remove("donk") + el.onclick = null + return false + } + el.classList.remove("donklink") + } + +})() diff --git a/views/header.html b/views/header.html --- a/views/header.html +++ b/views/header.html @@ -6,6 +6,7 @@ {{ if .LocalStyleParam }} {{ end }} + {{ .APAltLink }} {{ .Honkology }} diff --git a/views/honkpage.js b/views/honkpage.js --- a/views/honkpage.js +++ b/views/honkpage.js @@ -460,49 +460,6 @@ } } -function hotkey(e) { - if (e.ctrlKey || e.altKey) - return - if (e.code == "Escape") { - var menu = document.getElementById("topmenu") - menu.open = false - return - } - if (e.target instanceof HTMLInputElement || e.target instanceof HTMLTextAreaElement) - return - - switch (e.code) { - case "KeyR": - refreshhonks(document.getElementById("honkrefresher")); - break; - case "KeyS": - oldestnewest(document.getElementById("newerscroller")); - break; - case "KeyJ": - scrollnexthonk(); - break; - case "KeyK": - scrollprevioushonk(); - break; - case "KeyM": - var menu = document.getElementById("topmenu") - if (!menu.open) { - menu.open = true - menu.querySelector("a").focus() - } else { - menu.open = false - } - break - case "Slash": - document.getElementById("topmenu").open = true - document.getElementById("searchbox").focus() - e.preventDefault() - break - } -} - -document.addEventListener("keydown", hotkey) - function addemu(elem) { const data = elem.alt const box = document.getElementById("honknoise"); @@ -548,13 +505,6 @@ el = document.getElementById("longagolink") el.onclick = pageswitcher("longago", "") - var totop = document.querySelector(".nophone") - if (totop) { - totop.onclick = function() { - window.scrollTo(0,0) - } - } - var refreshbox = document.getElementById("refreshbox") if (refreshbox) { refreshbox.querySelectorAll("button").forEach(function(el) { diff --git a/web.go b/web.go --- a/web.go +++ b/web.go @@ -88,6 +88,7 @@ templinfo := make(map[string]interface{}) templinfo["StyleParam"] = getassetparam(viewDir + "/views/style.css") templinfo["LocalStyleParam"] = getassetparam(dataDir + "/views/local.css") + templinfo["CommonJSParam"] = getassetparam(viewDir + "/views/common.js") templinfo["JSParam"] = getassetparam(viewDir + "/views/honkpage.js") templinfo["MiscJSParam"] = getassetparam(viewDir + "/views/misc.js") templinfo["LocalJSParam"] = getassetparam(dataDir + "/views/local.js") @@ -3056,6 +3057,7 @@ assets := []string{ viewDir + "/views/style.css", dataDir + "/views/local.css", + viewDir + "/views/common.js", viewDir + "/views/honkpage.js", viewDir + "/views/misc.js", dataDir + "/views/local.js", @@ -3112,6 +3114,7 @@ posters.HandleFunc("/csp-violation", fiveoh) getters.HandleFunc("/style.css", serveviewasset) + getters.HandleFunc("/common.js", serveviewasset) getters.HandleFunc("/honkpage.js", serveviewasset) getters.HandleFunc("/misc.js", serveviewasset) getters.HandleFunc("/local.css", servedataasset)