diff --git a/entry_types/article.go b/entry_types/article.go index d2c57ee..15a6198 100644 --- a/entry_types/article.go +++ b/entry_types/article.go @@ -4,7 +4,6 @@ import ( "fmt" "owl-blogs/domain/model" "owl-blogs/render" - "owl-blogs/web/forms" ) type Article struct { @@ -13,11 +12,24 @@ type Article struct { } type ArticleMetaData struct { - forms.DefaultForm Title string `owl:"inputType=text"` Content string `owl:"inputType=text widget=textarea"` } +// Form implements model.EntryMetaData. +func (meta *ArticleMetaData) Form(binSvc model.BinaryStorageInterface) string { + f, _ := render.RenderTemplateToString("forms/Article", meta) + return f +} + +// ParseFormData implements model.EntryMetaData. +func (*ArticleMetaData) ParseFormData(data model.HttpFormData, binSvc model.BinaryStorageInterface) (model.EntryMetaData, error) { + return &ArticleMetaData{ + Title: data.FormValue("title"), + Content: data.FormValue("content"), + }, nil +} + func (e *Article) Title() string { return e.meta.Title } diff --git a/render/templates/forms/Article.tmpl b/render/templates/forms/Article.tmpl new file mode 100644 index 0000000..65aaedd --- /dev/null +++ b/render/templates/forms/Article.tmpl @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/tmp/build-errors.log b/tmp/build-errors.log index 6c6d080..9ba0172 100644 --- a/tmp/build-errors.log +++ b/tmp/build-errors.log @@ -1 +1 @@ -exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1 \ No newline at end of file +exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1 \ No newline at end of file diff --git a/web/editor_handler.go b/web/editor_handler.go index 86e1be8..710ae85 100644 --- a/web/editor_handler.go +++ b/web/editor_handler.go @@ -5,7 +5,6 @@ import ( "owl-blogs/app/repository" "owl-blogs/domain/model" "owl-blogs/render" - "owl-blogs/web/forms" "time" "github.com/gofiber/fiber/v2" @@ -48,12 +47,7 @@ func (h *EditorHandler) HandleGetNew(c *fiber.Ctx) error { if err != nil { return err } - - form := forms.NewForm(entryType.MetaData(), h.binSvc) - htmlForm, err := form.HtmlForm() - if err != nil { - return err - } + htmlForm := entryType.MetaData().Form(h.binSvc) return render.RenderTemplateWithBase(c, getSiteConfig(h.configRepo), "views/editor", htmlForm) } @@ -65,9 +59,7 @@ func (h *EditorHandler) HandlePostNew(c *fiber.Ctx) error { return err } - form := forms.NewForm(entry.MetaData(), h.binSvc) - // get form data - entryMeta, err := form.Parse(c) + entryMeta, err := entry.MetaData().ParseFormData(c, h.binSvc) if err != nil { return err } @@ -100,11 +92,7 @@ func (h *EditorHandler) HandleGetEdit(c *fiber.Ctx) error { return err } - form := forms.NewForm(entry.MetaData(), h.binSvc) - htmlForm, err := form.HtmlForm() - if err != nil { - return err - } + htmlForm := entry.MetaData().Form(h.binSvc) return render.RenderTemplateWithBase(c, getSiteConfig(h.configRepo), "views/editor", htmlForm) } @@ -117,9 +105,8 @@ func (h *EditorHandler) HandlePostEdit(c *fiber.Ctx) error { return err } - form := forms.NewForm(entry.MetaData(), h.binSvc) // get form data - meta, err := form.Parse(c) + meta, err := entry.MetaData().ParseFormData(c, h.binSvc) if err != nil { return err }