8e2437c1123d — Ted Unangst 30 days ago
make a common.js file for some functions on all pages
4 files changed, 66 insertions(+), 50 deletions(-)

A => views/common.js
M views/header.html
M views/honkpage.js
M web.go
A => views/common.js +62 -0
@@ 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")
+	}
+
+})()

          
M views/header.html +1 -0
@@ 6,6 6,7 @@ 
 {{ if .LocalStyleParam }}
 <link href="/local.css{{ .LocalStyleParam }}" rel="stylesheet">
 {{ end }}
+<script src="/common.js{{ .CommonJSParam }}" defer></script>
 {{ .APAltLink }}
 {{ .Honkology }}
 <link href="/icon.png" rel="icon">

          
M views/honkpage.js +0 -50
@@ 460,49 460,6 @@ function scrollprevioushonk() {
 	}
 }
 
-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 @@ function loademus() {
 	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) {

          
M web.go +3 -0
@@ 88,6 88,7 @@ func getInfo(r *http.Request) map[string
 	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 @@ func serve() {
 		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 @@ func serve() {
 	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)