package server import ( "fmt" "gitea.inhome.blapointe.com/local/notes-server/config" "gitea.inhome.blapointe.com/local/notes-server/filetree" "net/http" "path" "regexp" "strings" ) func (s *Server) notes(w http.ResponseWriter, r *http.Request) { p := filetree.NewPathFromURL(r.URL.Path) head(w, r) notesHead(w, p) defer foot(w, r) if p.IsDir() { s.dir(w, r) } else if p.IsFile() { s.file(w, r) } else { http.NotFound(w, r) } } func notesHead(w http.ResponseWriter, p filetree.Path) { fmt.Fprintln(w, h2(p.MultiLink())) htmlSearch(w) } func (s *Server) dir(w http.ResponseWriter, r *http.Request) { dirs, files, err := s.Notes.Dir(r.URL.Path) if err != nil { http.Error(w, err.Error(), http.StatusBadRequest) return } dirHead(w, filetree.NewPathFromURL(r.URL.Path).BaseHREF) block(w, dirs) block(w, files) } func dirHead(w http.ResponseWriter, baseHREF string) { htmlCreate(w, baseHREF) htmlDelete(w, baseHREF) } func (s *Server) file(w http.ResponseWriter, r *http.Request) { file, err := s.Notes.File(r.URL.Path) if err != nil { http.Error(w, err.Error(), http.StatusBadRequest) return } s.fileHead(w, r.URL.Path) fmt.Fprintln(w, file) } func (s *Server) fileHead(w http.ResponseWriter, path string) { baseHREF := filetree.NewPathFromURL(path).BaseHREF htmlEdit(w, baseHREF) htmlDelete(w, baseHREF) s.htmlAttachments(w, path) } func htmlEdit(w http.ResponseWriter, baseHREF string) { if config.ReadOnly { return } fmt.Fprintf(w, `