842 lines
26 KiB
TypeScript
842 lines
26 KiB
TypeScript
import {Filter} from "../../searchPages/searchUtils/searchHelperClasses.class";
|
|
|
|
export class SearchFields {
|
|
|
|
//main Entities
|
|
//RESULTS
|
|
//Used for datasets and publications and software and orp
|
|
//In case Datasets or Software should display different fields, use seperate tables for fields
|
|
// "resultacceptanceyear",
|
|
public RESULT_RANGE_FIELDS = [
|
|
["resultacceptanceyear", "resultacceptanceyear"]
|
|
];
|
|
|
|
// Remove Collected From Filter "collectedfrom","collectedfrom"
|
|
public RESULT_REFINE_FIELDS = [
|
|
"resultbestaccessright", "instancetypename", "fos", "relfunder",
|
|
"relfundinglevel0_id", "relfundinglevel1_id", "relfundinglevel2_id",
|
|
"relproject", "sdg", "country", "resultlanguagename", "resulthostingdatasource", "community"];
|
|
|
|
public RESULT_ADVANCED_FIELDS: string[] = ["q", "resulttitle", "resultauthor", "authorid", "resultdescription", "resultsubject", "resultpublisher",
|
|
"resultbestaccessright", "community", "collectedfromdatasourceid", "resulthostingdatasourceid", "resultdateofacceptance",
|
|
"relfunder",
|
|
"relfundinglevel0_id", "relfundinglevel1_id", "relfundinglevel2_id",
|
|
"resultlanguagename", "relorganizationid", "pid", "relprojectid", "instancetypename", "fos", "sdg"];
|
|
public RESULT_FIELDS: { [key: string]: FieldDetails } = {
|
|
["q"]: {name: "Any field", type: "keyword", param: "q", operator: "op", equalityOperator: "=", filterType: null},
|
|
["resulttitle"]: {
|
|
name: "Title",
|
|
type: "keyword",
|
|
param: "title",
|
|
operator: "tt",
|
|
equalityOperator: "=",
|
|
filterType: null
|
|
},
|
|
["resultauthor"]: {
|
|
name: "Author",
|
|
type: "keyword",
|
|
param: "author",
|
|
operator: "at",
|
|
equalityOperator: "=",
|
|
filterType: null
|
|
},
|
|
["authorid"]: {
|
|
name: "Author ORCID",
|
|
type: "keyword",
|
|
param: "orcid",
|
|
operator: "oc",
|
|
equalityOperator: " exact ",
|
|
filterType: null
|
|
},
|
|
["resultsubject"]: {
|
|
name: "Subject",
|
|
type: "keyword",
|
|
param: "subject",
|
|
operator: "sb",
|
|
equalityOperator: "=",
|
|
filterType: null
|
|
},
|
|
["resultdescription"]: {
|
|
name: "Abstract",
|
|
type: "keyword",
|
|
param: "description",
|
|
operator: "ds",
|
|
equalityOperator: "=",
|
|
filterType: null
|
|
},
|
|
["resultpublisher"]: {
|
|
name: "Publisher",
|
|
type: "keyword",
|
|
param: "publisher",
|
|
operator: "pb",
|
|
equalityOperator: "=",
|
|
filterType: null
|
|
},
|
|
["pid"]: {name: "PID", type: "keyword", param: "pid", operator: "pd", equalityOperator: " exact ", filterType: null},
|
|
["resulthostingdatasourceid"]: {
|
|
name: "Hosting "+OpenaireEntities.DATASOURCE,
|
|
type: "entity",
|
|
param: "hostedBy",
|
|
operator: "hs",
|
|
equalityOperator: " exact ",
|
|
filterType: null
|
|
},
|
|
["resulthostingdatasource"]: {
|
|
name: "Source",
|
|
type: "refine",
|
|
param: "hostedBy",
|
|
operator: "hs",
|
|
equalityOperator: " exact ",
|
|
filterType: "checkbox"
|
|
},
|
|
["instancetypename"]: {
|
|
name: "Document Type",
|
|
type: "vocabulary",
|
|
param: "type",
|
|
operator: "tp",
|
|
equalityOperator: " exact ",
|
|
filterType: "checkbox"
|
|
},
|
|
["resultlanguagename"]: {
|
|
name: "Language",
|
|
type: "vocabulary",
|
|
param: "lang",
|
|
operator: "ln",
|
|
equalityOperator: " exact ",
|
|
filterType: "checkbox"
|
|
},
|
|
["community"]: {
|
|
name: OpenaireEntities.COMMUNITY,
|
|
type: "refine",
|
|
param: "community",
|
|
operator: "cm",
|
|
equalityOperator: " exact ",
|
|
filterType: "checkbox"
|
|
},
|
|
["relproject"]: {
|
|
name: "Project",
|
|
type: "refine",
|
|
param: "project",
|
|
operator: "po",
|
|
equalityOperator: " exact ",
|
|
filterType: "checkbox"
|
|
},
|
|
["relprojectid"]: {
|
|
name: OpenaireEntities.PROJECT,
|
|
type: "entity",
|
|
param: "project",
|
|
operator: "po",
|
|
equalityOperator: " exact ",
|
|
filterType: null
|
|
},
|
|
["relfunder"]: {
|
|
name: "Funder",
|
|
type: "refine",
|
|
param: "funder",
|
|
operator: "fn",
|
|
equalityOperator: " exact ",
|
|
filterType: "checkbox"
|
|
},
|
|
["relfundinglevel0_id"]: {
|
|
name: "Funding Stream",
|
|
type: "refine",
|
|
param: "funderlv0",
|
|
operator: "fn0",
|
|
equalityOperator: " exact ",
|
|
filterType: "checkbox"
|
|
},
|
|
["relfundinglevel1_id"]: {
|
|
name: "Funding Substream level 1",
|
|
type: "refine",
|
|
param: "funderlv1",
|
|
operator: "fn1",
|
|
equalityOperator: " exact ",
|
|
filterType: "checkbox"
|
|
},
|
|
["relfundinglevel2_id"]: {
|
|
name: "Funding Substream level 2",
|
|
type: "refine",
|
|
param: "funderlv2",
|
|
operator: "fn0",
|
|
equalityOperator: " exact ",
|
|
filterType: "checkbox"
|
|
},
|
|
["resultacceptanceyear"]: {
|
|
name: "Publication Date",
|
|
type: "keyword",
|
|
param: "year",
|
|
operator: "ya",
|
|
equalityOperator: " = ",
|
|
filterType: null
|
|
},
|
|
["resultdateofacceptance"]: {
|
|
name: "Publication Date",
|
|
type: "date",
|
|
param: "date",
|
|
operator: "dt",
|
|
equalityOperator: " within ",
|
|
filterType: null
|
|
},
|
|
["resultacceptanceyear-range-resultacceptanceyear"]: {
|
|
name: "Year range",
|
|
type: "keyword",
|
|
param: "year",
|
|
operator: "ya",
|
|
equalityOperator: " within ",
|
|
filterType: "range"
|
|
},
|
|
["resultbestaccessright"]: {
|
|
name: "Access",
|
|
type: "vocabulary",
|
|
param: "access",
|
|
operator: "ac",
|
|
equalityOperator: " exact ",
|
|
filterType: "radio"
|
|
},
|
|
["collectedfrom"]: {
|
|
name: "Collected From",
|
|
type: "refine",
|
|
param: "datasource",
|
|
operator: "cl",
|
|
equalityOperator: " exact ",
|
|
filterType: "checkbox"
|
|
},
|
|
["relorganizationid"]: {
|
|
name: "Organization",
|
|
type: "entity",
|
|
param: "organization",
|
|
operator: "og",
|
|
equalityOperator: " exact ",
|
|
filterType: null
|
|
},
|
|
["collectedfromdatasourceid"]: {
|
|
name: "Collected from "+OpenaireEntities.DATASOURCE,
|
|
type: "entity",
|
|
param: "collectedFrom",
|
|
operator: "cl",
|
|
equalityOperator: " exact ",
|
|
filterType: null
|
|
},
|
|
["resulttypeid"]: {
|
|
name: "Type",
|
|
type: "refine",
|
|
param: "types",
|
|
operator: "tp",
|
|
equalityOperator: " exact ",
|
|
filterType: "radio"
|
|
},
|
|
["country"]: {
|
|
name: "Country",
|
|
type: "refine",
|
|
param: "country",
|
|
operator: "cu",
|
|
equalityOperator: " exact ",
|
|
filterType: "checkbox"
|
|
},
|
|
["sdg"]: {
|
|
name: "SDG [Beta]",
|
|
type: "vocabulary",
|
|
param: "sdg",
|
|
operator: "sg",
|
|
equalityOperator: " exact ",
|
|
filterType: "checkbox"
|
|
},
|
|
["fos"]: {
|
|
name: "Field of Science [Beta]",
|
|
type: "vocabulary",
|
|
param: "fos",
|
|
operator: "fs",
|
|
equalityOperator: " exact ",
|
|
filterType: "checkbox"
|
|
}
|
|
};
|
|
|
|
//PROJECT
|
|
public PROJECT_RANGE_FIELDS = [
|
|
["projectendyear", "projectstartyear"]
|
|
];
|
|
public PROJECT_REFINE_FIELDS: string[] = ["funder", "fundinglevel0_id", "fundinglevel1_id",
|
|
"fundinglevel2_id", "projectstartyear", "projectendyear", "projectoamandatepublications"];
|
|
public PROJECT_ADVANCED_FIELDS: string[] = ["q", "projectacronym", "projecttitle", "projectkeywords",
|
|
"funder", "fundinglevel0_id", "fundinglevel1_id", "fundinglevel2_id",
|
|
"projectstartdate", "projectenddate",
|
|
"projectcode_nt", "relorganizationid", "collectedfromdatasourceid"];
|
|
public PROJECT_FIELDS: { [key: string]: FieldDetails } = {
|
|
["q"]: {name: "Any field", type: "keyword", param: "q", operator: "op", equalityOperator: "=", filterType: null},
|
|
["projectacronym"]: {
|
|
name: "Acronym",
|
|
type: "keyword",
|
|
param: "acronym",
|
|
operator: "ar",
|
|
equalityOperator: "=",
|
|
filterType: null
|
|
},
|
|
["projecttitle"]: {
|
|
name: "Title",
|
|
type: "keyword",
|
|
param: "title",
|
|
operator: "tt",
|
|
equalityOperator: "=",
|
|
filterType: null
|
|
},
|
|
["projectkeywords"]: {
|
|
name: "Keyword",
|
|
type: "keyword",
|
|
param: "keywords",
|
|
operator: "ky",
|
|
equalityOperator: "=",
|
|
filterType: null
|
|
},
|
|
|
|
["funder"]: {
|
|
name: "Funder",
|
|
type: "refine",
|
|
param: "funder",
|
|
operator: "fn",
|
|
equalityOperator: " exact ",
|
|
filterType: "checkbox"
|
|
},
|
|
["fundinglevel0_id"]: {
|
|
name: "Funding Stream",
|
|
type: "refine",
|
|
param: "funderlv0",
|
|
operator: "fn0",
|
|
equalityOperator: " exact ",
|
|
filterType: "checkbox"
|
|
},
|
|
["fundinglevel1_id"]: {
|
|
name: "Funding Substream level 1",
|
|
type: "refine",
|
|
param: "funderlv1",
|
|
operator: "fn1",
|
|
equalityOperator: " exact ",
|
|
filterType: "checkbox"
|
|
},
|
|
["fundinglevel2_id"]: {
|
|
name: "Funding Substream level 2",
|
|
type: "refine",
|
|
param: "funderlv2",
|
|
operator: "fn2",
|
|
equalityOperator: " exact ",
|
|
filterType: "checkbox"
|
|
},
|
|
["projectstartyear"]: {
|
|
name: "Start Year",
|
|
type: "year",
|
|
param: "startyear",
|
|
operator: "sy",
|
|
equalityOperator: " <= ",
|
|
filterType: "checkbox"
|
|
},
|
|
["projectendyear"]: {
|
|
name: "End Year",
|
|
type: "year",
|
|
param: "endyear",
|
|
operator: "ey",
|
|
equalityOperator: " >= ",
|
|
filterType: "checkbox"
|
|
},
|
|
["projectendyear-range-projectstartyear"]: {
|
|
name: "Active within",
|
|
type: "year",
|
|
param: "year",
|
|
operator: "ya",
|
|
equalityOperator: " = ",
|
|
filterType: "range"
|
|
},
|
|
["projectstartdate"]: {
|
|
name: "Start Date",
|
|
type: "date",
|
|
param: "startdate",
|
|
operator: "sd",
|
|
equalityOperator: " within ",
|
|
filterType: null
|
|
},
|
|
["projectenddate"]: {
|
|
name: "End Date",
|
|
type: "date",
|
|
param: "enddate",
|
|
operator: "ed",
|
|
equalityOperator: " within ",
|
|
filterType: null
|
|
},
|
|
// ["projectecsc39"]: {
|
|
// name: "Special Clause 39",
|
|
// type: "boolean",
|
|
// param: "sc39",
|
|
// operator: "sc",
|
|
// equalityOperator: " exact ",
|
|
// filterType: "radio"
|
|
// },
|
|
["projectoamandatepublications"]: {
|
|
name: "OA "+OpenaireEntities.PUBLICATIONS+" Mandate",
|
|
type: "boolean",
|
|
param: "oapubl",
|
|
operator: "oap",
|
|
equalityOperator: " exact ",
|
|
filterType: "radio"
|
|
},
|
|
["projectoamandatedata"]: {
|
|
name: "OA "+OpenaireEntities.DATASETS+" Mandate",
|
|
type: "boolean",
|
|
param: "oadata",
|
|
operator: "oad",
|
|
equalityOperator: " exact ",
|
|
filterType: "radio"
|
|
},
|
|
["projectcode_nt"]: {
|
|
name: "Project Code",
|
|
type: "keyword",
|
|
param: "code",
|
|
operator: "cd",
|
|
equalityOperator: " exact ",
|
|
filterType: null
|
|
},
|
|
["relorganizationid"]: {
|
|
name: "Organization",
|
|
type: "entity",
|
|
param: "organization",
|
|
operator: "og",
|
|
equalityOperator: " exact ",
|
|
filterType: null
|
|
},
|
|
["collectedfromdatasourceid"]: {
|
|
name: "Collected from "+OpenaireEntities.DATASOURCE,
|
|
type: "entity",
|
|
param: "collectedFrom",
|
|
operator: "cl",
|
|
equalityOperator: " exact ",
|
|
filterType: null
|
|
}
|
|
|
|
};
|
|
|
|
//DATAPROVIDERS
|
|
// add Collected From Filter "collectedfromname"
|
|
public DATASOURCE_REFINE_FIELDS: string[] = ["datasourcetypeuiname", "datasourceodlanguages", "datasourceodcontenttypes",
|
|
"datasourcecompatibilityname", "country", "collectedfromname","datasourcethematic",
|
|
"datasourcejurisdiction"];
|
|
public DATASOURCE_ADVANCED_FIELDS: string[] = ["q", "datasourceofficialname",
|
|
"datasourceenglishname", "datasourceodsubjects", "datasourcetypename", "datasourceodlanguages",
|
|
"datasourceodcontenttypes", "datasourcecompatibilityname", "relorganizationid", "collectedfromdatasourceid", "pid"];
|
|
|
|
public DATASOURCE_FIELDS: { [key: string]: FieldDetails } = {
|
|
["q"]: {name: "Any field", type: "keyword", param: "q", operator: "op", equalityOperator: "=", filterType: null},
|
|
["datasourceofficialname"]: {
|
|
name: "English name",
|
|
type: "keyword",
|
|
param: "officialname",
|
|
operator: "of",
|
|
equalityOperator: "=",
|
|
filterType: null
|
|
},
|
|
["datasourceenglishname"]: {
|
|
name: "Title",
|
|
type: "keyword",
|
|
param: "engname",
|
|
operator: "eg",
|
|
equalityOperator: "=",
|
|
filterType: null
|
|
},
|
|
["datasourceodsubjects"]: {
|
|
name: "Subject",
|
|
type: "keyword",
|
|
param: "subjects",
|
|
operator: "sb",
|
|
equalityOperator: "=",
|
|
filterType: null
|
|
},
|
|
["datasourcetypeuiid"]: {
|
|
name: "Type",
|
|
type: "refine",
|
|
param: "type",
|
|
operator: "tp",
|
|
equalityOperator: " exact ",
|
|
filterType: null
|
|
},
|
|
["datasourcetypeuiname"]: {
|
|
name: "Type",
|
|
type: "refine",
|
|
param: "type",
|
|
operator: "tp",
|
|
equalityOperator: " exact ",
|
|
filterType: "radio"
|
|
},
|
|
["datasourcetypename"]: {
|
|
name: "Type",
|
|
type: "vocabulary",
|
|
param: "type",
|
|
operator: "tp",
|
|
equalityOperator: " exact ",
|
|
filterType: "radio"
|
|
},
|
|
["datasourceodlanguages"]: {
|
|
name: "Language",
|
|
type: "vocabulary",
|
|
param: "lang",
|
|
operator: "ln",
|
|
equalityOperator: " exact ",
|
|
filterType: "checkbox"
|
|
},
|
|
["datasourceodcontenttypes"]: {
|
|
name: "Content",
|
|
type: "refine",
|
|
param: "content",
|
|
operator: "cn",
|
|
equalityOperator: " exact ",
|
|
filterType: "checkbox"
|
|
},
|
|
["datasourcecompatibilityid"]: {
|
|
name: "Compatibility Level",
|
|
type: "refine",
|
|
param: "compatibility",
|
|
operator: "cm",
|
|
equalityOperator: " exact ",
|
|
filterType: null
|
|
},
|
|
["datasourcecompatibilityname"]: {
|
|
name: "Compatibility Level",
|
|
type: "vocabulary",
|
|
param: "compatibility",
|
|
operator: "cm",
|
|
equalityOperator: " exact ",
|
|
filterType: "checkbox"
|
|
},
|
|
["relorganizationid"]: {
|
|
name: "Organization",
|
|
type: "entity",
|
|
param: "organization",
|
|
operator: "og",
|
|
equalityOperator: " exact ",
|
|
filterType: null
|
|
},
|
|
["collectedfromname"]: {
|
|
name: "Collected from",
|
|
type: "entity",
|
|
param: "collectedFrom",
|
|
operator: "cl",
|
|
equalityOperator: " exact ",
|
|
filterType: "checkbox"
|
|
},
|
|
["collectedfromdatasourceid"]: {
|
|
name: "Collected from "+OpenaireEntities.DATASOURCE,
|
|
type: "entity",
|
|
param: "collectedFrom",
|
|
operator: "cl",
|
|
equalityOperator: " exact ",
|
|
filterType: null
|
|
},
|
|
["country"]: {
|
|
name: "Country",
|
|
type: "vocabulary",
|
|
param: "country",
|
|
operator: "cu",
|
|
equalityOperator: " exact ",
|
|
filterType: "checkbox"
|
|
},
|
|
["datasourcethematic"]: {
|
|
name: "Thematic",
|
|
type: "boolean",
|
|
param: "thematic",
|
|
operator: "th",
|
|
equalityOperator: " exact ",
|
|
filterType: "radio"
|
|
},
|
|
["datasourcejurisdiction"]: {
|
|
name: "Jurisdiction",
|
|
type: "vocabulary",
|
|
param: "jurisdiction",
|
|
operator: "ju",
|
|
equalityOperator: " exact ",
|
|
filterType: "checkbox"
|
|
},
|
|
["pid"]: {name: "PID", type: "keyword", param: "pid", operator: "pd", equalityOperator: " exact ", filterType: null}
|
|
};
|
|
|
|
public DEPOSIT_DATASOURCE_KEYWORD_FIELDS: { "name": string, "equalityOperator": string } [] = [
|
|
{"name": "relorganizationname", "equalityOperator": "="},
|
|
{"name": "relorganizationshortname", "equalityOperator": "="},
|
|
{"name": "datasourceofficialname", "equalityOperator": "="},
|
|
{"name": "datasourceenglishname", "equalityOperator": "="},
|
|
{"name": "datasourcetypeuiname", "equalityOperator": " exact "},
|
|
{"name": "country", "equalityOperator": " exact "},
|
|
{"name": "datasourcesubject", "equalityOperator": " all "}
|
|
];
|
|
public DEPOSIT_DATASOURCE_REFINE_FIELDS: string[] = ["datasourcetypename", "country", "datasourceodsubjects", "datasourceodcontenttypes", "datasourcecompatibilityname","datasourcethematic", "datasourcejurisdiction"];
|
|
|
|
public DEPOSIT_DATASOURCE_FIELDS: { [key: string]: FieldDetails } = {
|
|
["datasourcetypeuiname"]: {
|
|
name: "Repository type",
|
|
type: "refine",
|
|
param: "type",
|
|
operator: "tp",
|
|
equalityOperator: " exact ",
|
|
filterType: "radio"
|
|
},
|
|
["country"]: {
|
|
name: "Countries",
|
|
type: "vocabulary",
|
|
param: "country",
|
|
operator: "cu",
|
|
equalityOperator: " exact ",
|
|
filterType: "checkbox"
|
|
},
|
|
["datasourceodsubjects"]: {
|
|
name: "Subjects",
|
|
type: "keyword",
|
|
param: "subjects",
|
|
operator: "sb",
|
|
equalityOperator: "=",
|
|
filterType: "checkbox"
|
|
},
|
|
["datasourceodcontenttypes"]: {
|
|
name: "Content type",
|
|
type: "refine",
|
|
param: "content",
|
|
operator: "cn",
|
|
equalityOperator: " exact ",
|
|
filterType: "checkbox"
|
|
},
|
|
["datasourcecompatibilityname"]: {
|
|
name: "Compatibility Level",
|
|
type: "vocabulary",
|
|
param: "compatibility",
|
|
operator: "cm",
|
|
equalityOperator: " exact ",
|
|
filterType: "checkbox"
|
|
},
|
|
};
|
|
|
|
// public COMPATIBLE_DATAPROVIDER_FIELDS: string[] = ["datasourcetypename", "datasourcecompatibilityname"];
|
|
public COMPATIBLE_DATAPROVIDER_FIELDS: string[] = ["datasourcetypename", "datasourceodlanguages", "datasourceodcontenttypes",
|
|
"datasourcecompatibilityname", "country", "collectedfromname","datasourcethematic",
|
|
"datasourcejurisdiction"];
|
|
// public ENTITY_REGISTRIES_FIELDS: string[] = ["datasourcetypename", "datasourcecompatibilityname"];
|
|
public ENTITY_REGISTRIES_FIELDS: string[] = ["datasourcetypename", "datasourceodlanguages", "datasourceodcontenttypes",
|
|
"datasourcecompatibilityname", "country", "collectedfromname","datasourcethematic",
|
|
"datasourcejurisdiction"];
|
|
// public JOURNAL_FIELDS: string[] = ["datasourcetypename", "datasourcecompatibilityname"];
|
|
public JOURNAL_FIELDS: string[] = ["datasourcetypename", "datasourceodlanguages", "datasourceodcontenttypes",
|
|
"datasourcecompatibilityname", "country", "collectedfromname","datasourcethematic",
|
|
"datasourcejurisdiction"];
|
|
|
|
|
|
//ORGANIZATION
|
|
|
|
public ORGANIZATION_REFINE_FIELDS: string[] = ["country"]
|
|
public ORGANIZATION_ADVANCED_FIELDS: string[] = ["q", "organizationlegalname", "organizationlegalshortname", "country"];
|
|
|
|
public ORGANIZATION_FIELDS: { [key: string]: FieldDetails } = {
|
|
["q"]: {name: "Any field", type: "keyword", param: "q", operator: "op", equalityOperator: "=", filterType: null},
|
|
["organizationlegalname"]: {
|
|
name: "Legal Name",
|
|
type: "keyword",
|
|
param: "name",
|
|
operator: "nm",
|
|
equalityOperator: "=",
|
|
filterType: null
|
|
},
|
|
["organizationlegalshortname"]: {
|
|
name: "Legal Short Name",
|
|
type: "keyword",
|
|
param: "shortname",
|
|
operator: "so",
|
|
equalityOperator: "=",
|
|
filterType: null
|
|
},
|
|
["country"]: {
|
|
name: "Country",
|
|
type: "vocabulary",
|
|
param: "country",
|
|
operator: "cu",
|
|
equalityOperator: " exact ",
|
|
filterType: "checkbox"
|
|
},
|
|
};
|
|
// public ORGANIZATION_INDEX:string[] = ["organizationcountryname"]//,"organizationeclegalbody"];
|
|
// public ADVANCED_SEARCH_ORGANIZATION_PARAM:string[] = ["q","contenttype","compatibility","country","type"];
|
|
// public ORGANIZATION_INDEX_PARAM_MAP:{ [key:string]:string } = {["organizationlegalname"]:"contenttype", ["organizationlegalshortname"]:"type",
|
|
// ["organizationcountryname"]:"country"};//,["organizationeclegalbody"]:"type"};
|
|
// public ORGANIZATION_FIELDS_MAP: { [key:string]:{ name:string, operator:string, type:string, indexField:string , operator: "op", equalityOperator:string}} ={
|
|
// ["q"]:{name:"Any field",operator:"op", type:"keyword", indexField:null, operator: "op", equalityOperator: "="},
|
|
// ["contenttype"]:{name:"Legal Name",operator:"cn", type:"keyword" , indexField:"organizationlegalname", operator: "op", equalityOperator: "="},
|
|
// ["compatibility"]:{name:"Legal Short Name",operator:"cm", type:"keyword", indexField:"organizationlegalshortname", operator: "op", equalityOperator: "="},
|
|
// ["country"]:{name:"Country",operator:"cu", type:"vocabulary", indexField:"organizationcountryname", operator: "op", equalityOperator: " exact "},
|
|
// ["type"]:{name:"Type",operator:"tp", type:"refine", indexField:"organizationeclegalbody", operator: "op", equalityOperator: " exact "},
|
|
//
|
|
// };
|
|
|
|
|
|
//add project field depending on funder
|
|
public HIDDEN_FIELDS: string[] = ["fundinglevel0_id", "fundinglevel1_id", "fundinglevel2_id",
|
|
"relfundinglevel0_id", "relfundinglevel1_id", "relfundinglevel2_id", "relproject"];
|
|
|
|
public DEPENDENT_FIELDS: { [key: string]: string } = {
|
|
["relproject"]: "relfunder",
|
|
["fundinglevel0_id"]: "funder",
|
|
["fundinglevel1_id"]: "fundinglevel0_id",
|
|
["fundinglevel2_id"]: "fundinglevel1_id",
|
|
["relfundinglevel0_id"]: "relfunder",
|
|
["relfundinglevel1_id"]: "relfundinglevel0_id",
|
|
["relfundinglevel2_id"]: "relfundinglevel1_id"
|
|
};
|
|
|
|
|
|
public ADVANCED_SEARCH_OPERATORS: string[] = ["and", "or"];
|
|
|
|
public COMMUNITIES_SEARCH_FIELDS: string[] = ["type", "access", "role"];
|
|
|
|
public STAKEHOLDER_SEARCH_FIELDS: string[] = ["type", "access", "role"];
|
|
|
|
constructor() {
|
|
}
|
|
getField(fieldId: string, fieldType: string): any {
|
|
if (fieldType == "publication" || fieldType == "dataset" || fieldType == "software" || fieldType == "other" || fieldType == "result") {
|
|
return this.RESULT_FIELDS[fieldId];
|
|
} else if (fieldType == "project") {
|
|
return this.PROJECT_FIELDS[fieldId];
|
|
} else if (fieldType == "organization") {
|
|
return this.ORGANIZATION_FIELDS[fieldId];
|
|
} else if (fieldType == "datasource" || fieldType == "dataprovider") {
|
|
return this.DATASOURCE_FIELDS[fieldId];
|
|
} else if (fieldType == "service") {
|
|
return this.DATASOURCE_FIELDS[fieldId];
|
|
} else {
|
|
return null;
|
|
}
|
|
}
|
|
getFieldName(fieldId: string, fieldType: string): string {
|
|
let field = this.getField(fieldId, fieldType);
|
|
return field?field.name:"UNDEFINED";
|
|
}
|
|
|
|
sortFieldsByName(fieldIds: string[], fieldIdsMap: { [key: string]: FieldDetails }) {
|
|
fieldIds.sort((a: string, b: string) => {
|
|
if(a == "q") {
|
|
return -1;
|
|
} else if(b == "q") {
|
|
return 1;
|
|
}
|
|
let nameA: string = fieldIdsMap[a].name;
|
|
let nameB: string = fieldIdsMap[b].name;
|
|
return nameA.localeCompare(nameB);
|
|
})
|
|
}
|
|
|
|
getFieldFilterType(fieldId: string, fieldType: string, usedBy: string = "search"): string {
|
|
let field = this.getField(fieldId, fieldType);
|
|
return field?field.filterType:"checkbox";
|
|
}
|
|
|
|
getFieldParam(fieldId: string, fieldType: string): string {
|
|
let field = this.getField(fieldId, fieldType);
|
|
return field?field.param:"UNDEFINED";
|
|
}
|
|
public static getParameterOrder(fieldId: string, params): number {
|
|
let fields = [];
|
|
let searchFields = new SearchFields();
|
|
if (searchFields.RESULT_REFINE_FIELDS.indexOf(fieldId) !=-1) {
|
|
fields = searchFields.RESULT_REFINE_FIELDS;
|
|
} else if (searchFields.PROJECT_REFINE_FIELDS.indexOf(fieldId) !=-1) {
|
|
fields = searchFields.PROJECT_REFINE_FIELDS
|
|
} else if (searchFields.ORGANIZATION_REFINE_FIELDS.indexOf(fieldId) !=-1) {
|
|
fields = searchFields.ORGANIZATION_REFINE_FIELDS;
|
|
} else if (searchFields.DATASOURCE_REFINE_FIELDS.indexOf(fieldId) !=-1) {
|
|
fields = searchFields.DATASOURCE_REFINE_FIELDS;
|
|
}
|
|
let index = fields.indexOf(fieldId);
|
|
let paramIndex = 0;
|
|
if(index != -1){
|
|
for(let keyValue of params){
|
|
if(fields.indexOf(keyValue[0])>index){
|
|
break;
|
|
}
|
|
paramIndex++
|
|
}
|
|
}
|
|
return paramIndex;
|
|
}
|
|
/*
|
|
AND
|
|
Funder: relfunder, relfundinglevel0_id, relfundinglevel1_id, relfundinglevel2_id
|
|
Project: relproject
|
|
Community: community
|
|
OR
|
|
Type: instancetypename, datasourcetypeuiname
|
|
Language: resultlanguagename, datasourceodlanguages
|
|
Compatibility Level: datasourcecompatibilityname
|
|
Country: country
|
|
Content: datasourceodcontenttypes
|
|
Datasource: resulthostingdatasource
|
|
Collected From: collectedfrom
|
|
BULLETS
|
|
Access Mode: resultbestaccessright
|
|
Special Clause 39: projectecsc39
|
|
Versioning:
|
|
|
|
RANGE
|
|
Publication date: resultacceptanceyear
|
|
Project life: projectstartyear, projectendyear
|
|
|
|
? WHAT ABOUT ?:
|
|
Subjects:
|
|
Supported Identifiers:
|
|
*/
|
|
|
|
getFieldOperator(fieldId: string): string {
|
|
if (fieldId == "relfunder" || fieldId == "relfundinglevel0_id" || fieldId == "relfundinglevel1_id" || fieldId == "relfundinglevel2_id"
|
|
|| fieldId == "relproject" || fieldId == "community" || fieldId == "projectendyear-range-projectstartyear") {
|
|
return "and";
|
|
} else if (fieldId == "instancetypename" || fieldId == "datasourcetypeuiname"
|
|
|| fieldId == "resultlanguagename" || fieldId == "datasourceodlanguages"
|
|
|| fieldId == "datasourcecompatibilityname" || fieldId == "country" || fieldId == "datasourceodcontenttypes"
|
|
|| fieldId == "resulthostingdatasource" || fieldId == "collectedfrom") {
|
|
return "or";
|
|
}
|
|
return "or";
|
|
}
|
|
}
|
|
|
|
export class FieldDetails {
|
|
name: string;
|
|
type: string;
|
|
param: string;
|
|
equalityOperator: string;
|
|
operator: string;
|
|
filterType: string = "checkbox";
|
|
}
|
|
|
|
export enum OpenaireEntities {
|
|
RESULTS = "Research products",
|
|
PUBLICATIONS = "Publications",
|
|
DATASETS = "Research data",
|
|
SOFTWARE = "Research software",
|
|
OTHER = "Other research products",
|
|
PROJECTS = "Projects",
|
|
ORGANIZATIONS = "Organizations",
|
|
DATASOURCES = "Data sources",
|
|
SERVICES = "Services",
|
|
COMMUNITIES = "Research communities",
|
|
|
|
RESULT = "Research product",
|
|
PUBLICATION = "Publication",
|
|
DATASET = "Research data",
|
|
SOFTWARE_SINGULAR = "Research software",
|
|
OTHER_SINGULAR = "Other research product",
|
|
PROJECT = "Project",
|
|
ORGANIZATION = "Organization",
|
|
DATASOURCE = "Data source",
|
|
SERVICE = "Service",
|
|
COMMUNITY = "Research community",
|
|
|
|
RESULTS_FILE = "research-products",
|
|
PUBLICATIONS_FILE = "publications",
|
|
DATASETS_FILE = "research-data",
|
|
SOFTWARE_FILE = "research-software",
|
|
OTHER_FILE = "other-research-products",
|
|
PROJECTS_FILE = "projects",
|
|
ORGANIZATIONS_FILE = "organizations",
|
|
DATASOURCES_FILE = "data-sources",
|
|
SERVICES_FILE = "services",
|
|
}
|