redir to /ui/files for about page, fix root+ button

master v0.2.0
Bel LaPointe 2022-02-17 12:42:35 -07:00
parent 21f671517b
commit ff8a77beea
5 changed files with 30 additions and 22 deletions

View File

@ -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)
}

View File

@ -2,7 +2,7 @@
<!DOCTYPE html>
<html>
<header>
<title>{{ .This.Title }}</title>
<title>id={{ .This.ID }}, {{ .This.Title }}</title>
{{ template "_import" }}
</header>
<body class="fullscreen tb_fullscreen lr_fullscreen" style="position: absolute">
@ -11,10 +11,14 @@
<div class="columns thic_flex tb_buffer" style="height: calc(100% - 4rem);">
{{ template "_filetree" . }}
<div class="thic_flex lr_fullscreen" style="margin-left: 1em; width: 5px;">
{{ if .This.ReadOnly }}
{{ template "_readonly" . }}
{{ if eq .This.ID "" }}
{{ template "_about" . }}
{{ else }}
{{ template "_editor" . }}
{{ if .This.ReadOnly }}
{{ template "_readonly" . }}
{{ else }}
{{ template "_editor" . }}
{{ end }}
{{ end }}
</div>
</div>

View File

@ -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("/"))

View File

@ -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
}

View File

@ -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",