summaryrefslogtreecommitdiff
path: root/management/editor/editor.go
diff options
context:
space:
mode:
authorSteve Manuel <nilslice@gmail.com>2016-10-02 01:46:05 -0700
committerSteve Manuel <nilslice@gmail.com>2016-10-02 01:46:05 -0700
commit37d3f13e071cfdb5e063c67dec604c10dbc6ddde (patch)
treec9f2d885dd1c1c38ef6f9c07b24c58a4ff73d6a2 /management/editor/editor.go
parent0ae265fd9c8496e107b8794bcf583885b20dd37c (diff)
refactor editor view buffer to include the Item default fields.. may wantto reconsider this later as the two packages are now very closely tied. also added UI structural changes
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)
+ }
+
+}