diff --git a/utils/properties/env-properties.ts b/utils/properties/env-properties.ts index ecea4a65..b84da6f6 100644 --- a/utils/properties/env-properties.ts +++ b/utils/properties/env-properties.ts @@ -1,162 +1,118 @@ -export class EnvProperties { - environment: string; //{beta,test,production, development} - dashboard:string; //{explore, connect, monitor} - domain: string; - enablePiwikTrack: boolean; - useCache: boolean; - showAddThis: boolean; - showContent: boolean; +export type Environment = "development" | "test" | "beta" | "production"; +export type Dashboard = "explore" | "connect" | "monitor"; - metricsAPIURL; - framesAPIURL; - statisticsFrameAPIURL; - statisticsFrameNewAPIURL; - useNewStatistisTool: boolean; - statisticsAPIURL; - impactFactorsAPIURL; - claimsAPIURL; - - searchAPIURLLAst; - - searchResourcesAPIURL; - - openCitationsAPIURL; - - csvAPIURL; - - searchCrossrefAPIURL; - - searchDataciteAPIURL; - - searchOrcidURL; - orcidURL; - doiURL; - pmcURL; - pmidURL; - handleURL; - cordisURL; - openDoarURL; - r3DataURL; - sherpaURL; - sherpaURLSuffix; - - // Zenodo's url - zenodo; - zenodoCommunities; - // Open access link - openAccess; - // Open access repository link - openAccessRepo; - // FP7 link - fp7Guidlines; - // H2020 link - h2020Guidlines; - // ERC Guidlines - ercGuidlines; - // helpdesk link - helpdesk; - // helpdesk email - helpdeskEmail; - - utilsService; - - vocabulariesAPI; - - piwikBaseUrl; - piwikSiteId; - - - loginUrl; - - logoutUrl; - - userInfoUrl; - - cookieDomain; - - feedbackmail; - feedbackmailForMissingEntities; - - cacheUrl; - - monitorServiceAPIURL; - adminToolsAPIURL; - - - adminToolsCommunity; - contextsAPI; - communityAPI; - communitiesAPI; - datasourcesAPI; - miningBackendURL; - - csvLimit: number; - pagingLimit: number; - resultsPerPage: number; - - //base url - baseLink; - //base url for OpenAIRE portal - baseOpenaireLink; - - // after login redirect Link - afterLoginRedirectLink; - - //landing Pages - - searchLinkToPublication; - searchLinkToProject; - searchLinkToDataProvider; - searchLinkToDataset; - searchLinkToSoftwareLanding; - searchLinkToOrp; - searchLinkToOrganization; +export interface EnvProperties { + environment?: Environment; + dashboard?: Dashboard; + domain?: string; + enablePiwikTrack?: boolean; + useCache?: boolean; + showAddThis?: boolean; + showContent?: boolean; + metricsAPIURL?: string; + framesAPIURL?: string; + statisticsFrameAPIURL?: string; + statisticsFrameNewAPIURL?: string; + useNewStatistisTool?: boolean; + statisticsAPIURL?: string; + impactFactorsAPIURL?: string; + claimsAPIURL?: string; + searchAPIURLLAst?: string; + searchResourcesAPIURL?: string; + openCitationsAPIURL?: string; + csvAPIURL?: string; + searchCrossrefAPIURL?: string; + searchDataciteAPIURL?: string; + searchOrcidURL?: string; + orcidURL?: string; + doiURL?: string; + pmcURL?: string; + pmidURL?: string; + handleURL?: string; + cordisURL?: string; + openDoarURL?: string; + r3DataURL?: string; + sherpaURL?: string; + sherpaURLSuffix?: string; + zenodo?: string; + zenodoCommunities?: string; + openAccess?: string; + openAccessRepo?: string; + fp7Guidlines?: string; + h2020Guidlines?: string; + ercGuidlines?: string; + helpdesk?: string; + helpdeskEmail?: string; + utilsService?: string; + vocabulariesAPI?: string; + piwikBaseUrl?: string; + piwikSiteId?: string; + loginUrl?: string; + logoutUrl?: string; + userInfoUrl?: string; + cookieDomain?: string; + feedbackmail?: string; + feedbackmailForMissingEntities?: string; + cacheUrl?: string; + monitorServiceAPIURL?: string; + adminToolsAPIURL?: string; + adminToolsCommunity?: string; + contextsAPI?: string; + communityAPI?: string; + communitiesAPI?: string; + datasourcesAPI?: string; + miningBackendURL?: string; + csvLimit?: number; + pagingLimit?: number; + resultsPerPage?: number; + baseLink?: string; + baseOpenaireLink?: string; + afterLoginRedirectLink?: string; + searchLinkToPublication?: string; + searchLinkToProject?: string; + searchLinkToDataProvider?: string; + searchLinkToDataset?: string; + searchLinkToSoftwareLanding?: string; + searchLinkToOrp?: string; + searchLinkToOrganization?: string; //Search pages - searchLinkToCommunities; - searchLinkToPublications; - searchLinkToDataProviders; - searchLinkToProjects; - searchLinkToDatasets; - searchLinkToSoftware; - searchLinkToOrps; - searchLinkToOrganizations; - searchLinkToCompatibleDataProviders; - searchLinkToEntityRegistriesDataProviders; - searchLinkToEntityRegistriesDataProvidersTable; - searchLinkToJournals; - searchLinkToJournalsTable; - searchLinkToResults; - + searchLinkToCommunities?: string; + searchLinkToPublications?: string; + searchLinkToDataProviders?: string; + searchLinkToProjects?: string; + searchLinkToDatasets?: string; + searchLinkToSoftware?: string; + searchLinkToOrps?: string; + searchLinkToOrganizations?: string; + searchLinkToCompatibleDataProviders?: string; + searchLinkToEntityRegistriesDataProviders?: string; + searchLinkToEntityRegistriesDataProvidersTable?: string; + searchLinkToJournals?: string; + searchLinkToJournalsTable?: string; + searchLinkToResults?: string; //Advanced Search for pages - searchLinkToAdvancedPublications; - searchLinkToAdvancedProjects; - searchLinkToAdvancedDatasets; - searchLinkToAdvancedSoftware; - searchLinkToAdvancedOrps; - searchLinkToAdvancedDataProviders; - searchLinkToAdvancedOrganizations; - searchLinkToAdvancedResults; - - - lastIndexInformationLink; - showLastIndexInformationLink; - - widgetLink; - claimsInformationLink; - - depositLearnHowPage; - depositSearchPage; - shareInZenodoPage; - + searchLinkToAdvancedPublications?: string; + searchLinkToAdvancedProjects?: string; + searchLinkToAdvancedDatasets?: string; + searchLinkToAdvancedSoftware?: string; + searchLinkToAdvancedOrps?: string; + searchLinkToAdvancedDataProviders?: string; + searchLinkToAdvancedOrganizations?: string; + searchLinkToAdvancedResults?: string; + lastIndexInformationLink?: string; + showLastIndexInformationLink?: boolean; + widgetLink?: string; + claimsInformationLink?: string; + depositLearnHowPage?: string; + depositSearchPage?: string; + shareInZenodoPage?: string; // recaptcha site key - reCaptchaSiteKey; - + reCaptchaSiteKey?: string; // contact us recipients - admins; - - lastIndexUpdate: string; - indexInfoAPI: string; - altMetricsAPIURL: string; - b2noteAPIURL: string; - adminPortalURL: string; + admins?: string[]; + lastIndexUpdate?: string; + indexInfoAPI?: string; + altMetricsAPIURL?: string; + b2noteAPIURL?: string; + adminPortalURL?: string; } diff --git a/utils/properties/environment-specific.service.ts b/utils/properties/environment-specific.service.ts index 871ac529..6b437813 100644 --- a/utils/properties/environment-specific.service.ts +++ b/utils/properties/environment-specific.service.ts @@ -1,13 +1,13 @@ -import {Injectable, PLATFORM_ID, Inject, Optional} from '@angular/core'; -import { isPlatformBrowser} from '@angular/common'; +import {Inject, Injectable, Optional, PLATFORM_ID} from '@angular/core'; import {HttpClient} from "@angular/common/http"; -import { BehaviorSubject , of } from 'rxjs'; +import {BehaviorSubject, of} from 'rxjs'; import {Request} from 'express'; import {REQUEST} from '@nguniversal/express-engine/tokens'; -import { EnvProperties } from './env-properties'; +import {EnvProperties} from './env-properties'; import {map} from "rxjs/operators"; +import {properties} from "../../../../environments/environment"; //export const REQUEST_TOKEN = new InjectionToken('request'); @@ -16,19 +16,13 @@ export class EnvironmentSpecificService { public envSpecific: EnvProperties; public domain: string; - public envSpecificNull: EnvProperties = null; - testBrowser: boolean; private envSpecificSubject: BehaviorSubject = new BehaviorSubject(null); private propertiesPath = "/assets/env-properties.json?v=2"; - constructor(private http: HttpClient, @Inject(PLATFORM_ID) private platformId: string, /*private injector: Injector,*/ - @Optional() @Inject(REQUEST) private request: Request) { - this.testBrowser = isPlatformBrowser(platformId); - if (this.testBrowser) { - //this is only executed on the browser - } + constructor(private http: HttpClient, @Optional() @Inject(REQUEST) private request: Request) { + properties.domain = this.getDomain(); } - + public loadEnvironment() { // Only want to do this once - if root page is revisited, it calls this again.