We had Prettier pinned because of https://github.com/prettier/prettier/issues/5529. Since that bug is fixed, unpinning. Prettier now supports YAML, so this applies Prettier to all .yml except for translations, which should not be edited directly anyway.
54 lines
1.4 KiB
JavaScript
54 lines
1.4 KiB
JavaScript
import {
|
|
on,
|
|
observes,
|
|
default as computed
|
|
} from "ember-addons/ember-computed-decorators";
|
|
import { findRawTemplate } from "discourse/lib/raw-templates";
|
|
|
|
export default Ember.Component.extend({
|
|
@computed("placeholderKey")
|
|
placeholder(placeholderKey) {
|
|
return placeholderKey ? I18n.t(placeholderKey) : "";
|
|
},
|
|
|
|
@observes("groupNames")
|
|
_update() {
|
|
if (this.get("canReceiveUpdates") === "true")
|
|
this._initializeAutocomplete({ updateData: true });
|
|
},
|
|
|
|
@on("didInsertElement")
|
|
_initializeAutocomplete(opts) {
|
|
let selectedGroups;
|
|
let groupNames = this.get("groupNames");
|
|
|
|
this.$("input").autocomplete({
|
|
allowAny: false,
|
|
items: _.isArray(groupNames)
|
|
? groupNames
|
|
: Ember.isEmpty(groupNames)
|
|
? []
|
|
: [groupNames],
|
|
single: this.get("single"),
|
|
updateData: opts && opts.updateData ? opts.updateData : false,
|
|
onChangeItems: items => {
|
|
selectedGroups = items;
|
|
this.set("groupNames", items.join(","));
|
|
},
|
|
transformComplete: g => {
|
|
return g.name;
|
|
},
|
|
dataSource: term => {
|
|
return this.get("groupFinder")(term).then(groups => {
|
|
if (!selectedGroups) return groups;
|
|
|
|
return groups.filter(group => {
|
|
return !selectedGroups.any(s => s === group.name);
|
|
});
|
|
});
|
|
},
|
|
template: findRawTemplate("group-selector-autocomplete")
|
|
});
|
|
}
|
|
});
|