aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFChannel <=>2021-02-03 23:50:10 -0800
committerFChannel <=>2021-02-03 23:50:10 -0800
commitf6eecc720abaefb954fda9a26aab78bb1d706ba4 (patch)
tree6dcf0b4025943309f0d5bc63d71e358f2653d787
parent3e42ce191ed9a72ed8aa69ee7819a20bb4d23048 (diff)
sorted board list
-rw-r--r--client.go43
-rw-r--r--main.go42
-rw-r--r--static/admin.html4
-rw-r--r--static/faq.html6
-rw-r--r--static/main.html2
-rw-r--r--static/manage.html8
-rw-r--r--static/ncatalog.html6
-rw-r--r--static/npost.html4
-rw-r--r--static/posts.html34
-rw-r--r--static/rules.html6
10 files changed, 75 insertions, 80 deletions
diff --git a/client.go b/client.go
index 56f5812..c585209 100644
--- a/client.go
+++ b/client.go
@@ -15,11 +15,13 @@ import "os"
var Key *string = new(string)
-var Boards *[]ObjectBase = new([]ObjectBase)
+var FollowingBoards []ObjectBase
+
+var Boards []Board
type Board struct{
Name string
- Actor string
+ Actor Actor
Summary string
PrefName string
InReplyTo string
@@ -74,23 +76,11 @@ func IndexGet(w http.ResponseWriter, r *http.Request, db *sql.DB) {
t := template.Must(template.ParseFiles("./static/main.html", "./static/index.html"))
actor := GetActorFromDB(db, Domain)
-
- var boardCollection []Board
-
- for _, e := range *Boards {
- var board Board
- boardActor := GetActor(e.Id)
- board.Name = "/" + boardActor.Name + "/"
- board.PrefName = boardActor.PreferredUsername
- board.Location = "/" + boardActor.Name
- boardCollection = append(boardCollection, board)
- board.Restricted = boardActor.Restricted
- }
var data PageData
data.Title = "Welcome to " + actor.PreferredUsername
data.Message = fmt.Sprintf("%s is a federated image board based on activitypub. The current version of the code running the server is still a work in progress, expect a bumpy ride for the time being. Get the server code here https://github.com/FChannel0", Domain)
- data.Boards = boardCollection
+ data.Boards = Boards
data.Board.Name = ""
data.Key = *Key
data.Board.Domain = Domain
@@ -116,7 +106,7 @@ func OutboxGet(w http.ResponseWriter, r *http.Request, db *sql.DB, collection Co
returnData.Board.Summary = actor.Summary
returnData.Board.InReplyTo = ""
returnData.Board.To = actor.Outbox
- returnData.Board.Actor = actor.Id
+ returnData.Board.Actor.Id = actor.Id
returnData.Board.ModCred, _ = GetPasswordFromSession(r)
returnData.Board.Domain = Domain
returnData.Board.Restricted = actor.Restricted
@@ -158,7 +148,7 @@ func OutboxGet(w http.ResponseWriter, r *http.Request, db *sql.DB, collection Co
DeleteTombstonePosts(&mergeCollection)
sort.Sort(ObjectBaseSortDesc(mergeCollection.OrderedItems))
- returnData.Boards = GetBoardCollection(db)
+ returnData.Boards = Boards
offset := 8
start := page * offset
@@ -242,7 +232,7 @@ func CatalogGet(w http.ResponseWriter, r *http.Request, db *sql.DB, collection C
returnData.Board.PrefName = actor.PreferredUsername
returnData.Board.InReplyTo = ""
returnData.Board.To = actor.Outbox
- returnData.Board.Actor = actor.Id
+ returnData.Board.Actor.Id = actor.Id
returnData.Board.Summary = actor.Summary
returnData.Board.ModCred, _ = GetPasswordFromSession(r)
returnData.Board.Domain = Domain
@@ -254,7 +244,7 @@ func CatalogGet(w http.ResponseWriter, r *http.Request, db *sql.DB, collection C
returnData.Title = "/" + actor.Name + "/ - " + actor.PreferredUsername
- returnData.Boards = GetBoardCollection(db)
+ returnData.Boards = Boards
returnData.Posts = mergeCollection.OrderedItems
@@ -286,7 +276,7 @@ func PostGet(w http.ResponseWriter, r *http.Request, db *sql.DB){
returnData.Board.Name = actor.Name
returnData.Board.PrefName = actor.PreferredUsername
returnData.Board.To = actor.Outbox
- returnData.Board.Actor = actor.Id
+ returnData.Board.Actor.Id = actor.Id
returnData.Board.Summary = actor.Summary
returnData.Board.ModCred, _ = GetPasswordFromSession(r)
returnData.Board.Domain = Domain
@@ -302,7 +292,7 @@ func PostGet(w http.ResponseWriter, r *http.Request, db *sql.DB){
returnData.Key = *Key
- returnData.Boards = GetBoardCollection(db)
+ returnData.Boards = Boards
re = regexp.MustCompile("f\\w+-\\w+")
@@ -398,7 +388,7 @@ func GetRemoteActor(id string) Actor {
func GetBoardCollection(db *sql.DB) []Board {
var collection []Board
- for _, e := range *Boards {
+ for _, e := range FollowingBoards {
var board Board
boardActor := GetActorFromDB(db, e.Id)
if boardActor.Id == "" {
@@ -407,8 +397,11 @@ func GetBoardCollection(db *sql.DB) []Board {
board.Name = "/" + boardActor.Name + "/"
board.PrefName = boardActor.PreferredUsername
board.Location = "/" + boardActor.Name
+ board.Actor = boardActor
collection = append(collection, board)
}
+
+ sort.Sort(BoardSortAsc(collection))
return collection
}
@@ -425,7 +418,7 @@ func WantToServe(db *sql.DB, actorName string) (Collection, bool) {
return collection, true
}
- for _, e := range *Boards {
+ for _, e := range FollowingBoards {
boardActor := GetActorFromDB(db, e.Id)
if boardActor.Id == "" {
@@ -757,3 +750,7 @@ func (a ObjectBaseSortAsc) Len() int { return len(a) }
func (a ObjectBaseSortAsc) Less(i, j int) bool { return a[i].Published < a[j].Published }
func (a ObjectBaseSortAsc) Swap(i, j int) { a[i], a[j] = a[j], a[i] }
+type BoardSortAsc []Board
+func (a BoardSortAsc) Len() int { return len(a) }
+func (a BoardSortAsc) Less(i, j int) bool { return a[i].Name < a[j].Name }
+func (a BoardSortAsc) Swap(i, j int) { a[i], a[j] = a[j], a[i] }
diff --git a/main.go b/main.go
index b81ee86..270977c 100644
--- a/main.go
+++ b/main.go
@@ -50,12 +50,12 @@ func main() {
go MakeCaptchas(db, 100)
- *Key = CreateClientKey()
+ *Key = CreateClientKey()
- following := GetActorFollowingDB(db, Domain)
+ FollowingBoards = GetActorFollowingDB(db, Domain)
+
+ Boards = GetBoardCollection(db)
- Boards = &following
-
// root actor is used to follow remote feeds that are not local
//name, prefname, summary, auth requirements, restricted
if GetConfigValue("instancename") != "" {
@@ -445,9 +445,9 @@ func main() {
CheckError(err, "error with add board follow resp")
- following := GetActorFollowingDB(db, Domain)
-
- Boards = &following
+ FollowingBoards = GetActorFollowingDB(db, Domain)
+
+ Boards = GetBoardCollection(db)
http.Redirect(w, r, r.Header.Get("Referer"), http.StatusSeeOther)
@@ -493,12 +493,8 @@ func main() {
adminData.Domain = Domain
adminData.IsLocal = IsActorLocal(db, actor.Id)
- var boardCollection []Board
-
- boardCollection = GetBoardCollection(db)
-
adminData.Title = "Manage /" + actor.Name + "/"
- adminData.Boards = boardCollection
+ adminData.Boards = Boards
adminData.Board.Name = actor.Name
adminData.Actor = actor.Id
adminData.Key = *Key
@@ -532,10 +528,7 @@ func main() {
adminData.Domain = Domain
adminData.Board.ModCred,_ = GetPasswordFromSession(r)
- var boardCollection []Board
-
- boardCollection = GetBoardCollection(db)
- adminData.Boards = boardCollection
+ adminData.Boards = Boards
t.ExecuteTemplate(w, "layout", adminData)
}
@@ -606,7 +599,7 @@ func main() {
var removed bool = false
item.Id = respActor.Id
- for _, e := range *Boards {
+ for _, e := range FollowingBoards {
if e.Id != item.Id {
board = append(board, e)
} else {
@@ -618,7 +611,9 @@ func main() {
board = append(board, item)
}
- *Boards = board
+ FollowingBoards = board
+
+ Boards = GetBoardCollection(db)
}
http.Redirect(w, r, r.Header.Get("Referer"), http.StatusSeeOther)
@@ -1902,14 +1897,9 @@ func ParseCommentForReply(comment string) string {
func GetActorByName(db *sql.DB, name string) Actor {
var actor Actor
- for _, e := range *Boards {
- boardActor := GetActorFromDB(db, e.Id)
- if boardActor.Id == "" {
- boardActor = GetRemoteActor(e.Id)
- }
-
- if boardActor.Name == name {
- actor = boardActor
+ for _, e := range Boards {
+ if e.Actor.Name == name {
+ actor = e.Actor
}
}
diff --git a/static/admin.html b/static/admin.html
index f7db70c..a4c61c1 100644
--- a/static/admin.html
+++ b/static/admin.html
@@ -33,10 +33,10 @@
<form id="follow-form" action="/{{ .Key }}/follow" method="post" enctype="application/x-www-form-urlencoded">
<label>Subscribe:</label><br>
<input id="follow" name="follow" style="margin-bottom: 12px;" placeholder="http://localhost:3000/g"></input><input type="submit" value="Subscribe"><br>
- <input type="hidden" name="actor" value="{{ .Actor }}">
+ <input type="hidden" name="actor" value="{{ .Actor.Id }}">
</form>
<ul style="display: inline-block; padding: 0; margin: 0;">
- {{ $actor := .Actor }}
+ {{ $actor := .Actor.Id }}
{{ $key := .Key }}
{{ range .Following }}
<li><a href="/{{ $key }}/follow?follow={{ . }}&actor={{ $actor }}">[Unfollow]</a><a href="{{ . }}">{{ . }}</a></li>
diff --git a/static/faq.html b/static/faq.html
index 0d929f9..2b81e43 100644
--- a/static/faq.html
+++ b/static/faq.html
@@ -20,7 +20,7 @@
<p>click on "No." next to a post to view its thread.</p>
<h4>Uploading files</h4>
- <p>max file size is 7MB. the supported file types are "image/gif","image/jpeg","image/png","image/svg+xml","image/webp","image/avif","image/apng","video/mp4","video/ogg","video/webm","audio/mpeg","audio/ogg","audio/wav", "audio/wave", "audio/x-wav". these were choosen based on browser support for embeding</p>
+ <p>max file size is 7MB. the supported file types are "image/gif","image/jpeg","image/png","image/svg+xml","image/webp","image/avif","image/apng","video/mp4","video/ogg","video/webm","audio/mpeg","audio/ogg","audio/wav", "audio/wave", "audio/x-wav". these were choosen based on browser support for embeding.</p>
<h4>JavaScript why?</h4>
<p>a version of the client with no javascript will be made eventually. current version requires it, because of basic functionality needed. no libraries or frameworks for javascript is used besides ECMAScript, just basic selection of DOM elements and modifying their styling. maybe someone would be willing to make a client that uses no javascript.</p>
@@ -31,5 +31,9 @@
<h4>Activitypub specific examples</h4>
<p>coming soon(tm).</p>
</div>
+ <div style="width: 500px; margin:0 auto; margin-top: 50px; text-align: center;">
+ <a href="/">[Home]</a><a href="/static/rules.html">[Rules]</a><a href="/static/faq.html">[FAQ]</a>
+ <p>All media are copyright to their respective owners.</p>
+ </div>
</body>
</html>
diff --git a/static/main.html b/static/main.html
index 59852ed..7d5d236 100644
--- a/static/main.html
+++ b/static/main.html
@@ -67,7 +67,7 @@
{{end}}
</ul>
{{ if .Board.ModCred }}
- {{ if eq .Board.ModCred .Board.Domain .Board.Actor }}
+ {{ if eq .Board.ModCred .Board.Domain .Board.Actor.Id }}
<span style="float: right;"><a href="/{{ .Key }}/{{ .Board.Name }}">[Manage Board]</a></span>
{{ end }}
{{ end }}
diff --git a/static/manage.html b/static/manage.html
index 3a86f7a..06288cd 100644
--- a/static/manage.html
+++ b/static/manage.html
@@ -16,7 +16,7 @@
</ul>
</div>
<a href="/{{ .Board.Name }}">[Return]</a>
-{{ $actor := .Actor }}
+{{ $actor := .Actor.Id }}
{{ $board := .Board }}
{{ $key := .Key }}
{{ if .IsLocal }}
@@ -26,7 +26,7 @@
<label>Subscribe:</label><br>
<input id="follow" name="follow" style="margin-bottom: 12px;" placeholder="https://localhost:3000/g"></input>
<input type="submit" value="Subscribe"><br>
- <input type="hidden" name="actor" value="{{ .Actor }}">
+ <input type="hidden" name="actor" value="{{ .Actor.Id }}">
</form>
<ul style="display: inline-block; padding: 0; margin: 0;">
@@ -81,8 +81,8 @@
reportedArray.forEach(function(r, i){
var id = r.getAttribute("post")
- r.innerText = "/" + {{ .Board.Name }} + "/" + shortURL("{{ .Actor }}", id)
- r.href = {{ .Domain }} + "/" + {{ .Board.Name }} + "/" + shortURL("{{ .Actor }}", id)
+ r.innerText = "/" + {{ .Board.Name }} + "/" + shortURL("{{ .Actor.Id }}", id)
+ r.href = {{ .Domain }} + "/" + {{ .Board.Name }} + "/" + shortURL("{{ .Actor.Id }}", id)
})
</script>
{{ end }}
diff --git a/static/ncatalog.html b/static/ncatalog.html
index a57e291..3638d95 100644
--- a/static/ncatalog.html
+++ b/static/ncatalog.html
@@ -15,11 +15,11 @@
<div style="padding: 10px; text-align: center;">
{{ range .Posts }}
<div style="overflow: hidden; vertical-align: top; padding-right: 24px; padding-bottom: 24px; display: inline-block; width: 180px; max-height: 320px; margin-bottom: 10px;">
- {{ if eq $board.ModCred $board.Domain $board.Actor }}
+ {{ if eq $board.ModCred $board.Domain $board.Actor.Id }}
<a href="/delete?id={{ .Id }}">[Delete Post]</a>
{{ end }}
{{ if .Attachment }}
- {{ if eq $board.ModCred $board.Domain $board.Actor }}
+ {{ if eq $board.ModCred $board.Domain $board.Actor.Id }}
<a href="/deleteattach?id={{ .Id }}">[Delete Attachment]</a>
{{ end }}
<a id="{{ .Id }}-anchor" href="/{{ $board.Name }}/">
@@ -74,7 +74,7 @@
</a>
</div>
<script>
- document.getElementById("{{ .Id }}-anchor").href = "/{{ $board.Name }}/" + shortURL("{{$board.Actor}}", "{{ .Id }}")
+ document.getElementById("{{ .Id }}-anchor").href = "/{{ $board.Name }}/" + shortURL("{{$board.Actor.Id}}", "{{ .Id }}")
</script>
{{ end }}
</div>
diff --git a/static/npost.html b/static/npost.html
index 6c837cf..b91b795 100644
--- a/static/npost.html
+++ b/static/npost.html
@@ -26,7 +26,7 @@
{{ $replies := (index .Posts 0).Replies }}
<span style="float: right;">{{ $replies.TotalItems }} / {{ $replies.TotalImgs }}</span>
<div style="width: 500px; margin: 0 auto; text-align: center;">
- <span ><a id="reply-content" href="javascript:quote('{{ $board.Actor }}', '{{ (index .Posts 0).Id }}', 'reply')">[Post a Reply]</a></span>
+ <span ><a id="reply-content" href="javascript:quote('{{ $board.Actor.Id }}', '{{ (index .Posts 0).Id }}', 'reply')">[Post a Reply]</a></span>
</div>
<hr>
{{ end }}
@@ -34,6 +34,6 @@
{{ define "script" }}
<script src="/static/js/footerscript.js"></script>
<script>
- viewLink("{{ .Board.Name }}", "{{ .Board.Actor }}")
+ viewLink("{{ .Board.Name }}", "{{ .Board.Actor.Id }}")
</script>
{{ end }}
diff --git a/static/posts.html b/static/posts.html
index 6bdc7b5..7878a1c 100644
--- a/static/posts.html
+++ b/static/posts.html
@@ -8,11 +8,11 @@
{{ end }}
<div style="overflow: auto;">
<div id="{{ .Id }}" style="overflow: visible; margin-bottom: 12px;">
- {{ if eq $board.ModCred $board.Domain $board.Actor }}
+ {{ if eq $board.ModCred $board.Domain $board.Actor.Id }}
<a href="/delete?id={{ .Id }}">[Delete Post]</a>
{{ end }}
{{ if .Attachment }}
- {{ if eq $board.ModCred $board.Domain $board.Actor }}
+ {{ if eq $board.ModCred $board.Domain $board.Actor.Id }}
<a href="/deleteattach?id={{ .Id }}">[Delete Attachment]</a>
{{ end }}
<span style="display: block;">File: <a id="{{ .Id }}-img" href="{{ (index .Attachment 0).Href}}">{{ (index .Attachment 0).Name }}</a><span id="{{ .Id }}-size">({{ (index .Attachment 0).Size }})</span></span>
@@ -60,7 +60,7 @@
}
</script>
{{ end }}
- <span style="color: #0f0c5d;"><b>{{ .Name }}</b></span><span style="color: #117743;"><b>{{ if .AttributedTo }} {{.AttributedTo }} {{ else }} Anonymous {{ end }}</b></span><span>{{ .Published }} <a id="{{ .Id }}-anchor" href="/{{ $board.Name }}/">No.</a> <a id="{{ .Id }}-link" title="{{ .Id }}" href="javascript:quote('{{ $board.Actor }}', '{{ $opId }}', '{{ .Id }}')">{{ .Id }}</a> {{ if ne .Type "Tombstone" }}<a href="javascript:report('{{ $board.Actor }}', '{{ .Id }}')">[Report]</a>{{ end }}</span>
+ <span style="color: #0f0c5d;"><b>{{ .Name }}</b></span><span style="color: #117743;"><b>{{ if .AttributedTo }} {{.AttributedTo }} {{ else }} Anonymous {{ end }}</b></span><span>{{ .Published }} <a id="{{ .Id }}-anchor" href="/{{ $board.Name }}/">No.</a> <a id="{{ .Id }}-link" title="{{ .Id }}" href="javascript:quote('{{ $board.Actor.Id }}', '{{ $opId }}', '{{ .Id }}')">{{ .Id }}</a> {{ if ne .Type "Tombstone" }}<a href="javascript:report('{{ $board.Actor.Id }}', '{{ .Id }}')">[Report]</a>{{ end }}</span>
<p id="{{ .Id }}-content" style="white-space: pre-wrap; margin: 10px 30px 10px 30px;">{{.Content}}</p>
{{ if .Replies }}
{{ $replies := .Replies }}
@@ -74,11 +74,11 @@
<div style="display: inline-block; overflow: auto;">
<div style="float: left; display: block; margin-right: 5px;">>></div>
<div class="post" style="overflow: auto; padding: 5px; margin-bottom: 2px;">
- {{ if eq $board.ModCred $board.Domain $board.Actor }}
+ {{ if eq $board.ModCred $board.Domain $board.Actor.Id }}
<a href="/delete?id={{ .Id }}">[Delete Post]</a>
{{ end }}
{{ if .Attachment }}
- {{ if eq $board.ModCred $board.Domain $board.Actor }}
+ {{ if eq $board.ModCred $board.Domain $board.Actor.Id }}
<a href="/deleteattach?id={{ .Id }}">[Delete Attachment]</a>
{{ end }}
<span style="display: block;">File <a id="{{ .Id }}-img" href="{{ (index .Attachment 0).Href}}">{{ (index .Attachment 0).Name }}</a> <span id="{{ .Id }}-size">({{ (index .Attachment 0).Size }})</span></span>
@@ -126,12 +126,12 @@
}
</script>
{{ end }}
- <span style="color: #0f0c5d;"><b>{{ .Name }}</b></span><span style="color: #117743;"><b>{{ if .AttributedTo }} {{.AttributedTo }} {{ else }} Anonymous {{ end }}</b></span><span>{{ .Published }} <a id="{{ .Id }}-anchor" href="/{{ $board.Name }}/post/{{ $opId }}#{{ .Id }}">No. </a><a id="{{ .Id }}-link" title="{{ .Id }}" href="javascript:quote('{{ $board.Actor }}', '{{ $opId }}', '{{ .Id }}')">{{ .Id }}</a> {{ if ne .Type "Tombstone" }}<a href="javascript:report('{{ $board.Actor }}', '{{ .Id }}')">[Report]</a>{{ end }}</span>
+ <span style="color: #0f0c5d;"><b>{{ .Name }}</b></span><span style="color: #117743;"><b>{{ if .AttributedTo }} {{.AttributedTo }} {{ else }} Anonymous {{ end }}</b></span><span>{{ .Published }} <a id="{{ .Id }}-anchor" href="/{{ $board.Name }}/post/{{ $opId }}#{{ .Id }}">No. </a><a id="{{ .Id }}-link" title="{{ .Id }}" href="javascript:quote('{{ $board.Actor.Id }}', '{{ $opId }}', '{{ .Id }}')">{{ .Id }}</a> {{ if ne .Type "Tombstone" }}<a href="javascript:report('{{ $board.Actor.Id }}', '{{ .Id }}')">[Report]</a>{{ end }}</span>
{{ $parentId := .Id }}
{{ if .Replies.OrderedItems }}
{{ range .Replies.OrderedItems }}
<span id="{{$parentId}}-replyto-{{.Id}}"></span>
- <script>document.getElementById("{{ $parentId }}-replyto-{{.Id}}").innerHTML = "<a title='{{ .Id }}' href='/{{ $board.Name }}/" + shortURL("{{ $board.Actor }}", "{{ $opId }}") + "#" + shortURL("{{ $board.Actor }}", "{{ .Id }}") + "'>>>" + shortURL("{{ $board.Actor }}", "{{ .Id }}") + "</a>";</script>
+ <script>document.getElementById("{{ $parentId }}-replyto-{{.Id}}").innerHTML = "<a title='{{ .Id }}' href='/{{ $board.Name }}/" + shortURL("{{ $board.Actor.Id }}", "{{ $opId }}") + "#" + shortURL("{{ $board.Actor.Id }}", "{{ .Id }}") + "'>>>" + shortURL("{{ $board.Actor.Id }}", "{{ .Id }}") + "</a>";</script>
{{ end }}
{{ end }}
<p id="{{ .Id }}-content" style="white-space: pre-wrap; margin: 10px 30px 10px 30px;">{{.Content}}</p>
@@ -144,15 +144,15 @@
document.getElementById("{{ .Id }}-img").innerText = shortImg("{{ (index .Attachment 0).Name }}");
{{ end }}
- document.getElementById("{{ .Id }}-link").innerText = shortURL("{{ $board.Actor }}", "{{ .Id }}");
+ document.getElementById("{{ .Id }}-link").innerText = shortURL("{{ $board.Actor.Id }}", "{{ .Id }}");
- document.getElementById("{{ .Id }}-anchor").href = "/{{ $board.Name }}/" + shortURL("{{$board.Actor}}", "{{ $opId }}") +
- "#" + shortURL("{{$board.Actor}}", "{{ .Id }}");
- document.getElementById("{{ .Id }}").setAttribute("id", shortURL("{{$board.Actor}}", "{{ .Id }}"));
+ document.getElementById("{{ .Id }}-anchor").href = "/{{ $board.Name }}/" + shortURL("{{$board.Actor.Id}}", "{{ $opId }}") +
+ "#" + shortURL("{{$board.Actor.Id}}", "{{ .Id }}");
+ document.getElementById("{{ .Id }}").setAttribute("id", shortURL("{{$board.Actor.Id}}", "{{ .Id }}"));
var content = document.getElementById("{{ .Id }}-content");
- content.innerHTML = convertContent('{{$board.Actor}}', content.innerText, '{{ $opId }}')
+ content.innerHTML = convertContent('{{$board.Actor.Id}}', content.innerText, '{{ $opId }}')
</script>
{{ end }}
@@ -165,16 +165,16 @@
document.getElementById("{{ .Id }}-img").innerText = shortImg("{{ (index .Attachment 0).Name }}");
{{ end }}
- document.getElementById("{{ .Id }}-link").innerText = shortURL("{{ $board.Actor }}", "{{ .Id }}");
+ document.getElementById("{{ .Id }}-link").innerText = shortURL("{{ $board.Actor.Id }}", "{{ .Id }}");
- document.getElementById("{{ .Id }}").setAttribute("id", shortURL("{{ $board.Actor }}", "{{ .Id }}"));
+ document.getElementById("{{ .Id }}").setAttribute("id", shortURL("{{ $board.Actor.Id }}", "{{ .Id }}"));
- document.getElementById("{{ .Id }}-anchor").href = "/{{ $board.Name }}/" + shortURL("{{$board.Actor}}", "{{ $opId }}") +
- "#" + shortURL("{{$board.Actor}}", "{{ .Id }}");
+ document.getElementById("{{ .Id }}-anchor").href = "/{{ $board.Name }}/" + shortURL("{{$board.Actor.Id}}", "{{ $opId }}") +
+ "#" + shortURL("{{$board.Actor.Id}}", "{{ .Id }}");
var content = document.getElementById("{{ .Id }}-content");
- content.innerHTML = convertContent('{{$board.Actor}}', content.innerText, '{{ $opId }}')
+ content.innerHTML = convertContent('{{$board.Actor.Id}}', content.innerText, '{{ $opId }}')
</script>
{{ end }}
{{ end }}
diff --git a/static/rules.html b/static/rules.html
index 574435a..1ca49ee 100644
--- a/static/rules.html
+++ b/static/rules.html
@@ -2,11 +2,15 @@
<html>
<body style="background-color:#ffffee; max-width: 800px; margin: 0 auto;">
<a style="color: black;" href="javascript:history.back()">[Back]</a>
- <h1 style="text-align: center;">Rules and Agreements:</h1>
+ <h1 style="padding-left: 15px;">Rules and Agreements:</h1>
<ol>
<li>Do not break or violate United States laws.</li>
<li>Age Restriction is 18 years and older.</li>
<li>Any blue boards are restricted to work safe posts only.</li>
</ol>
+ <div style="padding-top: 500px;width: 500px; margin:0 auto; margin-top: 50px; text-align: center;">
+ <a href="/">[Home]</a><a href="/static/rules.html">[Rules]</a><a href="/static/faq.html">[FAQ]</a>
+ <p>All media are copyright to their respective owners.</p>
+ </div>
</body>
</html>