From ff8a77beea8462d810994853cadef98896159256 Mon Sep 17 00:00:00 2001 From: Bel LaPointe Date: Thu, 17 Feb 2022 12:42:35 -0700 Subject: [PATCH] redir to /ui/files for about page, fix root+ button --- server/id.go | 6 +++++- server/public/ui/files.ctmpl | 12 +++++++---- server/public/ui/templates/_filetree.ctmpl | 2 +- server/server.go | 24 +++++++++++----------- server/server_test.go | 8 ++++---- 5 files changed, 30 insertions(+), 22 deletions(-) diff --git a/server/id.go b/server/id.go index 2a5861f..21a3e99 100644 --- a/server/id.go +++ b/server/id.go @@ -47,5 +47,9 @@ func (id ID) withClean() ID { splits[i] = t } } - return ID(path.Join(splits...)) + clean := path.Join(splits...) + if clean == "" || clean == "." { + clean = "" + } + return ID(clean) } diff --git a/server/public/ui/files.ctmpl b/server/public/ui/files.ctmpl index 0964c4f..f632dfc 100644 --- a/server/public/ui/files.ctmpl +++ b/server/public/ui/files.ctmpl @@ -2,7 +2,7 @@
- {{ .This.Title }} + id={{ .This.ID }}, {{ .This.Title }} {{ template "_import" }}
@@ -11,10 +11,14 @@
{{ template "_filetree" . }}
- {{ if .This.ReadOnly }} - {{ template "_readonly" . }} + {{ if eq .This.ID "" }} + {{ template "_about" . }} {{ else }} - {{ template "_editor" . }} + {{ if .This.ReadOnly }} + {{ template "_readonly" . }} + {{ else }} + {{ template "_editor" . }} + {{ end }} {{ end }}
diff --git a/server/public/ui/templates/_filetree.ctmpl b/server/public/ui/templates/_filetree.ctmpl index 0e796ed..9ff3fb9 100644 --- a/server/public/ui/templates/_filetree.ctmpl +++ b/server/public/ui/templates/_filetree.ctmpl @@ -43,7 +43,7 @@ ` } function leafHTML(id, branch) { - const href="/ui/files/" + (id ? id : "#") + const href="/ui/files/" + (id ? id : "") var nameSafeId = id.replace(/\//g, "-") var parentNameSafeId = nameSafeId if (id.includes("/")) diff --git a/server/server.go b/server/server.go index 2e49759..08316bc 100644 --- a/server/server.go +++ b/server/server.go @@ -242,9 +242,6 @@ func (server *Server) uiSearchHandler(w http.ResponseWriter, r *http.Request) er func (server *Server) uiFilesHandler(w http.ResponseWriter, r *http.Request) error { id := NewID(strings.TrimPrefix(r.URL.Path, "/ui/files")) - if id == "" { - return server.rootHandler(w, r) - } t, err := server.uiSubTemplates() if err != nil { return err @@ -263,15 +260,18 @@ func (server *Server) uiFilesHandler(w http.ResponseWriter, r *http.Request) err return err } var parent Leaf - if id.Pop() != "" { - parent, err = tree.Get(id.Pop()) - if err != nil { - return fmt.Errorf("failed to get pid %q: %v", id.Pop(), err) + var leaf Leaf + if id != "" { + if id.Pop() != "" { + parent, err = tree.Get(id.Pop()) + if err != nil { + return fmt.Errorf("failed to get pid %q: %v", id.Pop(), err) + } + } + leaf, err = tree.Get(id) + if err != nil { + leaf.Meta.Title = "My New File" } - } - leaf, err := tree.Get(id) - if err != nil { - leaf.Meta.Title = "My New File" } if leaf.Meta.ReadOnly { if _, ok := r.URL.Query()["edit"]; !ok { @@ -322,7 +322,7 @@ func (server *Server) uiSubTemplates() (*template.Template, error) { } func (server *Server) rootHandler(w http.ResponseWriter, r *http.Request) error { - http.Redirect(w, r, "/ui/files/"+uuid.New().String()[:5], 302) + http.Redirect(w, r, "/ui/files", 302) return nil } diff --git a/server/server_test.go b/server/server_test.go index 8decb18..c6e300e 100644 --- a/server/server_test.go +++ b/server/server_test.go @@ -55,7 +55,7 @@ func TestServerRoutes(t *testing.T) { "v0: /: get": { path: "/", method: http.MethodGet, - want: "/ui/files/", + want: "/ui/files", }, "v0: search: get": { path: "/api/v0/search?q=getf%20bod", @@ -102,17 +102,17 @@ func TestServerRoutes(t *testing.T) { "v0: /: redir": { path: "/", method: http.MethodGet, - want: "/ui/files/", + want: "/ui/files", }, "v0: /ui/: redir": { path: "/ui/", method: http.MethodGet, - want: "/ui/files/", + want: "/ui/files", }, "v0: /ui: redir": { path: "/ui", method: http.MethodGet, - want: "/ui/files/", + want: "/ui/files", }, "v0: /ui/search": { path: "/ui/search",