52 lines
1.4 KiB
JavaScript
52 lines
1.4 KiB
JavaScript
import ngModule from '../../module';
|
|
import Section from 'salix/components/section';
|
|
|
|
export default class Controller extends Section {
|
|
$onInit() {
|
|
this.refresh();
|
|
}
|
|
|
|
get path() {
|
|
return `RoleInherits`;
|
|
}
|
|
|
|
refresh() {
|
|
let filter = {
|
|
where: {role: this.$params.id},
|
|
include: {
|
|
relation: 'inherits',
|
|
scope: {
|
|
fields: ['id', 'name', 'description']
|
|
}
|
|
}
|
|
};
|
|
this.$http.get(this.path, {filter})
|
|
.then(res => this.$.data = res.data);
|
|
}
|
|
|
|
onAddClick() {
|
|
this.addData = {role: this.$params.id};
|
|
this.$.dialog.show();
|
|
}
|
|
|
|
onAddSave() {
|
|
return this.$http.post(this.path, this.addData)
|
|
.then(() => this.refresh())
|
|
.then(() => this.vnApp.showSuccess(this.$t('Role added! Changes will take a while to fully propagate.')));
|
|
}
|
|
|
|
onRemove(row) {
|
|
return this.$http.delete(`${this.path}/${row.id}`)
|
|
.then(() => {
|
|
let index = this.$.data.indexOf(row);
|
|
if (index !== -1) this.$.data.splice(index, 1);
|
|
this.vnApp.showSuccess(this.$t('Role removed. Changes will take a while to fully propagate.'));
|
|
});
|
|
}
|
|
}
|
|
|
|
ngModule.component('vnRoleSubroles', {
|
|
template: require('./index.html'),
|
|
controller: Controller
|
|
});
|