Skip to content

Commit

Permalink
give the ability to load custom renderers
Browse files Browse the repository at this point in the history
load alpaca renderer from its own file

move alpaca renderer under forms dir
  • Loading branch information
toddjordan committed Apr 14, 2016
1 parent 622191f commit d246e98
Show file tree
Hide file tree
Showing 6 changed files with 52 additions and 6 deletions.
5 changes: 5 additions & 0 deletions .dir-locals.el
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
((nil . ((fill-column . 120)))
(js2-mode . ((js2-basic-offset . 2)))
(web-mode . ((web-mode-markup-indent-offset . 2)
(web-mode-code-indent-offset . 2)
(web-mode-css-indent-offset . 2))))
20 changes: 14 additions & 6 deletions addon/components/dynamic-form.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,17 +18,25 @@ const DynamicForm = Ember.Component.extend({

didInsertElement() {
this._super(...arguments);
this.$().alpaca(this.get('renderSchema'));
let container = getOwner(this);
let renderer;
let config = container.resolveRegistration('config:environment');
if (config.dynamicForms && config.dynamicForms.renderer) {
renderer = container.lookup(`${config.dynamicForms.renderer}:dynamic-forms.renderers`);
} else {
renderer = container.lookup('alpaca:dynamic-forms.renderers');
}
renderer.render(this.get('renderSchema'), this.$());
},

didReceiveAttrs() {
this._super(...arguments);
let schemaObj = this._initSchema(this.get('schema'));
const schemaWithData = this._processData(schemaObj);
const schemaWithPostRender = this._buildPostRender(schemaWithData);
const schemaWithActions = this._addActions(schemaWithPostRender);
const filteredSchema = this._processFilters(schemaWithActions);
const mappedSchema = this._replaceKeywordsWithFunctions(filteredSchema);
let schemaWithData = this._processData(schemaObj);
let schemaWithPostRender = this._buildPostRender(schemaWithData);
let schemaWithActions = this._addActions(schemaWithPostRender);
let filteredSchema = this._processFilters(schemaWithActions);
let mappedSchema = this._replaceKeywordsWithFunctions(filteredSchema);
this.set('renderSchema', mappedSchema);
},

Expand Down
12 changes: 12 additions & 0 deletions addon/dynamic-forms/form-factories/ember-default.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import Ember from 'ember';

const TYPE_MAP = {
text: '',
radio: ''
};

export default Ember.Object.extend({
componentFor(type) {

}
});
7 changes: 7 additions & 0 deletions addon/dynamic-forms/renderers/alpaca.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import Ember from 'ember';

export default Ember.Object.extend({
render(schema, element) {
element.alpaca(schema);
}
})
11 changes: 11 additions & 0 deletions addon/dynamic-forms/renderers/ember.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import Ember from 'ember';

export default Ember.Object.extend({
render(schema, element) {
// iterate fields in schema

// load component equivs from factory

// attach to DOM or parent component
}
});
3 changes: 3 additions & 0 deletions app/dynamic-forms/renderers/alpaca.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
import Alpaca from 'ember-cli-dynamic-forms/dynamic-forms/renderers/alpaca';

export default Alpaca;

0 comments on commit d246e98

Please sign in to comment.