Project

General

Profile

1
export class SearchFields {
2

    
3
    //main Entities
4
    //RESULTS
5
    //Used for datasets and publications and software and orp
6
    //In case Datasets or Software should display  different fields, use seperate tables for fields
7
    public RESULT_REFINE_FIELDS = [
8
      "relfunder",
9
    "relfundinglevel0_id","relfundinglevel1_id","relfundinglevel2_id",
10
    "relproject","resultacceptanceyear",
11
   "resultbestaccessright", "instancetypename", "resultlanguagename", "community","resulthostingdatasource","collectedfrom" ];
12

    
13
     public RESULT_ADVANCED_FIELDS:string[] = ["q","resulttitle","resultauthor","resultsubject","resultpublisher",
14
     "resultbestaccessright","community","collectedfromdatasourceid","resulthostingdatasourceid", "resultdateofacceptance",
15
          "relfunder",
16
     "relfundinglevel0_id","relfundinglevel1_id","relfundinglevel2_id",
17
     "resultlanguagename", "relorganizationid", "pid","relprojectid", "instancetypename", "authorid"];
18
          public RESULT_FIELDS: { [key:string]:FieldDetails}={
19
           ["q"]:{name:"All fields", type:"keyword", param:"q", operator: "op", equalityOperator: "="},
20
         ["resulttitle"]:{name:"Title", type:"keyword", param:"title", operator: "tt", equalityOperator: "="},
21
         ["resultauthor"]:{name:"Author", type:"keyword", param:"author", operator: "at", equalityOperator: "="},
22
         ["authorid"]:{name:"Author ORCID", type:"keyword", param:"orcid", operator: "oc", equalityOperator: " exact "},
23
         ["resultsubject"]:{name:"Subject", type:"keyword", param:"subject", operator: "sb", equalityOperator: "="},
24
         ["resultpublisher"]:{name:"Publisher", type:"keyword", param:"publisher", operator: "pb", equalityOperator: "="},
25
         ["pid"]:{name:"PID", type:"keyword", param:"pid", operator: "pd", equalityOperator: " = "},
26
         ["resulthostingdatasourceid"]:{name:"Hosting Content Provider", type:"entity", param:"hostedBy", operator: "hs", equalityOperator: " exact "},
27
         ["resulthostingdatasource"]:{name:"Content Provider", type:"refine", param:"hostedBy", operator: "hs", equalityOperator: " exact "},
28
         ["instancetypename"]:{name:"Type", type:"vocabulary", param:"type", operator: "tp", equalityOperator: " exact "},
29
         ["resultlanguagename"]:{name:"Language", type:"vocabulary", param:"lang", operator: "ln", equalityOperator: " exact "},
30
         ["community"]:{name:"Community", type:"refine", param:"community", operator: "cm", equalityOperator: " exact "},
31
         ["relproject"]:{name:"Project", type:"refine", param:"project", operator: "po", equalityOperator: " exact "},
32
         ["relprojectid"]:{name:"Project", type:"entity", param:"project", operator: "po", equalityOperator: " exact "},
33
         ["relfunder"]:{name:"Funder", type:"refine", param:"funder", operator: "fn", equalityOperator: " exact "},
34
         ["relfundinglevel0_id"]:{name:"Funding Stream", type:"refine", param:"funderlv0", operator: "fn0", equalityOperator: " exact "},
35
         ["relfundinglevel1_id"]:{name:"Funding Substream level 1", type:"refine", param:"funderlv1", operator: "fn1", equalityOperator: " exact "},
36
         ["relfundinglevel2_id"]:{name:"Funding Substream level 2", type:"refine", param:"funderlv2", operator: "fn0", equalityOperator: " exact "},
37
         ["resultacceptanceyear"]:{name:"Publication Date", type:"keyword", param:"year", operator: "ya", equalityOperator: " exact "},
38
         ["resultdateofacceptance"]:{name:"Publication Date", type:"date", param:"date", operator: "dt", equalityOperator: " within "},
39
         ["resultbestaccessright"]:{name:"Access Mode", type:"vocabulary", param:"access", operator: "ac", equalityOperator: " exact "},
40
         ["collectedfrom"]:{name:"Collected From", type:"refine", param:"datasource", operator: "cl", equalityOperator: " exact "},
41
         ["relorganizationid"]:{name:"Organization", type:"entity", param:"organization", operator: "og", equalityOperator: " exact "},
42
         ["collectedfromdatasourceid"]:{name:"Collected from Content Provider", type:"entity", param:"collectedFrom", operator: "cl", equalityOperator: " exact "}
43
                };
44

    
45
      //PROJECT
46

    
47
      public PROJECT_REFINE_FIELDS:string[] =  ["funder","fundinglevel0_id","fundinglevel1_id",
48
      "fundinglevel2_id","projectstartyear","projectendyear","projectecsc39"];
49
    public PROJECT_ADVANCED_FIELDS:string[] =  ["q","projectacronym","projecttitle","projectkeywords",
50
    "funder",  "fundinglevel0_id","fundinglevel1_id",  "fundinglevel2_id",
51
    "projectstartdate","projectenddate","projectecsc39",
52
    "projectcode_nt","relorganizationid", "collectedfromdatasourceid"];
53
    public PROJECT_FIELDS: { [key:string]:FieldDetails}={
54
       ["q"]:{name:"All fields", type:"keyword", param:"q", operator: "op", equalityOperator: "="},
55
       ["projectacronym"]:{name:"Acronym", type:"keyword", param:"acronym", operator: "ar", equalityOperator: "="},
56
       ["projecttitle"]:{name:"Title", type:"keyword", param:"title", operator: "tt", equalityOperator: "="},
57
       ["projectkeywords"]:{name:"Keywords", type:"keyword", param:"keywords", operator: "ky", equalityOperator: "="},
58

    
59
       ["funder"]:{name:"Funder", type:"refine", param:"funder", operator: "fn", equalityOperator: " exact "},
60
       ["fundinglevel0_id"]:{name:"Funding Stream", type:"refine", param:"funderlv0", operator: "fn0", equalityOperator: " exact "},
61
       ["fundinglevel1_id"]:{name:"Funding Substream level 1", type:"refine", param:"funderlv1", operator: "fn1", equalityOperator: " exact "},
62
       ["fundinglevel2_id"]:{name:"Funding Substream level 2", type:"refine", param:"funderlv2", operator: "fn2", equalityOperator: " exact "},
63
       ["projectstartyear"]:{name:"Start Year", type:"year", param:"startyear", operator: "sy", equalityOperator: " exact "},
64
       ["projectendyear"]:{name:"End Year", type:"year", param:"endyear", operator: "ey", equalityOperator: " exact "},
65
       ["projectstartdate"]:{name:"Start Date", type:"date", param:"startdate", operator: "sd", equalityOperator: " within "},
66
       ["projectenddate"]:{name:"End Date", type:"date", param:"enddate", operator: "ed", equalityOperator: " within "},
67
       ["projectecsc39"]:{name:"Special Clause 39", type:"boolean", param:"sc39", operator: "sc", equalityOperator: " exact "},
68
       ["projectcode_nt"]:{name:"Project Code", type:"keyword", param:"code", operator: "cd", equalityOperator: " exact "},
69
       ["relorganizationid"]:{name:"Organization", type:"entity", param:"organization", operator: "og", equalityOperator: " exact "},
70
       ["collectedfromdatasourceid"]:{name:"Collected from Content Provider", type:"entity", param:"collectedFrom", operator: "cl", equalityOperator: " exact "}
71

    
72
     };
73

    
74
       //DATAPROVIDERS
75

    
76
       public DATASOURCE_REFINE_FIELDS:string[] =  ["datasourcetypeuiname", "datasourceodlanguages", "datasourceodcontenttypes",
77
         "datasourcecompatibilityname"];
78
         public DATASOURCE_ADVANCED_FIELDS:string[] = ["q", "datasourceofficialname",
79
         "datasourceenglishname","datasourceodsubjects", "datasourcetypename","datasourceodlanguages",
80
         "datasourceodcontenttypes", "datasourcecompatibilityname","relorganizationid", "collectedfromdatasourceid"];
81

    
82
         public DATASOURCE_FIELDS: { [key:string]:FieldDetails}={
83
              ["q"]:{name:"All fields", type:"keyword", param:"q", operator: "op", equalityOperator: "="},
84
              ["datasourceofficialname"]:{name:"English name", type:"keyword", param:"officialname", operator: "of", equalityOperator: "="},
85
              ["datasourceenglishname"]:{name:"Title", type:"keyword", param:"engname", operator: "eg", equalityOperator: "="},
86
              ["datasourceodsubjects"]:{name:"Subject", type:"keyword", param:"subjects", operator: "sb", equalityOperator: "="},
87
              ["datasourcetypeuiid"]:{name:"Type", type:"refine", param:"type", operator: "tp", equalityOperator: " exact "},
88
              ["datasourcetypeuiname"]:{name:"Type", type:"refine", param:"type", operator: "tp", equalityOperator: " exact "},
89
              ["datasourcetypename"]:{name:"Type", type:"vocabulary", param:"type", operator: "tp", equalityOperator: " exact "},
90
              ["datasourceodlanguages"]:{name:"Language", type:"vocabulary", param:"lang", operator: "ln", equalityOperator: " exact "},
91
              ["datasourceodcontenttypes"]:{name:"Content", type:"refine", param:"content", operator: "cn", equalityOperator: " exact "},
92
              ["datasourcecompatibilityid"]:{name:"Compatibility Level", type:"refine", param:"compatibility", operator: "cm", equalityOperator: " exact "},
93
              ["datasourcecompatibilityname"]:{name:"Compatibility Level", type:"vocabulary", param:"compatibility", operator: "cm", equalityOperator: " exact "},
94
              ["relorganizationid"]:{name:"Organization", type:"entity", param:"organization", operator: "og", equalityOperator: " exact "},
95
              ["collectedfromdatasourceid"]:{name:"Collected from Content Provider", type:"entity", param:"collectedFrom", operator: "cl", equalityOperator: " exact "}
96
            };
97

    
98
          public COMPATIBLE_DATAPROVIDER_FIELDS:string[] = ["datasourcetypeuiid","datasourcecompatibilityname"];
99
          public ENTITY_REGISTRIES_FIELDS:string[] = ["datasourcetypename","datasourcecompatibilityname"];
100
          public JOURNAL_FIELDS:string[] = ["datasourcetypeuiid","datasourcecompatibilityname"];
101

    
102
         //ORGANIZATION
103

    
104
         public ORGANIZATION_REFINE_FIELDS:string[] = ["organizationcountryname"]
105
     public ORGANIZATION_ADVANCED_FIELDS:string[] = ["q", "organizationlegalname","organizationlegalshortname","organizationcountryname"];
106

    
107
     public ORGANIZATION_FIELDS: { [key:string]:FieldDetails}={
108
                ["q"]:{name:"All fields", type:"keyword", param:"q", operator:"op", equalityOperator: "="},
109
                ["organizationlegalname"]:{name:"Legal Name", type:"keyword", param:"name", operator: "nm", equalityOperator: "="},
110
                ["organizationlegalshortname"]:{name:"Legal Short Name", type:"keyword", param:"shortname", operator: "so", equalityOperator: "="},
111
                ["organizationcountryname"]:{name:"Country", type:"vocabulary", param:"country", operator: "cu", equalityOperator: "="},
112
              };
113
        //  public ORGANIZATION_INDEX:string[] = ["organizationcountryname"]//,"organizationeclegalbody"];
114
        // public ADVANCED_SEARCH_ORGANIZATION_PARAM:string[] = ["q","contenttype","compatibility","country","type"];
115
          //  public ORGANIZATION_INDEX_PARAM_MAP:{ [key:string]:string } = {["organizationlegalname"]:"contenttype", ["organizationlegalshortname"]:"type",
116
          //   ["organizationcountryname"]:"country"};//,["organizationeclegalbody"]:"type"};
117
          // public ORGANIZATION_FIELDS_MAP: { [key:string]:{ name:string, operator:string, type:string, indexField:string , operator: "op", equalityOperator:string}} ={
118
          // ["q"]:{name:"All fields",operator:"op", type:"keyword", indexField:null, operator: "op", equalityOperator: "="},
119
          // ["contenttype"]:{name:"Legal Name",operator:"cn", type:"keyword" , indexField:"organizationlegalname", operator: "op", equalityOperator: "="},
120
          // ["compatibility"]:{name:"Legal Short Name",operator:"cm", type:"keyword", indexField:"organizationlegalshortname", operator: "op", equalityOperator: "="},
121
          // ["country"]:{name:"Country",operator:"cu", type:"vocabulary", indexField:"organizationcountryname", operator: "op", equalityOperator: " exact "},
122
          // ["type"]:{name:"Type",operator:"tp", type:"refine", indexField:"organizationeclegalbody", operator: "op", equalityOperator: " exact "},
123
          //
124
          // };
125

    
126

    
127

    
128
     public HIDDEN_FIELDS:string[] = ["fundinglevel0_id","fundinglevel1_id","fundinglevel2_id",
129
     "relfundinglevel0_id","relfundinglevel1_id","relfundinglevel2_id"];
130

    
131
     public DEPENDENT_FIELDS: { [key:string]:string } = {["fundinglevel0_id"]:"funder",
132
     ["fundinglevel1_id"]:"fundinglevel0_id", ["fundinglevel2_id"]:"fundinglevel1_id", ["relfundinglevel0_id"]:"relfunder",
133
     ["relfundinglevel1_id"]:"relfundinglevel0_id", ["relfundinglevel2_id"]:"relfundinglevel1_id"};
134

    
135

    
136
      public ADVANCED_SEARCH_OPERATORS:{name:string, id:string}[] = [{name:"AND",id:"and"},{name:"OR",id:"or"},{name:"NOT",id:"not"}];
137

    
138
      public COMMUNITIES_SEARCH_FIELDS:string[] = ["type","status","role"];
139
     constructor (){
140
     }
141
     getFieldName(fieldId:string,fieldType:string):string{
142
       if(fieldType == "publication" || fieldType == "dataset" || fieldType == "software" || fieldType == "other"){
143
         return this.RESULT_FIELDS[fieldId].name;
144
       }else if(fieldType == "project"){
145
         return this.PROJECT_FIELDS[fieldId].name;
146
       }else if(fieldType == "organization"){
147
         return this.ORGANIZATION_FIELDS[fieldId].name;
148
       }else if(fieldType == "datasource" || fieldType == "dataprovider"){
149
         return this.DATASOURCE_FIELDS[fieldId].name;
150
       }else{
151
         return "UNDEFINED";
152
       }
153
     }
154
}
155
export class FieldDetails{
156
   name:string;
157
     type:string;
158
      param:string;
159
       equalityOperator:string;
160
       operator:string;
161
 }
(5-5/5)