2017-12-19 09:06:54 -06:00
|
|
|
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[] = [];
|
2017-06-05 17:47:25 -05:00
|
|
|
navModel: any;
|
2017-04-19 08:35:35 -05:00
|
|
|
|
2017-12-15 09:24:23 -06:00
|
|
|
/** @ngInject **/
|
2017-12-19 09:06:54 -06:00
|
|
|
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) {
|
2017-12-19 09:06:54 -06:00
|
|
|
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) {
|
2017-12-19 09:06:54 -06:00
|
|
|
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) {
|
2017-12-19 09:06:54 -06:00
|
|
|
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() {
|
2017-12-19 09:06:54 -06:00
|
|
|
if (!this.$scope.teamDetailsForm.$valid) {
|
|
|
|
return;
|
|
|
|
}
|
2017-04-19 08:35:35 -05:00
|
|
|
|
2017-12-19 09:06:54 -06:00
|
|
|
this.backendSrv.put("/api/teams/" + this.team.id, { name: this.team.name });
|
2017-04-19 08:35:35 -05:00
|
|
|
}
|
|
|
|
|
2017-06-23 13:55:53 -05:00
|
|
|
userPicked(user) {
|
2017-12-19 09:06:54 -06:00
|
|
|
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
|
|
|
}
|
|
|
|
|
2017-12-19 09:06:54 -06:00
|
|
|
coreModule.controller("TeamDetailsCtrl", TeamDetailsCtrl);
|