2023-11-15 09:36:56 +01:00
|
|
|
import {Component, OnInit} from "@angular/core";
|
2023-10-27 14:53:59 +02:00
|
|
|
import {Stakeholder} from "../openaireLibrary/monitor/entities/stakeholder";
|
|
|
|
import {StakeholderService} from "../openaireLibrary/monitor/services/stakeholder.service";
|
2023-11-13 10:20:58 +01:00
|
|
|
import {ActivatedRoute, Router} from "@angular/router";
|
2023-10-27 14:53:59 +02:00
|
|
|
import {SEOService} from "../openaireLibrary/sharedComponents/SEO/SEO.service";
|
|
|
|
import {PiwikService} from "../openaireLibrary/utils/piwik/piwik.service";
|
|
|
|
import {Meta, Title} from "@angular/platform-browser";
|
2023-11-13 10:20:58 +01:00
|
|
|
import {SearchCustomFilter} from "../openaireLibrary/searchPages/searchUtils/searchUtils.class";
|
2023-11-15 09:36:56 +01:00
|
|
|
import {LinksResolver} from "../search/links-resolver";
|
2023-12-18 12:27:40 +01:00
|
|
|
import {CustomFilterService} from "../openaireLibrary/shared/customFilter.service";
|
2023-11-15 09:36:56 +01:00
|
|
|
import {StakeholderBaseComponent} from "../openaireLibrary/monitor-admin/utils/stakeholder-base.component";
|
2023-11-24 09:55:49 +01:00
|
|
|
import {LayoutService} from "../openaireLibrary/dashboard/sharedComponents/sidebar/layout.service";
|
2023-12-06 12:57:49 +01:00
|
|
|
import {OpenaireEntities} from "../openaireLibrary/utils/properties/searchFields";
|
2023-12-22 15:21:58 +01:00
|
|
|
import {RouterHelper} from "../openaireLibrary/utils/routerHelper.class";
|
|
|
|
import {StringUtils} from "../openaireLibrary/utils/string-utils.class";
|
2024-01-09 10:57:40 +01:00
|
|
|
import {ConfigurationService} from "../openaireLibrary/utils/configuration/configuration.service";
|
2024-01-09 12:49:25 +01:00
|
|
|
import {Irish} from "../shared/irish";
|
2023-10-27 14:53:59 +02:00
|
|
|
|
|
|
|
@Component({
|
|
|
|
selector: 'rpo',
|
|
|
|
template: `
|
2023-11-24 09:55:49 +01:00
|
|
|
<loading *ngIf="loading" class="uk-position-center"></loading>
|
|
|
|
<div *ngIf="!loading">
|
2023-12-06 14:54:10 +01:00
|
|
|
<div class="uk-banner uk-light">
|
2023-11-24 09:55:49 +01:00
|
|
|
<div class="uk-container uk-container-large">
|
|
|
|
<div class="uk-padding-small uk-padding-remove-vertical">
|
2023-12-11 10:13:53 +01:00
|
|
|
<div *ngIf="stakeholder" class="uk-grid uk-grid-large uk-flex-middle uk-margin-medium-bottom" uk-grid>
|
|
|
|
<div class="uk-width-expand">
|
2023-12-11 11:18:32 +01:00
|
|
|
<div class="uk-grid uk-grid-small uk-flex-middle" uk-grid>
|
|
|
|
<div class="uk-card uk-card-default uk-padding-small">
|
|
|
|
<img *ngIf="stakeholder.logoUrl; else elseBlock" [src]="stakeholder | logoUrl" [alt]="stakeholder.name + ' logo'" class="uk-height-max-xsmall" style="max-width: 180px;">
|
|
|
|
<ng-template #elseBlock>
|
|
|
|
<img src="assets/common-assets/placeholder.png" alt="OpenAIRE placeholder logo" class="uk-height-max-xsmall" style="max-width: 180px;">
|
|
|
|
</ng-template>
|
|
|
|
</div>
|
|
|
|
<div class="uk-width-expand uk-margin-small-left">
|
|
|
|
<div class="uk-text-small uk-flex uk-flex-middle uk-margin-small-bottom">
|
|
|
|
<icon [name]="'navigate_before'" [flex]="true" [ratio]="0.8" class="uk-margin-xsmall-right"></icon>
|
|
|
|
<a routerLink=".">Back to all {{entities.organization}} {{entities.stakeholders}}</a>
|
|
|
|
</div>
|
2024-01-08 13:15:43 +01:00
|
|
|
<h1 class="uk-h4 uk-margin-remove uk-text-truncate">{{stakeholder.name}}</h1>
|
2023-12-11 11:18:32 +01:00
|
|
|
</div>
|
|
|
|
</div>
|
2023-12-11 10:13:53 +01:00
|
|
|
</div>
|
|
|
|
</div>
|
2024-01-08 13:43:36 +01:00
|
|
|
<h1 *ngIf="!stakeholder" class="uk-h3 uk-margin-small-bottom">Research Performing Organisations ({{entities.organizations}})</h1>
|
2023-11-24 09:55:49 +01:00
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div *ngIf="stakeholder" class="uk-banner-footer">
|
|
|
|
<div class="uk-container uk-container-large">
|
|
|
|
<ul class="uk-banner-tab uk-padding-small uk-padding-remove-vertical">
|
|
|
|
<li [class.uk-active]="!isSearch">
|
|
|
|
<a [routerLink]="['./', stakeholder.alias]" [relativeTo]="_route"
|
|
|
|
(click)="isSearch = false">{{entities.stakeholder}}</a>
|
|
|
|
</li>
|
|
|
|
<li [class.uk-active]="isSearch">
|
2023-12-22 15:21:58 +01:00
|
|
|
<a [routerLink]="['./', stakeholder.alias, 'search']" [queryParams]="routerHelper.createQueryParams(['type','peerreviewed'], [quote('publications'), quote('true')])"
|
|
|
|
[relativeTo]="_route">Browse {{openaireEntities.RESULTS}}</a>
|
2023-11-24 09:55:49 +01:00
|
|
|
</li>
|
|
|
|
</ul>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
2023-12-12 08:51:30 +01:00
|
|
|
<div *ngIf="!this.alias || this.stakeholder" class="uk-margin-medium-top uk-margin-medium-bottom">
|
2023-11-24 09:55:49 +01:00
|
|
|
<router-outlet></router-outlet>
|
|
|
|
</div>
|
|
|
|
</div>
|
2023-12-18 16:36:47 +01:00
|
|
|
<role-verification *ngIf="stakeholder" [id]="stakeholder.alias" [name]="stakeholder.name" [type]="stakeholder.type" [service]="'irish'"></role-verification>
|
2023-10-27 14:53:59 +02:00
|
|
|
`
|
|
|
|
})
|
2023-11-15 09:36:56 +01:00
|
|
|
export class RpoComponent extends StakeholderBaseComponent implements OnInit {
|
2023-10-27 14:53:59 +02:00
|
|
|
stakeholder: Stakeholder;
|
2023-11-14 15:13:09 +01:00
|
|
|
alias: string;
|
2023-11-15 09:36:56 +01:00
|
|
|
isSearch: boolean = false;
|
|
|
|
loading: boolean = false;
|
2023-12-06 12:57:49 +01:00
|
|
|
openaireEntities = OpenaireEntities;
|
2023-10-27 14:53:59 +02:00
|
|
|
|
|
|
|
constructor(private stakeholderService: StakeholderService,
|
2023-11-15 09:36:56 +01:00
|
|
|
private _customFilterService: CustomFilterService,
|
2023-11-24 09:55:49 +01:00
|
|
|
private layoutService: LayoutService,
|
2023-10-27 14:53:59 +02:00
|
|
|
protected _router: Router,
|
2023-11-13 10:20:58 +01:00
|
|
|
protected _route: ActivatedRoute,
|
2023-10-27 14:53:59 +02:00
|
|
|
protected seoService: SEOService,
|
|
|
|
protected _piwikService: PiwikService,
|
|
|
|
protected _title: Title,
|
2024-01-09 10:57:40 +01:00
|
|
|
protected _meta: Meta,
|
|
|
|
private configurationService: ConfigurationService) {
|
2023-10-27 14:53:59 +02:00
|
|
|
super();
|
2023-11-15 09:36:56 +01:00
|
|
|
super.initRouterParams(this._route, event => {
|
|
|
|
this.isSearch = event.url.includes('search');
|
|
|
|
});
|
2023-11-13 10:20:58 +01:00
|
|
|
|
2023-10-27 14:53:59 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
ngOnInit() {
|
2023-11-24 09:55:49 +01:00
|
|
|
this.layoutService.setRootClass('organization');
|
2023-11-27 16:51:06 +01:00
|
|
|
this.title = 'RPOs';
|
|
|
|
this.description = 'RPOs';
|
|
|
|
this.setMetadata();
|
2023-11-13 10:20:58 +01:00
|
|
|
this.params.subscribe(params => {
|
|
|
|
this._customFilterService.setCustomFilter(null);
|
2023-11-14 15:13:09 +01:00
|
|
|
this.alias = params['stakeholder'];
|
2023-11-15 09:36:56 +01:00
|
|
|
if (this.alias) {
|
|
|
|
this.loading = true;
|
|
|
|
this.subscriptions.push(this.stakeholderService.getStakeholder(this.alias, true).subscribe(stakeholder => {
|
|
|
|
this.stakeholder = stakeholder;
|
|
|
|
if (this.stakeholder && this.stakeholder.type === 'organization') {
|
2024-01-09 10:57:40 +01:00
|
|
|
this.setProperties(this.stakeholder.alias, this.stakeholder.type, this.configurationService);
|
2023-11-15 09:36:56 +01:00
|
|
|
LinksResolver.resetProperties();
|
2023-11-27 13:03:18 +01:00
|
|
|
LinksResolver.setSearchAndResultLanding("rpo/" + this.stakeholder.alias);
|
2023-11-15 09:36:56 +01:00
|
|
|
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();
|
|
|
|
}
|
2023-11-13 10:20:58 +01:00
|
|
|
}));
|
2023-11-15 09:36:56 +01:00
|
|
|
} else {
|
|
|
|
this.stakeholder = null;
|
2023-11-13 10:20:58 +01:00
|
|
|
}
|
|
|
|
});
|
2023-10-27 14:53:59 +02:00
|
|
|
}
|
2023-11-24 09:55:49 +01:00
|
|
|
|
|
|
|
ngOnDestroy() {
|
|
|
|
super.ngOnDestroy();
|
|
|
|
this.layoutService.setRootClass(null);
|
2024-01-09 12:49:25 +01:00
|
|
|
this.setProperties(Irish.irishAdminToolsCommunity, Irish.irishAdminToolsPortalType, this.configurationService);
|
2023-11-24 09:55:49 +01:00
|
|
|
}
|
2023-10-27 14:53:59 +02:00
|
|
|
}
|
2023-11-13 10:20:58 +01:00
|
|
|
|
2023-11-15 09:36:56 +01:00
|
|
|
|