task_tracker/web/angular/src/app/project-perms/project-perms.component.ts
2019-02-16 19:54:23 -05:00

71 lines
2.1 KiB
TypeScript

import {Component, OnInit} from '@angular/core';
import {ApiService} from "../api.service";
import {Project} from "../models/project";
import {ActivatedRoute, Router} from "@angular/router";
import {MessengerService} from "../messenger.service";
import {TranslateService} from "@ngx-translate/core";
import * as moment from "moment"
import {WorkerAccess} from "../models/worker-access";
@Component({
selector: 'app-project-perms',
templateUrl: './project-perms.component.html',
styleUrls: ['./project-perms.component.css']
})
export class ProjectPermsComponent implements OnInit {
constructor(private apiService: ApiService,
private route: ActivatedRoute,
private messengerService: MessengerService,
private translate: TranslateService,
private router: Router) {
}
project: Project;
private projectId: number;
accesses: WorkerAccess[];
unauthorized: boolean = false;
moment = moment;
ngOnInit() {
this.route.params.subscribe(params => {
this.projectId = params["id"];
this.getProject();
this.getProjectAccesses();
})
}
public acceptRequest(wa: WorkerAccess) {
this.apiService.acceptWorkerAccessRequest(wa.worker.id, this.projectId)
.subscribe(() => this.getProjectAccesses())
}
public rejectRequest(wa: WorkerAccess) {
this.apiService.rejectWorkerAccessRequest(wa.worker.id, this.projectId)
.subscribe(() => this.getProjectAccesses())
}
private getProject() {
this.apiService.getProject(this.projectId).subscribe(data => {
this.project = data["content"]["project"]
})
}
private getProjectAccesses() {
this.apiService.getProjectAccess(this.projectId).subscribe(
data => {
this.accesses = data["content"]["accesses"]
},
error => {
if (error && (error.status == 401 || error.status == 403)) {
this.unauthorized = true;
}
})
}
public refresh() {
this.getProjectAccesses()
}
}