diff --git a/landingPages/landing-utils/parsingFunctions.class.ts b/landingPages/landing-utils/parsingFunctions.class.ts index 837ca6ee..3093baac 100644 --- a/landingPages/landing-utils/parsingFunctions.class.ts +++ b/landingPages/landing-utils/parsingFunctions.class.ts @@ -598,7 +598,8 @@ export class ParsingFunctions { if (pid.hasOwnProperty("classid") && pid['classid'] != "") { if (pid.classid == "doi" || pid.classid == "pmc" || pid.classid == "handle" || pid.classid == "pmid" || pid.classid == "re3data" || pid.classid == "swhid" - || pid.classid == "ROR" || pid.classid == "ISNI" || pid.classid == "Wikidata" || pid.classid == "FundRef") { + || pid.classid == "ROR" || pid.classid == "ISNI" || pid.classid == "Wikidata" || pid.classid == "FundRef" + || pid.classid == "RRID") { if (!identifiers.has(pid.classid)) { identifiers.set(pid.classid, new Array()); } @@ -608,7 +609,8 @@ export class ParsingFunctions { for (let i = 0; i < pid.length; i++) { if (pid[i].classid == "doi" || pid[i].classid == "pmc" || pid[i].classid == "handle" || pid[i].classid == "pmid" || pid[i].classid == "re3data" || pid[i].classid == "swhid" - || pid[i].classid == "ROR" || pid[i].classid == "ISNI" || pid[i].classid == "Wikidata" || pid[i].classid == "FundRef") { + || pid[i].classid == "ROR" || pid[i].classid == "ISNI" || pid[i].classid == "Wikidata" || pid[i].classid == "FundRef" + || pid[i].classid == "RRID") { if (!identifiers.has(pid[i].classid)) { identifiers.set(pid[i].classid, new Array()); } diff --git a/landingPages/landing-utils/showIdentifiers.component.ts b/landingPages/landing-utils/showIdentifiers.component.ts index 11a15f14..0d5f0219 100644 --- a/landingPages/landing-utils/showIdentifiers.component.ts +++ b/landingPages/landing-utils/showIdentifiers.component.ts @@ -27,7 +27,7 @@ import {properties} from "../../../../environments/environment"; {{item}} @@ -138,6 +138,8 @@ export class ShowIdentifiersComponent implements AfterViewInit { return properties.wikiDataURL; } else if(key == "FundRef") { return properties.fundRefURL; + } else if(key == "RRID") { + return properties.rridURL; } } diff --git a/utils/properties/env-properties.ts b/utils/properties/env-properties.ts index daa1534d..877fdeb1 100644 --- a/utils/properties/env-properties.ts +++ b/utils/properties/env-properties.ts @@ -51,6 +51,7 @@ export interface EnvProperties { isniURL?: string; wikiDataURL?: string; fundRefURL?: string; + rridURL?: string; fairSharingURL?: string, openScienceCloudURL?: string, eoscMarketplaceURL?: string, diff --git a/utils/properties/environments/environment.ts b/utils/properties/environments/environment.ts index 9199e2ea..423052d4 100644 --- a/utils/properties/environments/environment.ts +++ b/utils/properties/environments/environment.ts @@ -24,6 +24,7 @@ export let common: EnvProperties = { isniURL: "https://isni.org/isni/", wikiDataURL: "https://www.wikidata.org/wiki/", fundRefURL: "https://data.crossref.org/fundingdata/funder/", + rridURL: "https://scicrunch.org/resolver/", fairSharingURL: "https://fairsharing.org/", openScienceCloudURL: "https://open-science-cloud.ec.europa.eu/resources/services/", sherpaURL: "http://sherpa.ac.uk/romeo/issn/", diff --git a/utils/string-utils.class.ts b/utils/string-utils.class.ts index 9c5ca69c..75d12faf 100644 --- a/utils/string-utils.class.ts +++ b/utils/string-utils.class.ts @@ -150,7 +150,7 @@ export class DOI { } export class Identifier { - class: "doi" | "pmc" | "pmid" | "handle" | "ORCID" | "re3data" | "swhid" | "ror" | "wikidata" | "fundref" | "isni" = null; + class: "doi" | "pmc" | "pmid" | "handle" | "ORCID" | "re3data" | "swhid" | "ror" | "wikidata" | "fundref" | "isni" | "RRID" = null; id: string; public static getDOIsFromString(str: string): string[] { @@ -213,13 +213,15 @@ export class Identifier { return {"class": "wikidata", "id": pid}; } else if (Identifier.isValidIsni(pid)) { return {"class": "isni", "id": pid}; + } else if(Identifier.isValidRrid(pid)) { + return {"class": "RRID", "id": pid}; } //set it as a doi, to catch the case that doi has not valid format return (strict?null:{"class": "doi", "id": pid}); } public static getPIDFromIdentifiers(identifiers: Map): Identifier { - let classes:string [] = ["doi", "handle", "pmc", "pmid", "re3data", "swhid", "ror", "wikidata", "fundref", "isni"]; + let classes:string [] = ["doi", "handle", "pmc", "pmid", "re3data", "swhid", "ror", "wikidata", "fundref", "isni", "rrid"]; if(identifiers && identifiers.size > 0) { for (let cl of classes) { if (identifiers.get(cl)) { @@ -303,6 +305,10 @@ export class Identifier { return str.match(exp) != null; } + public static isValidRrid(str: string): boolean { + let exp = /^RRID:.*$/g; + return str.match(exp) != null; + } } export class StringUtils {