irish-monitor/src/app/app.component.ts

94 lines
4.0 KiB
TypeScript
Raw Normal View History

import {Component, OnInit} from '@angular/core';
import {ActivatedRoute, Router} from "@angular/router";
import {MenuItem} from "./openaireLibrary/sharedComponents/menu";
import {Header} from "./openaireLibrary/sharedComponents/navigationBar.component";
import {BaseComponent} from "./openaireLibrary/sharedComponents/base/base.component";
2023-11-09 13:34:34 +01:00
import {StakeholderEntities} from "./openaireLibrary/monitor/entities/stakeholder";
import {ConfigurationService} from "./openaireLibrary/utils/configuration/configuration.service";
2023-11-02 15:39:57 +01:00
import {Irish} from "./shared/irish";
import {CustomFilterService} from "./shared/customFilter.service";
2023-11-09 13:34:34 +01:00
import {UserManagementService} from "./openaireLibrary/services/user-management.service";
import {User} from "./openaireLibrary/login/utils/helper.class";
2023-10-23 14:26:21 +02:00
@Component({
selector: 'app-root',
template: `
<div *ngIf="loading">
<loading [full]="true"></loading>
</div>
<div *ngIf="!loading">
<div>
<div id="modal-container"></div>
2023-11-09 13:34:34 +01:00
<navbar *ngIf="hasHeader" portal="irish_monitor" [menuItems]="menuItems" [showMenu]="true" [header]="header" [user]="user" [userMenuItems]="[]"></navbar>
<div class="sidebar_main_swipe">
<main>
<router-outlet></router-outlet>
</main>
<bottom id="bottom" [centered]="true" [properties]="properties" [showMenuItems]="true"></bottom>
</div>
<div *ngIf="view" class="preview uk-text-small uk-flex uk-flex-middle">
<span>You are currently in a <span class="uk-text-bold">"Preview"</span> mode. <span class="uk-visible@m"><a (click)="removeView()">The current view</a> of this dashboard may differ.</span></span>
</div>
</div>
</div>
2023-10-23 14:26:21 +02:00
`,
styles: []
})
export class AppComponent extends BaseComponent implements OnInit {
2023-10-23 14:26:21 +02:00
title = 'irish-monitor';
loading: boolean = false;
stakeholderEntities = StakeholderEntities;
view: boolean = false;
hasHeader: boolean = true;
header: Header = {
route: "/",
title: "Noami",
logoUrl: "",
logoSmallUrl: null,
position: 'left',
badge: true,
};
menuItems:MenuItem[] = [];
2023-11-02 15:39:57 +01:00
irish: Irish = new Irish();
2023-11-09 13:34:34 +01:00
user: User;
2023-11-09 13:34:34 +01:00
constructor(protected _route: ActivatedRoute,
protected _router: Router,
private configurationService: ConfigurationService, private customFilterService:CustomFilterService,
private userManagementService: UserManagementService) {
super();
2023-11-09 13:34:34 +01:00
this.configurationService.initStaticPortal(this.irish.portal);
//Test track event
// let json = {test: "json"}
// this._piwikService.doTrackEvent(properties,"test", properties.piwikSiteId,location.href,"Linking", "Link", JSON.stringify(json) )
}
2023-11-09 13:34:34 +01:00
ngOnDestroy() {
super.ngOnDestroy();
this.customFilterService.clearSubscriptions();
this.configurationService.clearSubscriptions()
}
ngOnInit() {
2023-11-09 13:34:34 +01:00
this.userManagementService.getUserInfo().subscribe(user => {
this.user = user;
this.initialize();
})
}
initialize() {
this.menuItems = [
new MenuItem("national", this.stakeholderEntities.COUNTRY + ' ' + this.stakeholderEntities.STAKEHOLDER, "", "/", false, [], null, {}, null, null, null, null),
new MenuItem("rpo", this.stakeholderEntities.ORGANIZATION + ' ' + this.stakeholderEntities.STAKEHOLDERS, "", "/rpo", false, [], null, {}, null, null, null, null),
new MenuItem("rfo", this.stakeholderEntities.FUNDER + ' ' + this.stakeholderEntities.STAKEHOLDERS, "", "/rfo", false, [], null, {}, null, null, null, null),
new MenuItem("researcher", "Researcher Monitors", "", "/researcher", false, [], null, {}, null, null, null, null),
new MenuItem("repository", "Repository Monitors", "", "/", false, [], null, {}, null, null, null, null),
new MenuItem("upload-dois", "Upload DOIs", "", "/upload-dois", false, [], null, {}, null, null, null, null)
];
}
public removeView() {
2023-11-09 13:34:34 +01:00
this._router.navigate([], {relativeTo: this._route});
}
2023-10-23 14:26:21 +02:00
}