aboutsummaryrefslogtreecommitdiff
path: root/cmd/server/edit.go
diff options
context:
space:
mode:
authorMitchell Riedstra <mitch@riedstra.dev>2022-09-17 11:41:20 -0400
committerMitchell Riedstra <mitch@riedstra.dev>2022-09-17 11:41:20 -0400
commitccc26c3a0bb65ae2613e222c3ead7f6db377b483 (patch)
tree6124ae75f557fffe863134b967ee7c6bfcc87d3d /cmd/server/edit.go
parentbf7d9c79cae53f64fcd04527248987bd4e7ca3c4 (diff)
downloadgo-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.go14
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{})