Skip to content

Instantly share code, notes, and snippets.

@matutter
Created May 17, 2014 02:32
Show Gist options
  • Save matutter/bdfae086a40626e07b64 to your computer and use it in GitHub Desktop.
Save matutter/bdfae086a40626e07b64 to your computer and use it in GitHub Desktop.
dynamic JSON to form creation, much to expland on
function generateTemplate(doc) {
var name = doc.name
var page = doc.page
var content = doc.content
var id = doc._id
var form = ''
form += '<generate>'
form += '<div class="page-header"><h1>' + name + '<small>' + page + '</small></h1><button class="btn btn-gen">Save</div>'
form += '<label>Post title</label><input class="form-control" type="text" name="title">'
for( var o in content ) {
var input = content[o].type
if( typeof handle[input] === 'function' ) {
form += '<label>' + o + '</label> '
form += handle[input](content[o])
}
}
form += '</generate>'
return form
}
var handle = {}
handle['list'] = function(obj) {
var li = "<label>list</label>"
for( var i=0; i<obj['rows']; i++ )
li += '<input class="form-control" type="text">'
return li
}
handle['p'] = function() {
return '<textarea rows="4" class="form-control"></textarea>'
}
handle['table'] = function(obj) {
var cols = obj['options']['cols']
var rows = obj['options']['rows']
var table = '<table class=""><tbody>'
for(var i = 0; i < rows; i++ ) {
table += '<tr>'
for(var k = 0; k < cols; k++ ) {
table += '<td> <input class="form-control"> </td>'
}
table += '</tr>'
}
table += '</tbody></table>'
return table
}
handle['img'] = function() {
return '<input class="form-control" type="text" placeholder="image name">'
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment