{{ define "blocks" }} {{ if .Fields }} <div class="group"> {{ end }} {{ range $key, $value := .Fields }} {{ if eq $value.Parent.Type "array" }} <div id="{{ $value.Name }}-{{ $key }}" data-type="array-item"> {{ template "value" $value }} <div class="action delete" data-delete="{{ $value.Name }}-{{ $key }}"> <i class="material-icons" title="Close">close</i> </div> </div> {{ else }} <div class="block" id="block-{{ $value.Name }}" data-content="{{ $value.Name }}"> <label for="{{ $value.Name }}">{{ $value.Title }}</label> {{ template "value" $value }} <div class="action delete" data-delete="block-{{ $value.Name }}"> <i class="material-icons" title="Close">close</i> </div> </div> {{ end }} {{ end }} {{ if .Fields }} </div> {{ end }} {{ range $key, $value := .Arrays }} {{ template "fielset" $value }} {{ end }} {{ range $key, $value := .Objects }} {{ template "fielset" $value }} {{ end }} {{ end }} {{ define "value" }} {{ if eq .HTMLType "textarea" }} <textarea class="scroll" name="{{ .Name }}" id="{{.Name }}" data-parent-type="{{ .Parent.Type }}">{{ .Content.Other }}</textarea> {{ else if eq .HTMLType "datetime" }} <input name="{{ .Name }}" id="{{ .Name }}" value="{{ .Content.Other.Format "2006-01-02T15:04" }}" type="datetime-local" data-parent-type="{{ .Parent.Type }}"></input> {{ else }} <input name="{{ .Name }}" id="{{ .Name }}" value="{{ .Content.Other }}" type="{{ .HTMLType }}" data-parent-type="{{ .Parent.Type }}"></input> {{ end }} {{ end }} {{ define "fielset" }} <fieldset id="{{ .Name }}" data-type="{{ .Type }}"> {{ if not (eq .Title "") }} <h3>{{ .Title }}</h3> {{ end }} <div class="action add"> <i class="material-icons" title="Add">add</i> </div> <div class="action delete" data-delete="{{ .Name }}"> <i class="material-icons" title="Close">close</i> </div> {{ template "blocks" .Content }} </fieldset> {{ end }}