54 lines
1.4 KiB
JavaScript
54 lines
1.4 KiB
JavaScript
import Ember from 'ember';
|
|
import SearchableDropdown from 'flaredown/mixins/searchable-dropdown';
|
|
|
|
export default Ember.Component.extend(SearchableDropdown, {
|
|
isSelectFocused: false,
|
|
|
|
selectPlaceholder: Ember.computed('isSelectFocused', function() {
|
|
if (this.get('isSelectFocused')) {
|
|
return 'Start typing a ' + this.get('modelName');
|
|
} else {
|
|
return 'Add a ' + this.get('modelName');
|
|
}
|
|
}),
|
|
|
|
actions: {
|
|
toggleSelectFocused() {
|
|
this.toggleProperty('isSelectFocused');
|
|
},
|
|
|
|
handleFocus() {
|
|
// TODO remove debug log when this is fixed:
|
|
// https://github.com/cibernox/ember-power-select/issues/739
|
|
Ember.Logger.debug('focus');
|
|
this.set('isSelectFocused', true);
|
|
},
|
|
|
|
handleBlur() {
|
|
// TODO remove debug log when this is fixed:
|
|
// https://github.com/cibernox/ember-power-select/issues/739
|
|
Ember.Logger.debug('blur');
|
|
this.set('isSelectFocused', false);
|
|
},
|
|
|
|
createObject(name) {
|
|
this.sendAction('onBeforeAdd', name);
|
|
this.createAndSave(this.get('modelName'), name).then(obj => this.get('onSelected')(obj));
|
|
},
|
|
|
|
handleChange(obj) {
|
|
this.get('onSelected')(obj);
|
|
},
|
|
|
|
clicked(obj) {
|
|
this.get('onClicked')(obj);
|
|
},
|
|
},
|
|
|
|
performSearch(term, resolve, reject) {
|
|
this
|
|
.searchByTerm(this.get('modelName'), term)
|
|
.then(function() { resolve(...arguments); }, reject);
|
|
},
|
|
});
|