summaryrefslogtreecommitdiff
path: root/management/editor/editor.go
diff options
context:
space:
mode:
Diffstat (limited to 'management/editor/editor.go')
-rw-r--r--management/editor/editor.go42
1 files changed, 41 insertions, 1 deletions
diff --git a/management/editor/editor.go b/management/editor/editor.go
index f49c4e3..c0f2e49 100644
--- a/management/editor/editor.go
+++ b/management/editor/editor.go
@@ -2,7 +2,9 @@
// structs so that admins can manage content
package editor
-import "bytes"
+import (
+ "bytes"
+)
// Editable ensures data is editable
type Editable interface {
@@ -31,14 +33,52 @@ func Form(post Editable, fields ...Field) ([]byte, error) {
editor := post.Editor()
editor.ViewBuf = &bytes.Buffer{}
+ editor.ViewBuf.Write([]byte(`<table><tbody class="row"><tr class="col s8"><td>`))
for _, f := range fields {
addFieldToEditorView(editor, f)
}
+ editor.ViewBuf.Write([]byte(`</td></tr>`))
+
+ // content items with Item embedded have some default fields we need to render
+ editor.ViewBuf.Write([]byte(`<tr class="col s4"><td>`))
+ addPostDefaultFieldsToEditorView(post, editor)
+
+ submit := `
+<div class="input-field">
+ <input class="right waves-effect waves-light btn green" type="submit" value="Save"/>
+</div>
+`
+ editor.ViewBuf.Write([]byte(submit + `</td></tr></tbody></table>`))
+
return editor.ViewBuf.Bytes(), nil
}
func addFieldToEditorView(e *Editor, f Field) {
e.ViewBuf.Write(f.View)
}
+
+func addPostDefaultFieldsToEditorView(p Editable, e *Editor) {
+ defaults := []Field{
+ Field{
+ View: Input("Timestamp", p, map[string]string{
+ "label": "Publish Date",
+ "type": "date",
+ }),
+ },
+ Field{
+ View: Input("Slug", p, map[string]string{
+ "label": "URL Slug",
+ "type": "text",
+ "disabled": "true",
+ "placeholder": "Will be set automatically",
+ }),
+ },
+ }
+
+ for _, f := range defaults {
+ addFieldToEditorView(e, f)
+ }
+
+}