diff options
author | Steve Manuel <nilslice@gmail.com> | 2016-09-19 02:09:29 -0700 |
---|---|---|
committer | Steve Manuel <nilslice@gmail.com> | 2016-09-19 02:09:29 -0700 |
commit | 2ed153f8d287b3ffb5e8d1667ab51c922d82c504 (patch) | |
tree | 8bde4e8865e5502ff72487252bcd5fcc09cd89c2 /management/manager | |
parent | d62f31d1932125db59c4cf813c54d95a4a0200ee (diff) |
reorganizing files and dir structure. adding initial (incomplete) management, types, system and db functionality.
Diffstat (limited to 'management/manager')
-rw-r--r-- | management/manager/manager.go | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/management/manager/manager.go b/management/manager/manager.go new file mode 100644 index 0000000..83ed63a --- /dev/null +++ b/management/manager/manager.go @@ -0,0 +1,46 @@ +package manager + +import ( + "bytes" + "fmt" + "html/template" + "reflect" + + "github.com/nilslice/cms/management/editor" +) + +var html = ` +<div class="manager"> + <form method="post" action="/admin/edit?type={{.Kind}}&contentId={{.ID}}"> + {{.Editor}} + <input type="submit" value="Save"/> + </form> +</div> +` + +type form struct { + ID int + Kind string + Editor template.HTML +} + +// Manage ... +func Manage(e editor.Editable) ([]byte, error) { + v, err := e.MarshalEditor() + if err != nil { + return nil, fmt.Errorf("Couldn't marshal editor for content %T. %s", e, err.Error()) + } + + f := form{ + ID: e.ContentID(), + Kind: reflect.TypeOf(e).Name(), + Editor: template.HTML(v), + } + + // execute html template into buffer for func return val + buf := &bytes.Buffer{} + tmpl := template.Must(template.New("manager").Parse(html)) + tmpl.Execute(buf, f) + + return buf.Bytes(), nil +} |