import {Component, Inject, Input, Optional} from '@angular/core'; import {Location} from '@angular/common'; import {ActivatedRoute} from '@angular/router'; import {Title, Meta} from '@angular/platform-browser'; import {SEOService} from "../sharedComponents/SEO/SEO.service"; import {properties} from "../../../environments/environment"; import {RESPONSE} from '../utils/tokens'; import {Response} from 'express'; import {OpenaireEntities} from "../utils/properties/searchFields"; @Component({ selector: 'error', template: `

Bad karma: we can't find that page!
Private Data

Not valid or missing {{page_type_name}} id. Search another {{page_type_name}}?

You asked for {{page}}, but despite our computers looking very hard, we could not find it. What happened ?

  • the link you clicked to arrive here has a typo in it
  • or somehow we removed that page, or gave it another name
  • or, quite unlikely for sure, maybe you typed it yourself and there was a little mistake ?
` }) export class ErrorPageComponent { @Input() public page: string; public page_type: string; public searchPage: string; public searchPagePrams: {}; public page_type_name: string; constructor (private _location: Location, private _meta: Meta, private _title: Title, private route: ActivatedRoute, @Optional() @Inject(RESPONSE) private response: Response, private seoService: SEOService) {} ngOnInit() { this.seoService.createLinkForCanonicalURL(properties.domain + properties.baseLink + "/error"); this.route.queryParams.subscribe(data => { this.page = this.page?this.page:data['page']; if (!this.page) { this.page = this._location.path(true); } if(this.response) { this.response.statusCode = 404; this.response.statusMessage = '404 - Page not found'; } if(this.page != "-1") { let title = "OpenAIRE | Error page"; this._meta.updateTag({content:title},"property='og:title'"); this._title.setTitle(title); } else{ let title = "OpenAIRE | Private data"; this._meta.updateTag({content:title},"property='og:title'"); this._title.setTitle(title); } this.page_type = data['page_type']; if(this.page_type) { if (this.page_type == "publication") { this.searchPage = properties.searchLinkToResults; this.searchPagePrams = {type: 'publications'} this.page_type_name = OpenaireEntities.PUBLICATION.toLowerCase(); } else if (this.page_type == "software") { this.searchPage = properties.searchLinkToResults; this.searchPagePrams = {type: 'software'} this.page_type_name = OpenaireEntities.SOFTWARE_SINGULAR.toLowerCase(); } else if (this.page_type == "dataset") { this.searchPagePrams = {type: 'datasets'} this.searchPage = properties.searchLinkToResults; this.page_type_name = OpenaireEntities.DATASET.toLowerCase(); } else if (this.page_type == "orp") { this.searchPagePrams = {type: 'orps'} this.searchPage = properties.searchLinkToResults; this.page_type_name = OpenaireEntities.OTHER_SINGULAR.toLowerCase(); } else if (this.page_type == "organization") { this.searchPage = properties.searchLinkToOrganizations; this.page_type_name = OpenaireEntities.ORGANIZATION.toLowerCase(); } else if (this.page_type == "project") { this.searchPage = properties.searchLinkToProjects; this.page_type_name = OpenaireEntities.PROJECT.toLowerCase(); } else if (this.page_type == "dataprovider") { this.searchPage = properties.searchLinkToDataProviders; this.page_type_name = OpenaireEntities.DATASOURCE.toLowerCase(); } else if (this.page_type == "service") { this.searchPage = properties.searchLinkToServices; this.page_type_name = OpenaireEntities.SERVICE.toLowerCase(); } else { this.searchPage = properties.searchLinkToResults; this.page_type_name = OpenaireEntities.RESULT.toLowerCase(); } } }); } }