diff options
author | Steve Manuel <nilslice@gmail.com> | 2016-10-02 01:46:05 -0700 |
---|---|---|
committer | Steve Manuel <nilslice@gmail.com> | 2016-10-02 01:46:05 -0700 |
commit | 37d3f13e071cfdb5e063c67dec604c10dbc6ddde (patch) | |
tree | c9f2d885dd1c1c38ef6f9c07b24c58a4ff73d6a2 /management/editor/editor.go | |
parent | 0ae265fd9c8496e107b8794bcf583885b20dd37c (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.go | 42 |
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) + } + +} |