mirror of
https://github.com/grafana/grafana.git
synced 2025-02-11 16:15:42 -06:00
82 lines
1.9 KiB
TypeScript
82 lines
1.9 KiB
TypeScript
import coreModule from 'app/core/core_module';
|
|
|
|
export default class TeamDetailsCtrl {
|
|
team: Team;
|
|
teamMembers: User[] = [];
|
|
navModel: any;
|
|
|
|
/** @ngInject **/
|
|
constructor(private $scope, private backendSrv, private $routeParams, navModelSrv) {
|
|
this.navModel = navModelSrv.getNav('cfg', 'teams', 0);
|
|
this.userPicked = this.userPicked.bind(this);
|
|
this.get = this.get.bind(this);
|
|
this.get();
|
|
}
|
|
|
|
get() {
|
|
if (this.$routeParams && this.$routeParams.id) {
|
|
this.backendSrv.get(`/api/teams/${this.$routeParams.id}`).then(result => {
|
|
this.team = result;
|
|
});
|
|
this.backendSrv.get(`/api/teams/${this.$routeParams.id}/members`).then(result => {
|
|
this.teamMembers = result;
|
|
});
|
|
}
|
|
}
|
|
|
|
removeTeamMember(teamMember: TeamMember) {
|
|
this.$scope.appEvent('confirm-modal', {
|
|
title: 'Remove Member',
|
|
text: 'Are you sure you want to remove ' + teamMember.login + ' from this group?',
|
|
yesText: 'Remove',
|
|
icon: 'fa-warning',
|
|
onConfirm: () => {
|
|
this.removeMemberConfirmed(teamMember);
|
|
},
|
|
});
|
|
}
|
|
|
|
removeMemberConfirmed(teamMember: TeamMember) {
|
|
this.backendSrv.delete(`/api/teams/${this.$routeParams.id}/members/${teamMember.userId}`).then(this.get);
|
|
}
|
|
|
|
update() {
|
|
if (!this.$scope.teamDetailsForm.$valid) {
|
|
return;
|
|
}
|
|
|
|
this.backendSrv.put('/api/teams/' + this.team.id, {
|
|
name: this.team.name,
|
|
email: this.team.email,
|
|
});
|
|
}
|
|
|
|
userPicked(user) {
|
|
this.backendSrv.post(`/api/teams/${this.$routeParams.id}/members`, { userId: user.id }).then(() => {
|
|
this.$scope.$broadcast('user-picker-reset');
|
|
this.get();
|
|
});
|
|
}
|
|
}
|
|
|
|
export interface Team {
|
|
id: number;
|
|
name: string;
|
|
email: string;
|
|
}
|
|
|
|
export interface User {
|
|
id: number;
|
|
name: string;
|
|
login: string;
|
|
email: string;
|
|
}
|
|
|
|
export interface TeamMember {
|
|
userId: number;
|
|
name: string;
|
|
login: string;
|
|
}
|
|
|
|
coreModule.controller('TeamDetailsCtrl', TeamDetailsCtrl);
|