93 lines
2.6 KiB
TypeScript
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))
|
|
}
|
|
});
|
|
}
|
|
|
|
}
|