Files
Readarr/src/UI/Form/FormBuilder.js
Keivan Beigi 428a1439e5 rjs -> webpack
2015-02-02 17:43:14 -08:00

35 lines
1.3 KiB
JavaScript

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);
});
}).call(this);