summaryrefslogtreecommitdiff
path: root/management/manager
diff options
context:
space:
mode:
authorSteve Manuel <nilslice@gmail.com>2016-09-19 02:09:29 -0700
committerSteve Manuel <nilslice@gmail.com>2016-09-19 02:09:29 -0700
commit2ed153f8d287b3ffb5e8d1667ab51c922d82c504 (patch)
tree8bde4e8865e5502ff72487252bcd5fcc09cd89c2 /management/manager
parentd62f31d1932125db59c4cf813c54d95a4a0200ee (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.go46
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
+}