2017-04-19 08:35:35 -05:00
|
|
|
///<reference path="../../headers/common.d.ts" />
|
|
|
|
|
|
|
|
import coreModule from 'app/core/core_module';
|
|
|
|
|
|
|
|
export default class UserGroupDetailsCtrl {
|
2017-04-19 16:02:57 -05:00
|
|
|
userGroup: UserGroup;
|
|
|
|
userGroupMembers: User[] = [];
|
2017-06-05 17:47:25 -05:00
|
|
|
navModel: any;
|
2017-04-19 08:35:35 -05:00
|
|
|
|
2017-09-22 01:42:07 -05:00
|
|
|
constructor(private $scope, private backendSrv, private $routeParams, navModelSrv) {
|
2017-08-17 07:59:10 -05:00
|
|
|
this.navModel = navModelSrv.getNav('cfg', 'users');
|
2017-04-19 08:35:35 -05:00
|
|
|
this.get();
|
2017-04-19 16:02:57 -05:00
|
|
|
}
|
|
|
|
|
2017-04-19 08:35:35 -05:00
|
|
|
get() {
|
|
|
|
if (this.$routeParams && this.$routeParams.id) {
|
|
|
|
this.backendSrv.get(`/api/user-groups/${this.$routeParams.id}`)
|
|
|
|
.then(result => {
|
|
|
|
this.userGroup = result;
|
|
|
|
});
|
|
|
|
this.backendSrv.get(`/api/user-groups/${this.$routeParams.id}/members`)
|
|
|
|
.then(result => {
|
|
|
|
this.userGroupMembers = result;
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2017-04-19 16:02:57 -05:00
|
|
|
removeUserGroupMember(userGroupMember: UserGroupMember) {
|
2017-04-19 08:35:35 -05:00
|
|
|
this.$scope.appEvent('confirm-modal', {
|
|
|
|
title: 'Remove Member',
|
|
|
|
text: 'Are you sure you want to remove ' + userGroupMember.name + ' from this group?',
|
|
|
|
yesText: "Remove",
|
|
|
|
icon: "fa-warning",
|
|
|
|
onConfirm: () => {
|
|
|
|
this.removeMemberConfirmed(userGroupMember);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
2017-04-19 16:02:57 -05:00
|
|
|
removeMemberConfirmed(userGroupMember: UserGroupMember) {
|
2017-04-19 08:35:35 -05:00
|
|
|
this.backendSrv.delete(`/api/user-groups/${this.$routeParams.id}/members/${userGroupMember.userId}`)
|
|
|
|
.then(this.get.bind(this));
|
|
|
|
}
|
|
|
|
|
|
|
|
update() {
|
|
|
|
if (!this.$scope.userGroupDetailsForm.$valid) { return; }
|
|
|
|
|
|
|
|
this.backendSrv.put('/api/user-groups/' + this.userGroup.id, {name: this.userGroup.name});
|
|
|
|
}
|
|
|
|
|
2017-06-23 13:55:53 -05:00
|
|
|
userPicked(user) {
|
|
|
|
this.backendSrv.post(`/api/user-groups/${this.$routeParams.id}/members`, {userId: user.id}).then(() => {
|
|
|
|
this.$scope.$broadcast('user-picker-reset');
|
2017-04-19 08:35:35 -05:00
|
|
|
this.get();
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2017-04-19 16:02:57 -05:00
|
|
|
export interface UserGroup {
|
|
|
|
id: number;
|
|
|
|
name: string;
|
|
|
|
}
|
|
|
|
|
|
|
|
export interface User {
|
|
|
|
id: number;
|
|
|
|
name: string;
|
|
|
|
login: string;
|
|
|
|
email: string;
|
|
|
|
}
|
|
|
|
|
|
|
|
export interface UserGroupMember {
|
|
|
|
userId: number;
|
|
|
|
name: string;
|
|
|
|
}
|
|
|
|
|
2017-04-19 08:35:35 -05:00
|
|
|
coreModule.controller('UserGroupDetailsCtrl', UserGroupDetailsCtrl);
|
|
|
|
|