grafana/public/app/features/org/team_details_ctrl.ts

90 lines
1.9 KiB
TypeScript
Raw Normal View History

import coreModule from "app/core/core_module";
2017-04-19 08:35:35 -05:00
2017-12-08 09:25:45 -06:00
export default class TeamDetailsCtrl {
team: Team;
teamMembers: User[] = [];
navModel: any;
2017-04-19 08:35:35 -05:00
2017-12-15 09:24:23 -06:00
/** @ngInject **/
constructor(
private $scope,
private backendSrv,
private $routeParams,
navModelSrv
) {
this.navModel = navModelSrv.getNav("cfg", "teams", 0);
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/teams/${this.$routeParams.id}`).then(result => {
this.team = result;
});
this.backendSrv
.get(`/api/teams/${this.$routeParams.id}/members`)
2017-04-19 08:35:35 -05:00
.then(result => {
2017-12-08 09:25:45 -06:00
this.teamMembers = result;
2017-04-19 08:35:35 -05:00
});
}
}
2017-12-08 09:25:45 -06:00
removeTeamMember(teamMember: TeamMember) {
this.$scope.appEvent("confirm-modal", {
title: "Remove Member",
text:
"Are you sure you want to remove " +
teamMember.login +
" from this group?",
2017-04-19 08:35:35 -05:00
yesText: "Remove",
icon: "fa-warning",
onConfirm: () => {
2017-12-08 09:25:45 -06:00
this.removeMemberConfirmed(teamMember);
2017-04-19 08:35:35 -05:00
}
});
}
2017-12-08 09:25:45 -06:00
removeMemberConfirmed(teamMember: TeamMember) {
this.backendSrv
.delete(`/api/teams/${this.$routeParams.id}/members/${teamMember.userId}`)
2017-04-19 08:35:35 -05:00
.then(this.get.bind(this));
}
update() {
if (!this.$scope.teamDetailsForm.$valid) {
return;
}
2017-04-19 08:35:35 -05:00
this.backendSrv.put("/api/teams/" + this.team.id, { name: this.team.name });
2017-04-19 08:35:35 -05:00
}
userPicked(user) {
this.backendSrv
.post(`/api/teams/${this.$routeParams.id}/members`, { userId: user.id })
.then(() => {
this.$scope.$broadcast("user-picker-reset");
this.get();
});
2017-04-19 08:35:35 -05:00
}
}
2017-12-08 09:25:45 -06:00
export interface Team {
2017-04-19 16:02:57 -05:00
id: number;
name: string;
}
export interface User {
id: number;
name: string;
login: string;
email: string;
}
2017-12-08 09:25:45 -06:00
export interface TeamMember {
2017-04-19 16:02:57 -05:00
userId: number;
name: string;
2017-12-13 11:20:49 -06:00
login: string;
2017-04-19 16:02:57 -05:00
}
coreModule.controller("TeamDetailsCtrl", TeamDetailsCtrl);