WIP more types
This commit is contained in:
parent
34119d5642
commit
9921b1f91e
|
@ -32,6 +32,9 @@ func App(db infra.Database) *web.WebApp {
|
||||||
registry := app.NewEntryTypeRegistry()
|
registry := app.NewEntryTypeRegistry()
|
||||||
registry.Register(&model.Image{})
|
registry.Register(&model.Image{})
|
||||||
registry.Register(&model.Article{})
|
registry.Register(&model.Article{})
|
||||||
|
registry.Register(&model.Page{})
|
||||||
|
registry.Register(&model.Recipe{})
|
||||||
|
registry.Register(&model.Note{})
|
||||||
|
|
||||||
entryRepo := infra.NewEntryRepository(db, registry)
|
entryRepo := infra.NewEntryRepository(db, registry)
|
||||||
binRepo := infra.NewBinaryFileRepo(db)
|
binRepo := infra.NewBinaryFileRepo(db)
|
||||||
|
|
|
@ -0,0 +1,26 @@
|
||||||
|
package model
|
||||||
|
|
||||||
|
type Note struct {
|
||||||
|
EntryBase
|
||||||
|
meta NoteMetaData
|
||||||
|
}
|
||||||
|
|
||||||
|
type NoteMetaData struct {
|
||||||
|
Content string `owl:"inputType=text widget=textarea"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (e *Note) Title() string {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
func (e *Note) Content() EntryContent {
|
||||||
|
return EntryContent(e.meta.Content)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (e *Note) MetaData() interface{} {
|
||||||
|
return &e.meta
|
||||||
|
}
|
||||||
|
|
||||||
|
func (e *Note) SetMetaData(metaData interface{}) {
|
||||||
|
e.meta = *metaData.(*NoteMetaData)
|
||||||
|
}
|
|
@ -0,0 +1,36 @@
|
||||||
|
package model
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"owl-blogs/render"
|
||||||
|
)
|
||||||
|
|
||||||
|
type Page struct {
|
||||||
|
EntryBase
|
||||||
|
meta PageMetaData
|
||||||
|
}
|
||||||
|
|
||||||
|
type PageMetaData struct {
|
||||||
|
Title string `owl:"inputType=text"`
|
||||||
|
Content string `owl:"inputType=text widget=textarea"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (e *Page) Title() string {
|
||||||
|
return e.meta.Title
|
||||||
|
}
|
||||||
|
|
||||||
|
func (e *Page) Content() EntryContent {
|
||||||
|
str, err := render.RenderTemplateToString("entry/Page", e)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println(err)
|
||||||
|
}
|
||||||
|
return EntryContent(str)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (e *Page) MetaData() interface{} {
|
||||||
|
return &e.meta
|
||||||
|
}
|
||||||
|
|
||||||
|
func (e *Page) SetMetaData(metaData interface{}) {
|
||||||
|
e.meta = *metaData.(*PageMetaData)
|
||||||
|
}
|
|
@ -0,0 +1,39 @@
|
||||||
|
package model
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"owl-blogs/render"
|
||||||
|
)
|
||||||
|
|
||||||
|
type Recipe struct {
|
||||||
|
EntryBase
|
||||||
|
meta RecipeMetaData
|
||||||
|
}
|
||||||
|
|
||||||
|
type RecipeMetaData struct {
|
||||||
|
Title string `owl:"inputType=text"`
|
||||||
|
Yield string `owl:"inputType=text"`
|
||||||
|
Duration string `owl:"inputType=text"`
|
||||||
|
Ingredients []string `owl:"inputType=text widget=textarea"`
|
||||||
|
Content string `owl:"inputType=text widget=textarea"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (e *Recipe) Title() string {
|
||||||
|
return e.meta.Title
|
||||||
|
}
|
||||||
|
|
||||||
|
func (e *Recipe) Content() EntryContent {
|
||||||
|
str, err := render.RenderTemplateToString("entry/Recipe", e)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println(err)
|
||||||
|
}
|
||||||
|
return EntryContent(str)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (e *Recipe) MetaData() interface{} {
|
||||||
|
return &e.meta
|
||||||
|
}
|
||||||
|
|
||||||
|
func (e *Recipe) SetMetaData(metaData interface{}) {
|
||||||
|
e.meta = *metaData.(*RecipeMetaData)
|
||||||
|
}
|
|
@ -0,0 +1 @@
|
||||||
|
{{.MetaData.Content}}
|
Loading…
Reference in New Issue