2023-10-27 14:53:59 +02:00
|
|
|
import {Component, OnInit} from '@angular/core';
|
2023-10-23 15:46:00 +02:00
|
|
|
import {ActivatedRoute, Router} from "@angular/router";
|
2023-10-24 14:29:36 +02:00
|
|
|
import {MenuItem} from "./openaireLibrary/sharedComponents/menu";
|
2023-10-27 14:53:59 +02:00
|
|
|
import {Header} from "./openaireLibrary/sharedComponents/navigationBar.component";
|
2023-11-02 13:56:35 +01:00
|
|
|
import {ConfigurationService} from "./openaireLibrary/utils/configuration/configuration.service";
|
2023-11-02 15:39:57 +01:00
|
|
|
import {Irish} from "./shared/irish";
|
2023-11-03 09:51:59 +01:00
|
|
|
import {CustomFilterService} from "./shared/customFilter.service";
|
2023-11-09 13:34:34 +01:00
|
|
|
import {UserManagementService} from "./openaireLibrary/services/user-management.service";
|
2023-11-14 15:13:09 +01:00
|
|
|
import {Session, User} from "./openaireLibrary/login/utils/helper.class";
|
2023-11-13 14:00:45 +01:00
|
|
|
import {SmoothScroll} from "./openaireLibrary/utils/smooth-scroll";
|
|
|
|
import {StakeholderBaseComponent} from "./openaireLibrary/monitor-admin/utils/stakeholder-base.component";
|
2023-10-23 14:26:21 +02:00
|
|
|
|
|
|
|
@Component({
|
|
|
|
selector: 'app-root',
|
|
|
|
template: `
|
2023-10-23 15:46:00 +02:00
|
|
|
<div *ngIf="loading">
|
|
|
|
<loading [full]="true"></loading>
|
|
|
|
</div>
|
|
|
|
<div *ngIf="!loading">
|
2023-11-14 15:13:09 +01:00
|
|
|
<div class="uk-background-default">
|
2023-10-23 15:46:00 +02:00
|
|
|
<div id="modal-container"></div>
|
2023-11-13 14:00:45 +01:00
|
|
|
<navbar *ngIf="hasHeader" portal="irish_monitor" [menuItems]="menuItems" [showMenu]="true"
|
2023-11-14 15:13:09 +01:00
|
|
|
[header]="header" [user]="user" [userMenuItems]="userMenuItems"></navbar>
|
2023-11-13 14:00:45 +01:00
|
|
|
<main>
|
|
|
|
<router-outlet></router-outlet>
|
|
|
|
</main>
|
2023-10-23 15:46:00 +02:00
|
|
|
</div>
|
|
|
|
</div>
|
2023-11-13 14:00:45 +01:00
|
|
|
`
|
2023-10-23 14:26:21 +02:00
|
|
|
})
|
2023-11-13 14:00:45 +01:00
|
|
|
export class AppComponent extends StakeholderBaseComponent implements OnInit {
|
2023-10-23 15:46:00 +02:00
|
|
|
loading: boolean = false;
|
2023-10-24 14:29:36 +02:00
|
|
|
hasHeader: boolean = true;
|
2023-10-27 14:53:59 +02:00
|
|
|
header: Header = {
|
2023-10-24 14:29:36 +02:00
|
|
|
route: "/",
|
|
|
|
title: "Noami",
|
2023-11-14 15:13:09 +01:00
|
|
|
logoUrl: 'assets/main.svg',
|
2023-10-24 14:29:36 +02:00
|
|
|
logoSmallUrl: null,
|
|
|
|
position: 'left',
|
2023-10-27 14:53:59 +02:00
|
|
|
badge: true,
|
2023-10-24 14:29:36 +02:00
|
|
|
};
|
2023-10-27 14:53:59 +02:00
|
|
|
menuItems:MenuItem[] = [];
|
2023-11-14 15:13:09 +01:00
|
|
|
userMenuItems: MenuItem[] = [];
|
2023-11-02 15:39:57 +01:00
|
|
|
irish: Irish = new Irish();
|
2023-11-09 13:34:34 +01:00
|
|
|
user: User;
|
2023-10-27 14:53:59 +02:00
|
|
|
|
2023-11-09 13:34:34 +01:00
|
|
|
constructor(protected _route: ActivatedRoute,
|
|
|
|
protected _router: Router,
|
2023-11-13 14:00:45 +01:00
|
|
|
private smoothScroll: SmoothScroll,
|
2023-11-09 13:34:34 +01:00
|
|
|
private configurationService: ConfigurationService, private customFilterService:CustomFilterService,
|
|
|
|
private userManagementService: UserManagementService) {
|
2023-10-27 14:53:59 +02:00
|
|
|
super();
|
2023-11-09 13:34:34 +01:00
|
|
|
this.configurationService.initStaticPortal(this.irish.portal);
|
2023-11-13 14:00:45 +01:00
|
|
|
}
|
2023-11-09 13:34:34 +01:00
|
|
|
|
2023-11-03 09:51:59 +01:00
|
|
|
ngOnDestroy() {
|
|
|
|
super.ngOnDestroy();
|
|
|
|
this.customFilterService.clearSubscriptions();
|
2023-11-13 14:00:45 +01:00
|
|
|
this.configurationService.clearSubscriptions();
|
|
|
|
this.smoothScroll.clearSubscriptions();
|
2023-11-03 09:51:59 +01:00
|
|
|
}
|
2023-10-27 14:53:59 +02:00
|
|
|
|
|
|
|
ngOnInit() {
|
2023-11-09 13:34:34 +01:00
|
|
|
this.userManagementService.getUserInfo().subscribe(user => {
|
|
|
|
this.user = user;
|
|
|
|
this.initialize();
|
|
|
|
})
|
2023-10-27 14:53:59 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
initialize() {
|
|
|
|
this.menuItems = [
|
2023-11-14 15:13:09 +01:00
|
|
|
new MenuItem("national", this.stakeholderUtils.entities.country + ' ' + this.stakeholderUtils.entities.stakeholder, "", "/", false, [], null, {}, null, null, null, null),
|
2023-11-13 14:00:45 +01:00
|
|
|
new MenuItem("rpo", this.stakeholderUtils.entities.organization + ' ' + this.stakeholderUtils.entities.stakeholders, "", "/rpo", false, [], null, {}, null, null, null, null),
|
|
|
|
new MenuItem("rfo", this.stakeholderUtils.entities.funder + ' ' + this.stakeholderUtils.entities.stakeholders, "", "/rfo", false, [], null, {}, null, null, null, null),
|
2023-10-27 14:53:59 +02:00
|
|
|
new MenuItem("researcher", "Researcher Monitors", "", "/researcher", false, [], null, {}, null, null, null, null),
|
2023-11-14 15:13:09 +01:00
|
|
|
/*
|
2023-10-27 14:53:59 +02:00
|
|
|
new MenuItem("repository", "Repository Monitors", "", "/", false, [], null, {}, null, null, null, null),
|
2023-11-14 15:13:09 +01:00
|
|
|
*/
|
2023-10-27 14:53:59 +02:00
|
|
|
];
|
2023-11-14 15:13:09 +01:00
|
|
|
|
|
|
|
if(this.user) {
|
2023-11-14 16:25:08 +01:00
|
|
|
this.userMenuItems = [
|
|
|
|
new MenuItem("myorcidlinks", "My Orcid links", "", "/my-orcid-links", false, [], null, {}, null, null, null, null),
|
|
|
|
new MenuItem("myclaims", "My claims", "", "/participate/myclaims", false, [], null, {}, null, null, null, null),
|
|
|
|
new MenuItem("claims", "Link", "", "/participate/claim", false, [], null, {}, null, null, null, null),
|
|
|
|
new MenuItem("upload-dois", "Upload DOIs", "", "/upload-dois", false, [], null, {}, null, null, null, null)
|
|
|
|
];
|
2023-11-14 15:13:09 +01:00
|
|
|
if(this.isAdmin) {
|
|
|
|
this.userMenuItems.push(new MenuItem("stakeholders", "Manage profiles", "", "/admin", false, [], [], {}, {name: 'settings'}));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
public get isAdmin() {
|
|
|
|
return Session.isPortalAdministrator(this.user) || Session.isMonitorCurator(this.user);
|
2023-10-23 15:46:00 +02:00
|
|
|
}
|
2023-10-23 14:26:21 +02:00
|
|
|
}
|