mirror of
https://github.com/codeninjasllc/discourse.git
synced 2024-11-28 10:08:20 -05:00
39 lines
1.2 KiB
Text
39 lines
1.2 KiB
Text
|
export default Ember.Component.extend({
|
||
|
tagName: 'div',
|
||
|
|
||
|
didInsertElement: function(){
|
||
|
this.$("input").select2({
|
||
|
multiple: true,
|
||
|
width: '100%',
|
||
|
query: function(opts){
|
||
|
opts.callback({
|
||
|
results: this.get("available").map(this._format)
|
||
|
});
|
||
|
}.bind(this)
|
||
|
}).on("change", function(evt) {
|
||
|
if (evt.added){
|
||
|
this.triggerAction({action: "groupAdded",
|
||
|
actionContext: this.get("available"
|
||
|
).findBy("id", evt.added.id)});
|
||
|
} else if (evt.removed) {
|
||
|
this.triggerAction({action:"groupRemoved",
|
||
|
actionContext: this.get("selected"
|
||
|
).findBy("id", evt.removed.id)});
|
||
|
}
|
||
|
}.bind(this));
|
||
|
|
||
|
Discourse.Group.findAll().then(function(groups){
|
||
|
this.set("available", groups.filterBy("automatic", false));
|
||
|
}.bind(this));
|
||
|
|
||
|
this.refreshOnReset();
|
||
|
},
|
||
|
|
||
|
_format: function(item){
|
||
|
return {"text": item.name, "id": item.id, "locked": item.automatic};
|
||
|
},
|
||
|
|
||
|
refreshOnReset: function() {
|
||
|
this.$("input").select2("data", this.get("selected").map(this._format));
|
||
|
}.observes("selected")
|
||
|
});
|