diff --git a/internal/notes/views/views.go b/internal/notes/views/views.go index 7302dc2..c76c731 100644 --- a/internal/notes/views/views.go +++ b/internal/notes/views/views.go @@ -37,7 +37,7 @@ func view(w http.ResponseWriter, r *http.Request) { return } - context := map[string]any{"note": note, "urlEdit": urlEdit} + context := templ.Ctx{"note": note, "urlEdit": urlEdit} note.Render() err = templ.RenderTemplate(w, "view.tmpl.html", context) if err != nil { @@ -55,7 +55,7 @@ func edit(w http.ResponseWriter, r *http.Request) { } urlSave := myurls.Reverse("save", urls.Repl{"note": title}) - context := map[string]any{"note": note, "urlSave": urlSave} + context := templ.Ctx{"note": note, "urlSave": urlSave} err = templ.RenderTemplate(w, "edit.tmpl.html", context) if err != nil { log.Print(err.Error()) @@ -89,7 +89,7 @@ func list(w http.ResponseWriter, r *http.Request) { } } - err = templ.RenderTemplate(w, "list.tmpl.html", map[string]any{"titles": titles}) + err = templ.RenderTemplate(w, "list.tmpl.html", templ.Ctx{"titles": titles}) if err != nil { log.Print(err.Error()) http.Error(w, "Internal Server Error", http.StatusInternalServerError) diff --git a/internal/templ/templ.go b/internal/templ/templ.go index 0446a13..0b9aa0d 100644 --- a/internal/templ/templ.go +++ b/internal/templ/templ.go @@ -3,16 +3,26 @@ package templ import ( "html/template" "net/http" + "os" "path/filepath" "gitea.gwairfelin.com/max/gonotes/internal/conf" ) +type Ctx map[string]any + func RenderTemplate(w http.ResponseWriter, tmpl string, context any) error { files := []string{ filepath.Join(conf.Conf.TemplatesDir, conf.Conf.BaseTemplate), filepath.Join(conf.Conf.TemplatesDir, tmpl), } + + for _, f := range files { + _, err := os.Stat(f) + if err != nil { + return err + } + } t, err := template.ParseFiles(files...) t.ExecuteTemplate(w, "base", context) return err