UI Cleanup - Updated Form and Handlebars subtree.

This commit is contained in:
Taloth Saldono 2015-02-13 22:05:27 +01:00
parent fb7988edb8
commit a5fd28326e
13 changed files with 345 additions and 311 deletions

View file

@ -2,34 +2,40 @@ var Marionette = require('marionette');
var Handlebars = require('handlebars');
var _ = require('underscore');
module.exports = (function(){
var _fieldBuilder = function(field){
if(!field.type) {
return _templateRenderer.apply(field, ['Form/TextboxTemplate']);
}
if(field.type === 'password') {
return _templateRenderer.apply(field, ['Form/PasswordTemplate']);
}
if(field.type === 'checkbox') {
return _templateRenderer.apply(field, ['Form/CheckboxTemplate']);
}
if(field.type === 'select') {
return _templateRenderer.apply(field, ['Form/SelectTemplate']);
}
if(field.type === 'path') {
return _templateRenderer.apply(field, ['Form/PathTemplate']);
}
return _templateRenderer.apply(field, ['Form/TextboxTemplate']);
};
var _templateRenderer = function(templateName){
var templateFunction = Marionette.TemplateCache.get(templateName);
return new Handlebars.SafeString(templateFunction(this));
};
Handlebars.registerHelper('formBuilder', function(){
var ret = '';
_.each(this.fields, function(field){
ret += _fieldBuilder(field);
});
return new Handlebars.SafeString(ret);
var _templateRenderer = function(templateName) {
var templateFunction = Marionette.TemplateCache.get(templateName);
return new Handlebars.SafeString(templateFunction(this));
};
var _fieldBuilder = function(field) {
if (!field.type) {
return _templateRenderer.call(field, 'Form/TextboxTemplate');
}
if (field.type === 'password') {
return _templateRenderer.call(field, 'Form/PasswordTemplate');
}
if (field.type === 'checkbox') {
return _templateRenderer.call(field, 'Form/CheckboxTemplate');
}
if (field.type === 'select') {
return _templateRenderer.call(field, 'Form/SelectTemplate');
}
if (field.type === 'path') {
return _templateRenderer.call(field, 'Form/PathTemplate');
}
return _templateRenderer.call(field, 'Form/TextboxTemplate');
};
Handlebars.registerHelper('formBuilder', function() {
var ret = '';
_.each(this.fields, function(field) {
ret += _fieldBuilder(field);
});
}).call(this);
return new Handlebars.SafeString(ret);
});