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
}