From 5e0a66d792665338b302cbf38af2cc09d128f063 Mon Sep 17 00:00:00 2001 From: Mark McDowall Date: Tue, 25 Jun 2013 08:28:40 -0700 Subject: [PATCH] Fixed FormBuilder --- UI/Form/FormBuilder.js | 19 ++++++++++++------- UI/Settings/Indexers/Collection.js | 3 ++- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/UI/Form/FormBuilder.js b/UI/Form/FormBuilder.js index 4bc3a12f4..c0d4535ff 100644 --- a/UI/Form/FormBuilder.js +++ b/UI/Form/FormBuilder.js @@ -4,45 +4,50 @@ define( 'handlebars' ], function (Handlebars) { - var formBuilder = function (field) { + var _fieldBuilder = function (field) { if (!field.type) { - return Handlebars.helpers.partial.apply(field, + return _templateRenderer.apply(field, [ 'Form/TextboxTemplate' ]); } if (field.type === 'password') { - return Handlebars.helpers.partial.apply(field, + return _templateRenderer.apply(field, [ 'Form/PasswordTemplate' ]); } if (field.type === 'checkbox') { - return Handlebars.helpers.partial.apply(field, + return _templateRenderer.apply(field, [ 'Form/CheckboxTemplate' ]); } if (field.type === 'select') { - return Handlebars.helpers.partial.apply(field, + return _templateRenderer.apply(field, [ 'Form/SelectTemplate' ]); } - return Handlebars.helpers.partial.apply(field, + 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 += this.FieldBuilder(field); + ret += _fieldBuilder(field); }); return new Handlebars.SafeString(ret); diff --git a/UI/Settings/Indexers/Collection.js b/UI/Settings/Indexers/Collection.js index 21f459785..76a8fbe0e 100644 --- a/UI/Settings/Indexers/Collection.js +++ b/UI/Settings/Indexers/Collection.js @@ -1,7 +1,8 @@ 'use strict'; define( [ - 'Settings/Indexers/Model' + 'Settings/Indexers/Model', + 'Form/FormBuilder' ], function (IndexerModel) { return Backbone.Collection.extend({ url : window.ApiRoot + '/indexer',