This repository has been archived on 2023-03-18. You can view files and clone it, but cannot push or open issues or pull requests.
osr-discourse-src/app/assets/javascripts/discourse/controllers/group-bulk-add.js.es6
2018-04-09 15:14:50 +08:00

46 lines
1.2 KiB
JavaScript

import computed from 'ember-addons/ember-computed-decorators';
import { extractError } from 'discourse/lib/ajax-error';
import ModalFunctionality from 'discourse/mixins/modal-functionality';
import { ajax } from 'discourse/lib/ajax';
export default Ember.Controller.extend(ModalFunctionality, {
loading: false,
@computed('input', 'loading', 'result')
disableAddButton(input, loading, result) {
return loading || Ember.isEmpty(input) || (input.length <= 0) || result;
},
actions: {
cancel() {
this.set('result', null);
},
add() {
this.setProperties({
loading: true,
result: null,
});
const users = this.get('input').split("\n")
.uniq()
.reject(x => x.length === 0);
ajax('/admin/groups/bulk', {
data: { users, group_id: this.get('model.id') },
method: 'PUT'
}).then(result => {
this.set('result', result);
if (result.users_not_added) {
this.set('result.invalidUsers', result.users_not_added.join(", "));
}
}).catch(error => {
this.flash(extractError(error), 'error');
}).finally(() => {
this.set('loading', false);
});
}
}
});