mirror of
https://github.com/TryGhost/Ghost.git
synced 2024-12-21 09:52:06 +03:00
343b2ccbca
no issue - update grunt-jscs dependency - fix deprecated `validateJSDoc` configuration - fix numerous linting errors, including: - use of future-reserved `public` and `private` variable names - use of `[]` instead of dot-notation (especially `express['static']` and `cacheRules['x']`) - extra spaces in `const { run } = Ember` style constructs One issue that did become apparent is that there are conflicting rules that prevent the use of object function shorthand such that both of these: ``` { myFunc() {} } { myFunc () {} } ``` are called out due to either the missing or the extra space before the `(`
65 lines
2.1 KiB
JavaScript
65 lines
2.1 KiB
JavaScript
import Ember from 'ember';
|
|
import EmberSelectizeComponent from 'ember-cli-selectize/components/ember-selectize';
|
|
|
|
export default EmberSelectizeComponent.extend({
|
|
|
|
_dontOpenWhenBlank: Ember.on('didInsertElement', function () {
|
|
var openOnFocus = this.get('openOnFocus');
|
|
|
|
if (!openOnFocus) {
|
|
Ember.run.next(this, function () {
|
|
var selectize = this._selectize;
|
|
selectize.on('dropdown_open', function () {
|
|
if (Ember.isBlank(selectize.$control_input.val())) {
|
|
selectize.close();
|
|
}
|
|
});
|
|
selectize.on('type', function (filter) {
|
|
if (Ember.isBlank(filter)) {
|
|
selectize.close();
|
|
}
|
|
});
|
|
});
|
|
}
|
|
}),
|
|
|
|
/**
|
|
* Event callback that is triggered when user creates a tag
|
|
* - modified to pass the caret position to the action
|
|
*/
|
|
_create: function (input, callback) {
|
|
var caret = this._selectize.caretPos;
|
|
|
|
// Delete user entered text
|
|
this._selectize.setTextboxValue('');
|
|
// Send create action
|
|
|
|
// allow the observers and computed properties to run first
|
|
Ember.run.schedule('actions', this, function () {
|
|
this.sendAction('create-item', input, caret);
|
|
});
|
|
// We cancel the creation here, so it's up to you to include the created element
|
|
// in the content and selection property
|
|
callback(null);
|
|
},
|
|
|
|
_addSelection: function (obj) {
|
|
var _valuePath = this.get('_valuePath'),
|
|
val = Ember.get(obj, _valuePath),
|
|
caret = this._selectize.caretPos;
|
|
|
|
// caret position is always 1 more than the desired index as this method
|
|
// is called after selectize has inserted the item and the caret has moved
|
|
// to the right
|
|
caret = caret - 1;
|
|
|
|
this.get('selection').insertAt(caret, obj);
|
|
|
|
Ember.run.schedule('actions', this, function () {
|
|
this.sendAction('add-item', obj);
|
|
this.sendAction('add-value', val);
|
|
});
|
|
}
|
|
|
|
});
|