views/honkpage.html (view raw)
1{{ template "header.html" . }}
2<main>
3<div class="info" id="infobox">
4{{ if .Name }}
5<p>{{ .Name }} <span style="margin-left:1em;"><a href="/u/{{ .Name }}/rss">rss</a></span>
6<p>{{ .WhatAbout }}
7{{ end }}
8<p>{{ .ServerMessage }}
9{{ if .HonkCSRF }}
10{{ template "honkform.html" . }}
11{{ end }}
12</div>
13{{ $BonkCSRF := .HonkCSRF }}
14{{ range .Honks }}
15{{ template "honk.html" map "Honk" . "BonkCSRF" $BonkCSRF }}
16{{ end }}
17</main>
18{{ if $BonkCSRF }}
19<script>
20function encode(hash) {
21 var s = []
22 for (var key in hash) {
23 var val = hash[key]
24 s.push(escape(key) + "=" + escape(val))
25 }
26 return s.join("&")
27}
28function post(url, data) {
29 var x = new XMLHttpRequest()
30 x.open("POST", url)
31 x.setRequestHeader("Content-Type", "application/x-www-form-urlencoded")
32 x.send(data)
33}
34function bonk(el, xid) {
35 el.innerHTML = "bonked"
36 el.disabled = true
37 post("/bonk", "CSRF={{ $BonkCSRF }}&xid=" + escape(xid))
38}
39function muteit(el, convoy) {
40 el.innerHTML = "muted"
41 el.disabled = true
42 post("/zonkit", "CSRF={{ $BonkCSRF }}&wherefore=zonvoy&what=" + escape(convoy))
43 var els = document.querySelectorAll('article.honk')
44 for (var i = 0; i < els.length; i++) {
45 var e = els[i]
46 if (e.getAttribute("data-convoy") == convoy) {
47 e.remove()
48 }
49 }
50}
51function zonkit(el, xid) {
52 el.innerHTML = "zonked"
53 el.disabled = true
54 post("/zonkit", "CSRF={{ $BonkCSRF }}&wherefore=zonk&what=" + escape(xid))
55 var p = el
56 while (p && p.tagName != "ARTICLE") {
57 p = p.parentElement
58 }
59 if (p) {
60 p.remove()
61 }
62}
63function ackit(el, xid) {
64 el.innerHTML = "acked"
65 el.disabled = true
66 post("/zonkit", "CSRF={{ $BonkCSRF }}&wherefore=ack&what=" + escape(xid))
67}
68function deackit(el, xid) {
69 el.innerHTML = "deacked"
70 el.disabled = true
71 post("/zonkit", "CSRF={{ $BonkCSRF }}&wherefore=deack&what=" + escape(xid))
72}
73</script>
74{{ end }}