parent
21f671517b
commit
ff8a77beea
|
|
@ -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)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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("/"))
|
||||
|
|
|
|||
|
|
@ -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
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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",
|
||||
|
|
|
|||
Loading…
Reference in New Issue