Skip to content

Commit

Permalink
Merge pull request #36 from jelhan/overrideable-config
Browse files Browse the repository at this point in the history
make application-wide configuration (service) overrideable per field
  • Loading branch information
Emerson committed Nov 20, 2015
2 parents 9ba1fc4 + 76d99b9 commit 7030429
Show file tree
Hide file tree
Showing 10 changed files with 20 additions and 35 deletions.
6 changes: 2 additions & 4 deletions addon/components/fm-checkbox.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,8 @@ export default Ember.Component.extend({
layout: layout,
classNameBindings: ['checkboxWrapperClass', 'errorClass'],
fmConfig: Ember.inject.service('fm-config'),
checkboxWrapperClass: Ember.computed(function() {
return this.get('fmConfig.checkboxWrapperClass');
}),
errorClass: Ember.computed('errors', function() {
checkboxWrapperClass: Ember.computed.reads('fmConfig.checkboxWrapperClass'),
errorClass: Ember.computed('errors', 'fmConfig.errorClass', function() {
if(!Ember.isEmpty(this.get('errors'))) {
return this.get('fmConfig.errorClass');
}
Expand Down
15 changes: 5 additions & 10 deletions addon/components/fm-field.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@ export default Ember.Component.extend({

fmConfig: Ember.inject.service('fm-config'),

textareaClass: null,
inputClass: null,
labelClass: null,
wrapperClass: null,
inputClass: Ember.computed.reads('fmConfig.inputClass'),
labelClass: Ember.computed.reads('fmConfig.labelClass'),
textareaClass: Ember.computed.reads('fmConfig.textareaClass'),
wrapperClass: Ember.computed.reads('fmConfig.wrapperClass'),

init: function() {
if(!this.get('optionValuePath')) {
Expand All @@ -24,17 +24,12 @@ export default Ember.Component.extend({
});
this.set('dataAttributes', dataAttributes);

var classes = this.get('fmConfig').getProperties('wrapperClass', 'labelClass', 'inputClass', 'textareaClass');
this.set('wrapperClass', classes.wrapperClass);
this.set('labelClass', classes.labelClass);
this.set('inputClass', classes.inputClass);
this.set('textareaClass', classes.textareaClass);
this._super(arguments);
},
placeholder: null,
label: null,
classNameBindings: ['wrapperClass', 'errorClass'],
errorClass: Ember.computed('errors', function() {
errorClass: Ember.computed('errors', 'fmConfig.errorClass', function() {
if(!Ember.isEmpty(this.get('errors'))) {
return this.get('fmConfig.errorClass');
}
Expand Down
2 changes: 1 addition & 1 deletion addon/components/fm-form.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ export default Ember.Component.extend({
this._super();
},
classNameBindings: ['formClass'],
formClass: Ember.computed.alias('fmConfig.formClass'),
formClass: Ember.computed.reads('fmConfig.formClass'),
fmConfig: Ember.inject.service('fm-config'),
tagName: 'form',
'for': null,
Expand Down
4 changes: 1 addition & 3 deletions addon/components/fm-helptext.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,5 @@ export default Ember.Component.extend({
tagName: 'span',
classNameBindings: ['helptextClass'],
fmConfig: Ember.inject.service('fm-config'),
helptextClass: function() {
return this.get('fmConfig.helptextClass');
}
helptextClass: Ember.computed.reads('fmConfig.helptextClass')
});
10 changes: 3 additions & 7 deletions addon/components/fm-radio-group.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,11 @@ export default Ember.Component.extend({
layout: layout,
classNameBindings: ['radioGroupWrapperClass', 'errorClass'],
fmConfig: Ember.inject.service('fm-config'),
errorClass: Ember.computed('errors', function() {
errorClass: Ember.computed('errors', 'fmConfig.errorClass', function() {
if(!Ember.isEmpty(this.get('errors'))) {
return this.get('fmConfig.errorClass');
}
}),
radioGroupWrapperClass: Ember.computed(function() {
return this.get('fmConfig.radioGroupWrapperClass');
}),
labelClass: function() {
return this.get('fmConfig.labelClass');
}
radioGroupWrapperClass: Ember.computed.reads('fmConfig.radioGroupWrapperClass'),
labelClass: Ember.computed.reads('fmConfig.labelClass')
});
6 changes: 2 additions & 4 deletions addon/components/fm-radio.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,9 @@ import layout from '../templates/components/ember-form-master-2000/fm-radio';

export default Ember.Component.extend({
layout: layout,
classNameBindings: 'radioClass',
classNameBindings: ['radioClass'],
fmConfig: Ember.inject.service('fm-config'),
radioClass: Ember.computed(function() {
return this.get('fmConfig.radioClass');
}),
radioClass: Ember.computed.reads('fmConfig.radioClass'),
checked: false,
updateChecked: Ember.observer('parentView.value', function() {
this.set('checked', this.get('parentView.value') === this.get('value'));
Expand Down
4 changes: 2 additions & 2 deletions addon/components/fm-select.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ export default Ember.Component.extend({
optionLabelPath: 'label',
action: Ember.K,
fmConfig: Ember.inject.service('fm-config'),
classNameBindings: ['selectClass'],
selectClass: Ember.computed.reads('fmConfig.selectClass'),

// shadow the passed-in `selection` to avoid
// leaking changes to it via a 2-way binding
Expand All @@ -29,8 +31,6 @@ export default Ember.Component.extend({
if(this.get('value')) {
this.set('selection', this.get('value'));
}
this.get('classNames').push(this.get('fmConfig.selectClass'));

},

change: function() {
Expand Down
4 changes: 2 additions & 2 deletions addon/components/fm-submit.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ export default Ember.Component.extend({
fmConfig: Ember.inject.service('fm-config'),
init: function() {
this._super(this);
this.set('wrapperClass', this.get('fmConfig.wrapperClass'));
this.set('submitButtonClasses', this.get('fmConfig.submitButtonClasses').join(' '));
},
submitButtonClass: Ember.computed.reads('fmConfig.submitButtonClass'),
wrapperClass: Ember.computed.reads('fmConfig.wrapperClass'),
tagName: 'div'
});
2 changes: 1 addition & 1 deletion addon/services/fm-config.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import Ember from 'ember';

export default Ember.Service.extend({
submitButtonClasses: ['btn', 'btn-primary'],
submitButtonClass: 'btn btn-primary',
errorClass: 'has-error',
wrapperClass: 'form-group',
labelClass: 'control-label',
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<button
value={{value}}
disabled={{disabled}}
class='{{submitButtonClasses}}'
class='{{submitButtonClass}}'
type="submit">
{{#if value}}
{{value}}
Expand Down

0 comments on commit 7030429

Please sign in to comment.