Compare commits
No commits in common. "38bbc35922a6dfddfb66625dfe58073d97297c59" and "105275f3e05bb730492551389e069a437c82a8a8" have entirely different histories.
38bbc35922
...
105275f3e0
4 changed files with 23 additions and 74 deletions
|
|
@ -31,13 +31,6 @@
|
||||||
<body>
|
<body>
|
||||||
<nav class="navbar navbar-expand-sm bg-body-tertiary mb-3">
|
<nav class="navbar navbar-expand-sm bg-body-tertiary mb-3">
|
||||||
<div class="container-fluid">
|
<div class="container-fluid">
|
||||||
<button class="navbar-toggler"
|
|
||||||
type="button"
|
|
||||||
data-bs-toggle="collapse" data-bs-target="#navCollapse"
|
|
||||||
aria-controls="navCollapse" aria-expanded="false" aria-label="Toggle navigation">
|
|
||||||
<span class="navbar-toggler-icon"></span>
|
|
||||||
</button>
|
|
||||||
<div class="collapse navbar-collapse mt-2" id="navCollapse">
|
|
||||||
<a class="navbar-brand" href="/">
|
<a class="navbar-brand" href="/">
|
||||||
<img src="/static/icons/favicon.svg" width="30" height="30" class="d-inline-block align-top" alt="">
|
<img src="/static/icons/favicon.svg" width="30" height="30" class="d-inline-block align-top" alt="">
|
||||||
GoNotes
|
GoNotes
|
||||||
|
|
@ -46,21 +39,11 @@
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link" href="/notes/">All Notes</a>
|
<a class="nav-link" href="/notes/">All Notes</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item dropdown">
|
|
||||||
<a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">
|
|
||||||
Tags
|
|
||||||
</a>
|
|
||||||
<ul class="dropdown-menu">
|
|
||||||
<li>
|
|
||||||
<a class="dropdown-item nav-link" href="/notes/">All</a>
|
|
||||||
</li>
|
|
||||||
{{range .userTags}}
|
{{range .userTags}}
|
||||||
<li>
|
<li class="nav-item">
|
||||||
<a class="dropdown-item nav-link" href="/notes/?tag={{.}}">{{.}}</a>
|
<a class="nav-link" href="/notes/?tag={{.}}">{{.}}</a>
|
||||||
</li>
|
</li>
|
||||||
{{end}}
|
{{end}}
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
{{template "navLinks" .}}
|
{{template "navLinks" .}}
|
||||||
<li>
|
<li>
|
||||||
<a class="nav-link" href="/logout/">Logout {{.user}}</a>
|
<a class="nav-link" href="/logout/">Logout {{.user}}</a>
|
||||||
|
|
@ -68,7 +51,6 @@
|
||||||
</ul>
|
</ul>
|
||||||
{{template "navExtra" .}}
|
{{template "navExtra" .}}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
</nav>
|
</nav>
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="row justify-content-md-center">
|
<div class="row justify-content-md-center">
|
||||||
|
|
|
||||||
|
|
@ -46,7 +46,7 @@
|
||||||
<div id="viewerHelp" class="form-text">Share with other user</div>
|
<div id="viewerHelp" class="form-text">Share with other user</div>
|
||||||
</div>
|
</div>
|
||||||
<button class="btn btn-primary" type="submit">Share</button>
|
<button class="btn btn-primary" type="submit">Share</button>
|
||||||
</form>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -65,7 +65,7 @@
|
||||||
<div class="accordion-body">
|
<div class="accordion-body">
|
||||||
<form action="{{.urlSetTags}}" method="POST">
|
<form action="{{.urlSetTags}}" method="POST">
|
||||||
<div class="mb-3">
|
<div class="mb-3">
|
||||||
<input type="text" class="form-control" id="tagInput" name="tags" aria-described-by="tagHelp" value="{{.tags}}"/>
|
<input type="text" class="form-control" id="tagInput" name="tags" aria-described-by="tagHelp" value="{{.note.Tags}}"/>
|
||||||
<div id="tagHelp" class="form-text">Tags</div>
|
<div id="tagHelp" class="form-text">Tags</div>
|
||||||
</div>
|
</div>
|
||||||
<button class="btn btn-primary" type="submit">Set Tags</button>
|
<button class="btn btn-primary" type="submit">Set Tags</button>
|
||||||
|
|
|
||||||
|
|
@ -398,12 +398,3 @@ func (n *Note) ToggleBox(nthBox int) {
|
||||||
n.Body = buf.Bytes()
|
n.Body = buf.Bytes()
|
||||||
n.Save()
|
n.Save()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (n *Note) HasTag(tag string) bool {
|
|
||||||
for _, tag_ := range n.Tags {
|
|
||||||
if tag_ == tag {
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,6 @@ import (
|
||||||
"log"
|
"log"
|
||||||
"net/http"
|
"net/http"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
|
||||||
|
|
||||||
urls "forgejo.gwairfelin.com/max/gispatcho"
|
urls "forgejo.gwairfelin.com/max/gispatcho"
|
||||||
"forgejo.gwairfelin.com/max/gonotes/internal/middleware"
|
"forgejo.gwairfelin.com/max/gonotes/internal/middleware"
|
||||||
|
|
@ -26,7 +25,6 @@ func GetRoutes(prefix string) *http.ServeMux {
|
||||||
"new": {Path: "/new", Protocol: "GET", Handler: new},
|
"new": {Path: "/new", Protocol: "GET", Handler: new},
|
||||||
"view_": {Path: "/{note}", Protocol: "GET", Handler: view},
|
"view_": {Path: "/{note}", Protocol: "GET", Handler: view},
|
||||||
"view": {Path: "/{note}/", Protocol: "GET", Handler: view},
|
"view": {Path: "/{note}/", Protocol: "GET", Handler: view},
|
||||||
"setTags": {Path: "/{note}/tags/", Protocol: "POST", Handler: setTags},
|
|
||||||
"delete": {Path: "/{note}/delete/", Protocol: "GET", Handler: delete},
|
"delete": {Path: "/{note}/delete/", Protocol: "GET", Handler: delete},
|
||||||
"edit": {Path: "/{note}/edit/", Protocol: "GET", Handler: edit},
|
"edit": {Path: "/{note}/edit/", Protocol: "GET", Handler: edit},
|
||||||
"share": {Path: "/{note}/share/", Protocol: "POST", Handler: share},
|
"share": {Path: "/{note}/share/", Protocol: "POST", Handler: share},
|
||||||
|
|
@ -57,9 +55,7 @@ func view(w http.ResponseWriter, r *http.Request) {
|
||||||
"urlNew": myurls.Reverse("new", urls.Repl{}),
|
"urlNew": myurls.Reverse("new", urls.Repl{}),
|
||||||
"urlShare": myurls.Reverse("share", urls.Repl{"note": uid}),
|
"urlShare": myurls.Reverse("share", urls.Repl{"note": uid}),
|
||||||
"urlUnshare": myurls.Reverse("unshare", urls.Repl{"note": uid}),
|
"urlUnshare": myurls.Reverse("unshare", urls.Repl{"note": uid}),
|
||||||
"urlSetTags": myurls.Reverse("setTags", urls.Repl{"note": uid}),
|
|
||||||
"viewers": viewers,
|
"viewers": viewers,
|
||||||
"tags": strings.Join(note.Tags, " "),
|
|
||||||
"isOwner": user == note.Owner,
|
"isOwner": user == note.Owner,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -203,8 +199,6 @@ type titleAndURL struct {
|
||||||
func list(w http.ResponseWriter, r *http.Request) {
|
func list(w http.ResponseWriter, r *http.Request) {
|
||||||
user := r.Context().Value(middleware.ContextKey("user")).(string)
|
user := r.Context().Value(middleware.ContextKey("user")).(string)
|
||||||
|
|
||||||
tag := r.FormValue("tag")
|
|
||||||
|
|
||||||
titlesAndUrls := make([]titleAndURL, 0)
|
titlesAndUrls := make([]titleAndURL, 0)
|
||||||
|
|
||||||
ns := notes.Notes.Get(user)
|
ns := notes.Notes.Get(user)
|
||||||
|
|
@ -212,13 +206,11 @@ func list(w http.ResponseWriter, r *http.Request) {
|
||||||
log.Printf("Notes for %s: %+v", user, ns)
|
log.Printf("Notes for %s: %+v", user, ns)
|
||||||
|
|
||||||
for note := range ns {
|
for note := range ns {
|
||||||
if tag == "" || note.HasTag(tag) {
|
|
||||||
titlesAndUrls = append(
|
titlesAndUrls = append(
|
||||||
titlesAndUrls,
|
titlesAndUrls,
|
||||||
titleAndURL{Title: note.Title, URL: myurls.Reverse("view", urls.Repl{"note": note.Uid})},
|
titleAndURL{Title: note.Title, URL: myurls.Reverse("view", urls.Repl{"note": note.Uid})},
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
urlNew := myurls.Reverse("new", urls.Repl{})
|
urlNew := myurls.Reverse("new", urls.Repl{})
|
||||||
|
|
||||||
|
|
@ -229,19 +221,3 @@ func list(w http.ResponseWriter, r *http.Request) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func setTags(w http.ResponseWriter, r *http.Request) {
|
|
||||||
user := r.Context().Value(middleware.ContextKey("user")).(string)
|
|
||||||
uid := r.PathValue("note")
|
|
||||||
tags := r.FormValue("tags")
|
|
||||||
|
|
||||||
note, ok := notes.Notes.GetOne(user, uid)
|
|
||||||
if !ok || note.Owner != user {
|
|
||||||
http.Redirect(w, r, myurls.Reverse("view", urls.Repl{"note": uid}), http.StatusFound)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
note.Tags = strings.Split(tags, " ")
|
|
||||||
note.Save()
|
|
||||||
http.Redirect(w, r, myurls.Reverse("view", urls.Repl{"note": note.Uid}), http.StatusFound)
|
|
||||||
}
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue