From 3bda71b818fcea2c85abba2efcf3d5052c6196fe Mon Sep 17 00:00:00 2001 From: "konstantina.galouni" Date: Wed, 6 Dec 2023 13:50:11 +0200 Subject: [PATCH 1/2] [develop | DONE | CHANGED]: Added file searchFields.base.ts to be extended by existing SearchFields class (searchFields.ts file) - searchFields.ts will be replaced by custom file if needed in angular.json. --- utils/properties/searchFields.base.ts | 836 ++++++++++++++++++++++++++ utils/properties/searchFields.ts | 836 +------------------------- 2 files changed, 838 insertions(+), 834 deletions(-) create mode 100644 utils/properties/searchFields.base.ts diff --git a/utils/properties/searchFields.base.ts b/utils/properties/searchFields.base.ts new file mode 100644 index 00000000..12601615 --- /dev/null +++ b/utils/properties/searchFields.base.ts @@ -0,0 +1,836 @@ +import {properties} from "../../../../environments/environment"; +import {OpenaireEntities} from "./searchFields"; + +export class SearchFieldsBase { + + //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", properties.environment!='production'?"foslabel":'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", "eoscifguidelines", "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 + }, + ["eoscifguidelines"]: { + name: "EOSC Subject", + type: "refine", + param: "eoscSubj", + operator: "es", + equalityOperator: " exact ", + 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" + }, + ["foslabel"]: { + name: "Field of Science [Beta]", + type: "vocabulary", + param: "foslabel", + operator: "fl", + equalityOperator: " exact ", + filterType: "checkbox" + } + }; + + //PROJECT + public PROJECT_RANGE_FIELDS = [ + ["projectendyear", "projectstartyear"] + ]; + public PROJECT_REFINE_FIELDS: string[] = ["funder", "fundinglevel0_id", "fundinglevel1_id", + "fundinglevel2_id", "projectoamandatepublications", "projectstartyear", "projectendyear"]; + 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[] = ["eoscdatasourcetype", "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" + }, + ["eoscdatasourcetype"]: { + 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": "eoscdatasourcetype", "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" + }, + ["eoscdatasourcetype"]: { + 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", "instancetypename"]; + + 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", + ["instancetypename"]: "type" + }; + + + public ADVANCED_SEARCH_OPERATORS: string[] = ["and", "or"]; + + public COMMUNITIES_SEARCH_FIELDS: string[] = ["type", "access", "role"]; + + public STAKEHOLDER_SEARCH_FIELDS: string[] = ["type", "access", "role"]; + + constructor() { + } + + getResultAdvancedFields() { + // if(properties.environment == "production") { + // this.RESULT_ADVANCED_FIELDS = this.RESULT_ADVANCED_FIELDS.filter((value, index, array) => { + // return value != "eoscifguidelines"; + // }) + // } + return this.RESULT_ADVANCED_FIELDS; + } + + 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"; + } + + /* + 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 == "eoscdatasourcetype" + || 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"; +} diff --git a/utils/properties/searchFields.ts b/utils/properties/searchFields.ts index 65ca6a4b..48d719b5 100644 --- a/utils/properties/searchFields.ts +++ b/utils/properties/searchFields.ts @@ -1,789 +1,6 @@ -import {Filter} from "../../searchPages/searchUtils/searchHelperClasses.class"; -import {properties} from "../../../../environments/environment"; +import {SearchFieldsBase} from "src/app/openaireLibrary/utils/properties/searchFields.base"; -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", properties.environment!='production'?"foslabel":'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", "eoscifguidelines", "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 - }, - ["eoscifguidelines"]: { - name: "EOSC Subject", - type: "refine", - param: "eoscSubj", - operator: "es", - equalityOperator: " exact ", - 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" - }, - ["foslabel"]: { - name: "Field of Science [Beta]", - type: "vocabulary", - param: "foslabel", - operator: "fl", - equalityOperator: " exact ", - filterType: "checkbox" - } - }; - - //PROJECT - public PROJECT_RANGE_FIELDS = [ - ["projectendyear", "projectstartyear"] - ]; - public PROJECT_REFINE_FIELDS: string[] = ["funder", "fundinglevel0_id", "fundinglevel1_id", - "fundinglevel2_id", "projectoamandatepublications", "projectstartyear", "projectendyear"]; - 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[] = ["eoscdatasourcetype", "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" - }, - ["eoscdatasourcetype"]: { - 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": "eoscdatasourcetype", "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" - }, - ["eoscdatasourcetype"]: { - 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", "instancetypename"]; - - 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", - ["instancetypename"]: "type" - }; - - - public ADVANCED_SEARCH_OPERATORS: string[] = ["and", "or"]; - - public COMMUNITIES_SEARCH_FIELDS: string[] = ["type", "access", "role"]; - - public STAKEHOLDER_SEARCH_FIELDS: string[] = ["type", "access", "role"]; - - constructor() { - } - - getResultAdvancedFields() { - // if(properties.environment == "production") { - // this.RESULT_ADVANCED_FIELDS = this.RESULT_ADVANCED_FIELDS.filter((value, index, array) => { - // return value != "eoscifguidelines"; - // }) - // } - return this.RESULT_ADVANCED_FIELDS; - } - - 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"; - } +export class SearchFields extends SearchFieldsBase { public static getParameterOrder(fieldId: string, params): number { let fields = []; @@ -809,55 +26,6 @@ export class SearchFields { } 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 == "eoscdatasourcetype" - || 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 { From 9913da1f4392aaff3a02a8e8c861a907b85e6a43 Mon Sep 17 00:00:00 2001 From: "konstantina.galouni" Date: Wed, 6 Dec 2023 13:53:06 +0200 Subject: [PATCH 2/2] [develop | DONE | FIXED]: refineResults.class.ts: Removed unused import FieldDetails. --- services/servicesUtils/refineResults.class.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/servicesUtils/refineResults.class.ts b/services/servicesUtils/refineResults.class.ts index 29bc5fbf..b2f67501 100644 --- a/services/servicesUtils/refineResults.class.ts +++ b/services/servicesUtils/refineResults.class.ts @@ -1,6 +1,6 @@ import { Filter, Value} from '../../searchPages/searchUtils/searchHelperClasses.class'; -import { SearchFields, FieldDetails} from '../../utils/properties/searchFields'; +import { SearchFields} from '../../utils/properties/searchFields'; export class RefineResultsUtils {