2022-02-16 17:19:35 +01:00
|
|
|
import {Component, Input, ViewChild} from '@angular/core';
|
|
|
|
import {ActivatedRoute, Router} from '@angular/router';
|
|
|
|
import {Location} from '@angular/common';
|
2022-02-17 16:31:58 +01:00
|
|
|
import {StakeholderInfo, Visibility} from "../openaireLibrary/monitor/entities/stakeholder";
|
2022-02-16 17:19:35 +01:00
|
|
|
import {EnvProperties} from "../openaireLibrary/utils/properties/env-properties";
|
|
|
|
import {properties} from "../../environments/environment"
|
|
|
|
import {LocalStorageService} from "../openaireLibrary/services/localStorage.service";
|
|
|
|
import {Subscriber} from "rxjs";
|
|
|
|
|
|
|
|
@Component({
|
|
|
|
selector: 'browse-stakeholder',
|
2022-02-21 15:37:12 +01:00
|
|
|
templateUrl: 'browse-stakeholder.component.html',
|
|
|
|
styleUrls: ['browse-stakeholder.component.css']
|
2022-02-16 17:19:35 +01:00
|
|
|
})
|
|
|
|
export class BrowseStakeholderComponent {
|
|
|
|
@Input() public stakeholder: StakeholderInfo = null;
|
|
|
|
@ViewChild('AlertModal', { static: true }) modal;
|
|
|
|
public properties: EnvProperties = properties;
|
|
|
|
public directLink: boolean = true;
|
|
|
|
public visibilityIcon: Map<Visibility, string> = new Map<Visibility, string> ([
|
|
|
|
["PRIVATE", 'incognito'],
|
|
|
|
["RESTRICTED", 'group']
|
|
|
|
]);
|
|
|
|
private subscriptions: any[] = [];
|
|
|
|
|
|
|
|
constructor(private route: ActivatedRoute,
|
|
|
|
private router: Router,
|
|
|
|
private location: Location,
|
|
|
|
private localStorageService: LocalStorageService) {
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public ngOnInit() {
|
|
|
|
this.properties = properties;
|
|
|
|
this.subscriptions.push(this.localStorageService.get().subscribe(value => {
|
|
|
|
this.directLink = value;
|
|
|
|
}));
|
|
|
|
|
|
|
|
}
|
|
|
|
ngOnDestroy() {
|
|
|
|
this.subscriptions.forEach(subscription => {
|
|
|
|
if (subscription instanceof Subscriber) {
|
|
|
|
subscription.unsubscribe();
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
2022-02-17 16:31:58 +01:00
|
|
|
|
|
|
|
mapType(type: string) {
|
|
|
|
if(type === 'ri') {
|
|
|
|
return 'Research Initiative';
|
|
|
|
} else if(type === 'organization') {
|
2022-02-21 15:37:12 +01:00
|
|
|
return 'Research Institution';
|
2022-02-17 16:31:58 +01:00
|
|
|
} else {
|
|
|
|
return type;
|
|
|
|
}
|
2022-02-16 17:19:35 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
public confirmModalOpen() {
|
|
|
|
this.modal.cancelButton = true;
|
|
|
|
this.modal.okButton = true;
|
|
|
|
this.modal.alertTitle = 'You are going to visit ' + this.stakeholder.name + ' Monitor Dashboard';
|
|
|
|
this.modal.alertMessage = false;
|
|
|
|
this.modal.okButtonLeft = false;
|
|
|
|
this.modal.okButtonText = 'Yes';
|
|
|
|
this.modal.cancelButtonText = 'No';
|
|
|
|
this.modal.choice = true;
|
|
|
|
this.modal.open();
|
|
|
|
}
|
|
|
|
|
|
|
|
public getStakeholderPageUrl() {
|
|
|
|
return this.properties.domain + this.properties.baseLink + '/dashboard/' + this.stakeholder.alias;
|
|
|
|
}
|
|
|
|
|
|
|
|
hasPermission() {
|
|
|
|
return this.stakeholder.visibility === "PUBLIC" ||
|
|
|
|
(this.stakeholder.visibility === "RESTRICTED" && (this.stakeholder.isManager || this.stakeholder.isMember)) ||
|
|
|
|
(this.stakeholder.visibility === "PRIVATE" && this.stakeholder.isManager);
|
|
|
|
}
|
|
|
|
|
|
|
|
public goToPage(data: any) {
|
|
|
|
if (data.value == true) {
|
|
|
|
let url = this.getStakeholderPageUrl();
|
|
|
|
this.localStorageService.setCommunityDirectLink(data.choice);
|
|
|
|
window.open(url, '_blank');
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|