From 95865257a373fe61ec5d1fd1a3716b2f4c249861 Mon Sep 17 00:00:00 2001 From: Maximilian Friedersdorff Date: Wed, 5 Nov 2025 08:46:22 +0000 Subject: [PATCH] Support listing notes by tag --- internal/notes/notes.go | 9 +++++++++ internal/notes/views/views.go | 12 ++++++++---- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/internal/notes/notes.go b/internal/notes/notes.go index c542aad..a11c74f 100644 --- a/internal/notes/notes.go +++ b/internal/notes/notes.go @@ -398,3 +398,12 @@ func (n *Note) ToggleBox(nthBox int) { n.Body = buf.Bytes() n.Save() } + +func (n *Note) HasTag(tag string) bool { + for _, tag_ := range n.Tags { + if tag_ == tag { + return true + } + } + return false +} diff --git a/internal/notes/views/views.go b/internal/notes/views/views.go index 8452840..5884d18 100644 --- a/internal/notes/views/views.go +++ b/internal/notes/views/views.go @@ -199,6 +199,8 @@ type titleAndURL struct { func list(w http.ResponseWriter, r *http.Request) { user := r.Context().Value(middleware.ContextKey("user")).(string) + tag := r.FormValue("tag") + titlesAndUrls := make([]titleAndURL, 0) ns := notes.Notes.Get(user) @@ -206,10 +208,12 @@ func list(w http.ResponseWriter, r *http.Request) { log.Printf("Notes for %s: %+v", user, ns) for note := range ns { - titlesAndUrls = append( - titlesAndUrls, - titleAndURL{Title: note.Title, URL: myurls.Reverse("view", urls.Repl{"note": note.Uid})}, - ) + if tag == "" || note.HasTag(tag) { + titlesAndUrls = append( + titlesAndUrls, + titleAndURL{Title: note.Title, URL: myurls.Reverse("view", urls.Repl{"note": note.Uid})}, + ) + } } urlNew := myurls.Reverse("new", urls.Repl{})