import {Component, OnInit} from "@angular/core"; import {Stakeholder} from "../openaireLibrary/monitor/entities/stakeholder"; import {StakeholderService} from "../openaireLibrary/monitor/services/stakeholder.service"; import {ActivatedRoute, Router} from "@angular/router"; import {SEOService} from "../openaireLibrary/sharedComponents/SEO/SEO.service"; import {PiwikService} from "../openaireLibrary/utils/piwik/piwik.service"; import {Meta, Title} from "@angular/platform-browser"; import {SearchCustomFilter} from "../openaireLibrary/searchPages/searchUtils/searchUtils.class"; import {LinksResolver} from "../search/links-resolver"; import {CustomFilterService} from "../openaireLibrary/shared/customFilter.service"; import {StakeholderBaseComponent} from "../openaireLibrary/monitor-admin/utils/stakeholder-base.component"; import {LayoutService} from "../openaireLibrary/dashboard/sharedComponents/sidebar/layout.service"; import {OpenaireEntities} from "../openaireLibrary/utils/properties/searchFields"; import {ConfigurationService} from "../openaireLibrary/utils/configuration/configuration.service"; import {Irish} from "../shared/irish"; import {Role} from "../openaireLibrary/login/utils/helper.class"; @Component({ selector: 'rpo', template: `

Research Performing Organisations ({{entities.organizations}})

` }) export class RpoComponent extends StakeholderBaseComponent implements OnInit { stakeholder: Stakeholder; alias: string; isSearch: boolean = false; loading: boolean = false; openaireEntities = OpenaireEntities; type: string; constructor(private stakeholderService: StakeholderService, private _customFilterService: CustomFilterService, private layoutService: LayoutService, protected _router: Router, protected _route: ActivatedRoute, protected seoService: SEOService, protected _piwikService: PiwikService, protected _title: Title, protected _meta: Meta, private configurationService: ConfigurationService) { super(); super.initRouterParams(this._route, event => { this.isSearch = event.url.includes('/search'); }); } ngOnInit() { this.layoutService.setRootClass('organization'); this.title = 'RPOs'; this.description = 'RPOs'; this.setMetadata(); this.params.subscribe(params => { this.alias = params['stakeholder']; if (this.alias) { if(this.stakeholder?.alias !== this.alias) { this.loading = true; this._customFilterService.setCustomFilter(null); this.subscriptions.push(this.stakeholderService.getStakeholder(this.alias, true).subscribe(stakeholder => { this.stakeholder = stakeholder; if (this.stakeholder && this.stakeholder.type === 'organization') { this.type = Role.mapType(this.stakeholder.type); this.setProperties(this.stakeholder.alias, this.stakeholder.type, this.configurationService); LinksResolver.resetProperties(); LinksResolver.setSearchAndResultLanding("rpo/" + this.stakeholder.alias); let value = this.stakeholder.index_id + "||" + this.stakeholder.index_name + "||" + this.stakeholder.index_shortName; this._customFilterService.setCustomFilter( [new SearchCustomFilter("National", "country", "IE", "Irish National Monitor", false), new SearchCustomFilter("RPO", "relorganizationid", this.stakeholder.index_id, this.stakeholder.index_name, true) ]); this.loading = false; } else { this.navigateToError(); } })); } } else { this.stakeholder = null; this._customFilterService.setCustomFilter(null); } }); } ngOnDestroy() { super.ngOnDestroy(); this.layoutService.setRootClass(null); this.setProperties(Irish.irishAdminToolsCommunity, Irish.irishAdminToolsPortalType, this.configurationService); } }