argos/dmp-frontend/src/app/viewers/project-detailed/project-detailed.component.ts

93 lines
2.6 KiB
TypeScript

import { Component, OnInit } from '@angular/core';
import { Router, ActivatedRoute, ParamMap, Params } from '@angular/router';
import {Location} from '@angular/common';
import { ServerService } from '../../../app/services/server.service';
import '../../../assets/perfect-scrollbar/perfect-scrollbar.js';
declare var PerfectScrollbar : any;
declare var $ :any;
@Component({
selector: 'project-detailed',
templateUrl: './project-detailed.component.html',
styleUrls: [
'../../../assets/perfect-scrollbar/perfect-scrollbar.css',
'./project-detailed.component.css'
]
})
export class ProjectDetailedComponent implements OnInit {
constructor(private serverService: ServerService, private router: Router, private _location: Location, private route: ActivatedRoute) {
}
users : Map<string, string> = new Map<string, string>();
project : any;
ngOnInit() {
let sub = this.route.queryParams.subscribe(params => {
let projectid = params.projectid;
this.serverService.getProject(projectid).subscribe(
(response:any) => {
this.project = response;
$('#project-details-modal').modal('show');
//get also projects of dmp (there's a problem with the List<> serialization on server - side)
this.serverService.getDmpsOfProject(projectid).subscribe(
response => {
this.project.dmps = response;
this.populateUsersMap(this.project);
//this.get
},
error => {
console.log("Could not fetch project's dmps");
}
)
},
error => {
console.log("Could not load project");
}
)
});
var projectDetailsModalScroller = new PerfectScrollbar("#project-modal-content");
}
getUserByID(userid: string){
return this.serverService.getUserByID(userid); //Notice: returns Observable !
}
async populateUsersMap1(project){
this.users.clear();
for(var i=0;i<project.dmps.length;i++){
debugger;
const user:any = await this.serverService.getUserByID(project.dmps[i].creator).toPromise();
this.users.set(project.dmps[i].creator, user.name);
}
}
private populateUsersMap(project){
this.users.clear();
project.dmps.forEach(dmp => {
if(!this.users.has(dmp.creator)){
this.serverService.getUserByID(dmp.creator).subscribe(
(user:any) => {
this.users.set(dmp.creator, user.name);
},
error => {
}
)
console.log("USERS: "+JSON.stringify(this.users))
}
});
}
}