diff options
| author | Mitchell Riedstra <mitch@riedstra.dev> | 2022-09-17 11:41:20 -0400 |
|---|---|---|
| committer | Mitchell Riedstra <mitch@riedstra.dev> | 2022-09-17 11:41:20 -0400 |
| commit | ccc26c3a0bb65ae2613e222c3ead7f6db377b483 (patch) | |
| tree | 6124ae75f557fffe863134b967ee7c6bfcc87d3d /cmd/server/edit.go | |
| parent | bf7d9c79cae53f64fcd04527248987bd4e7ca3c4 (diff) | |
| download | go-website-0.0.18.tar.gz go-website-0.0.18.tar.xz | |
More work on the editor and update the example site to utilize it.v0.0.18
Diffstat (limited to 'cmd/server/edit.go')
| -rw-r--r-- | cmd/server/edit.go | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/cmd/server/edit.go b/cmd/server/edit.go index 730e6e9..eb0c4cc 100644 --- a/cmd/server/edit.go +++ b/cmd/server/edit.go @@ -8,6 +8,7 @@ import ( "net/http" "os" "path/filepath" + "strings" "riedstra.dev/mitch/go-website/page" ) @@ -17,6 +18,7 @@ func (a *App) EditPage(w http.ResponseWriter, r *http.Request) { page.Render(w, r, page.TemplateDirectory+"/4xx", map[string]interface{}{ "Title": "Method Not allowed", "Description": "Method not allowed", + "LoggedIn": a.IsLoggedIn(r), }, http.StatusMethodNotAllowed) return @@ -27,12 +29,18 @@ func (a *App) EditPage(w http.ResponseWriter, r *http.Request) { p = filepath.Clean(p) fh, err := os.Open("./" + p + page.Suffix) + if err != nil && strings.Contains(err.Error(), "no such file or directory") { + fh, err = os.Open("./" + page.TemplateDirectory + + "/new-template" + page.Suffix) + } + if err != nil { log.Printf("opening page: %s", err) a.Err500Default(w, r) return } + defer fh.Close() b, err := io.ReadAll(fh) if err != nil { @@ -43,8 +51,9 @@ func (a *App) EditPage(w http.ResponseWriter, r *http.Request) { } page.Render(w, r, page.TemplateDirectory+"/edit", map[string]interface{}{ - "Page": p, - "Content": html.EscapeString(string(b)), + "Page": p, + "Content": html.EscapeString(string(b)), + "LoggedIn": a.IsLoggedIn(r), }, http.StatusOK) } @@ -70,6 +79,7 @@ func (a *App) SaveEditPage(w http.ResponseWriter, r *http.Request) { return } + defer fh.Close() c := bytes.ReplaceAll([]byte(content), []byte{'\r'}, []byte{}) |
