Project

General

Profile

1
export class SearchFields {
2
    //main Entities
3
    //RESULTS
4
    //Used for datasets and publications
5
    //In case Datasets should display  different fields, use seperate tables for fields
6
    public RESULT_REFINE_FIELDS = ["instancetypename", "resultlanguagename", "community","relproject", "relfunderid",
7
   "relfundinglevel0_id","relfundinglevel1_id","relfundinglevel2_id",
8
   "resultacceptanceyear","resultbestlicense"];//,"collectedfrom"];
9

    
10
     public RESULT_ADVANCED_FIELDS:string[] = ["q","resulttitle","relperson","resultpublisher","instancetypenameid",
11
     "resultlanguageid", "community","relprojectid", "relfunderid",
12
     "relfundinglevel0_id","relfundinglevel1_id","relfundinglevel2_id",
13
     "resultacceptanceyear","resultbestlicenseid","pid","resulthostingdatasourceid","collectedfromdatasourceid","relpersonid"];
14
          public RESULT_FIELDS: { [key:string]:FieldDetails}={
15
           ["q"]:{name:"All fields", type:"keyword", param:"q", equalityOperator: "="},
16
         ["resulttitle"]:{name:"Title", type:"keyword", param:"title", equalityOperator: "="},
17
         ["relperson"]:{name:"Author", type:"keyword", param:"author", equalityOperator: "="},
18
         ["resultpublisher"]:{name:"Publisher", type:"keyword", param:"publisher", equalityOperator: "="},
19
         ["pid"]:{name:"PID", type:"keyword", param:"pid", equalityOperator: " = "},
20
         ["resulthostingdatasourceid"]:{name:"Hosting Data Provider", type:"entity", param:"hostedBy", equalityOperator: " exact "},
21
         ["relpersonid"]:{name:"Person", type:"entity", param:"person", equalityOperator: " exact "},
22
         ["instancetypename"]:{name:"Type", type:"refine", param:"type", equalityOperator: " exact "},
23
         ["instancetypenameid"]:{name:"Type", type:"vocabulary", param:"type", equalityOperator: " exact "},
24
         ["resultlanguagename"]:{name:"Language", type:"refine", param:"lang", equalityOperator: " exact "},
25
         ["resultlanguageid"]:{name:"Language", type:"vocabulary", param:"lang", equalityOperator: " exact "},
26
         ["community"]:{name:"Community", type:"refine", param:"community", equalityOperator: " exact "},
27
         ["relproject"]:{name:"Project", type:"refine", param:"project", equalityOperator: " exact "},
28
         ["relprojectid"]:{name:"Project", type:"entity", param:"project", equalityOperator: " exact "},
29
         ["relfunderid"]:{name:"Funder", type:"refine", param:"funder", equalityOperator: " exact "},
30
         ["relfundinglevel0_id"]:{name:"Funding Stream", type:"refine", param:"funderlv0", equalityOperator: " exact "},
31
         ["relfundinglevel1_id"]:{name:"Funding Substream level 1", type:"refine", param:"funderlv1", equalityOperator: " exact "},
32
         ["relfundinglevel2_id"]:{name:"Funding Substream level 2", type:"refine", param:"funderlv2", equalityOperator: " exact "},
33
         ["resultacceptanceyear"]:{name:"Year", type:"year", param:"year", equalityOperator: " exact "},
34
         ["resultbestlicense"]:{name:"Access Mode", type:"refine", param:"access", equalityOperator: " exact "},
35
         ["resultbestlicenseid"]:{name:"Access Mode", type:"vocabulary", param:"access", equalityOperator: " exact "},
36
         ["collectedfrom"]:{name:"Content Provider", type:"refine", param:"datasource", equalityOperator: " exact "},
37
         ["collectedfromdatasourceid"]:{name:"Collected from Content Provider", type:"entity", param:"collectedFrom", equalityOperator: " exact "}
38
                };
39

    
40
      //PROJECT
41

    
42
      public PROJECT_REFINE_FIELDS:string[] =  ["funderid","fundinglevel0_id","fundinglevel1_id",
43
      "fundinglevel2_id","projectstartyear","projectendyear","projectecsc39"];
44
    public PROJECT_ADVANCED_FIELDS:string[] =  ["q","projectacronym","projecttitle","projectkeywords",
45
    "funderid",  "fundinglevel0_id","fundinglevel1_id",  "fundinglevel2_id",
46
    "projectstartyear","projectendyear","projectecsc39",
47
    "projectcode","relorganizationid", "collectedfromdatasourceid"];
48
    public PROJECT_FIELDS: { [key:string]:FieldDetails}={
49
       ["q"]:{name:"All fields", type:"keyword", param:"q", equalityOperator: "="},
50
       ["projectacronym"]:{name:"Acronym", type:"keyword", param:"acronym", equalityOperator: "="},
51
       ["projecttitle"]:{name:"Title", type:"keyword", param:"title", equalityOperator: "="},
52
       ["projectkeywords"]:{name:"Keywords", type:"keyword", param:"keywords", equalityOperator: "="},
53

    
54
       ["funderid"]:{name:"Funder", type:"refine", param:"funder", equalityOperator: " exact "},
55
       ["fundinglevel0_id"]:{name:"Funding Stream", type:"refine", param:"funderlv0", equalityOperator: " exact "},
56
       ["fundinglevel1_id"]:{name:"Funding Substream level 1", type:"refine", param:"funderlv1", equalityOperator: " exact "},
57
       ["fundinglevel2_id"]:{name:"Funding Substream level 2", type:"refine", param:"funderlv2", equalityOperator: " exact "},
58
       ["projectstartyear"]:{name:"Start Year", type:"year", param:"startyear", equalityOperator: " exact "},
59
       ["projectendyear"]:{name:"End Year", type:"year", param:"endyear", equalityOperator: " exact "},
60

    
61
       ["projectecsc39"]:{name:"Special Clause 39", type:"boolean", param:"sc39", equalityOperator: " exact "},
62
       ["projectcode"]:{name:"Project Code", type:"keyword", param:"code", equalityOperator: " exact "},
63
       ["relorganizationid"]:{name:"Organization", type:"entity", param:"organization", equalityOperator: " exact "},
64
       ["collectedfromdatasourceid"]:{name:"Collected from Content Provider", type:"entity", param:"collectedFrom", equalityOperator: " exact "}
65

    
66
     };
67

    
68
       //DATAPROVIDERS
69

    
70
       public DATASOURCE_REFINE_FIELDS:string[] =  ["datasourcetypeuiname", "datasourceodlanguages", "datasourceodcontenttypes",
71
         "datasourcecompatibilityname"];
72
         public DATASOURCE_ADVANCED_FIELDS:string[] = ["q", "datasourceofficialname",
73
         "datasourceenglishname","datasourceodsubjects", "datasourcetypeid","datasourceodlanguages",
74
         "datasourceodcontenttypes", "datasourcecompatibilityid","relorganizationid", "collectedfromdatasourceid"];
75

    
76
         public DATASOURCE_FIELDS: { [key:string]:FieldDetails}={
77
              ["q"]:{name:"All fields", type:"keyword", param:"q", equalityOperator: "="},
78
              ["datasourceofficialname"]:{name:"English name", type:"keyword", param:"officialname", equalityOperator: "="},
79
              ["datasourceenglishname"]:{name:"Title", type:"keyword", param:"engname", equalityOperator: "="},
80
              ["datasourceodsubjects"]:{name:"Subject", type:"keyword", param:"subjects", equalityOperator: "="},
81
              ["datasourcetypeuiid"]:{name:"Type", type:"refine", param:"type", equalityOperator: " exact "},
82
              ["datasourcetypeuiname"]:{name:"Type", type:"refine", param:"type", equalityOperator: " exact "},
83
              ["datasourcetypeid"]:{name:"Type", type:"vocabulary", param:"type", equalityOperator: " exact "},
84
              ["datasourceodlanguages"]:{name:"Language", type:"vocabulary", param:"lang", equalityOperator: " exact "},
85
              ["datasourceodcontenttypes"]:{name:"Content", type:"refine", param:"content", equalityOperator: " exact "},
86
              ["datasourcecompatibilityid"]:{name:"Compatibility Level", type:"vocabulary", param:"compatibility", equalityOperator: " exact "},
87
              ["datasourcecompatibilityname"]:{name:"Compatibility Level", type:"refine", param:"compatibility", equalityOperator: " exact "},
88
              ["relorganizationid"]:{name:"Organization", type:"entity", param:"organization", equalityOperator: " exact "},
89
              ["collectedfromdatasourceid"]:{name:"Collected from Content Provider", type:"entity", param:"collectedFrom", equalityOperator: " exact "}
90

    
91
            };
92

    
93
          public COMPATIBLE_DATAPROVIDER_FIELDS:string[] = ["datasourcetypeuiid","datasourcecompatibilityid"];
94
          public ENTITY_REGISTRIES_FIELDS:string[] = ["datasourcetypeid","datasourcecompatibilityid"];
95

    
96
         //ORGANIZATION
97

    
98
         public ORGANIZATION_REFINE_FIELDS:string[] = ["organizationcountryname"]
99
     public ORGANIZATION_ADVANCED_FIELDS:string[] = ["q",
100
     "organizationlegalname","organizationlegalshortname","organizationcountryid"];
101

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

    
120
          };
121

    
122
        //PERSON
123
        public PERSON_REFINE_FIELDS:string[] = [];
124
          public PERSON_ADVANCED_FIELDS:string[] = ["q","personsecondnames","personfirstname","personfullname"];
125
      public PERSON_FIELDS: { [key:string]:FieldDetails}={
126
          ["q"]:{name:"All fields", type:"keyword", param:"q", equalityOperator: "="},
127
          ["personsecondnames"]:{name:"Surname", type:"keyword", param:"surname", equalityOperator: "="},
128
          ["personfirstname"]:{name:"First Name",type:"keyword", param:"name", equalityOperator: "="},
129
          ["personfullname"]:{name:"Full name", type:"keyword", param:"fullname", equalityOperator: "="}
130
        };
131

    
132

    
133
     public HIDDEN_FIELDS:string[] = ["fundinglevel0_id","fundinglevel1_id","fundinglevel2_id",
134
     "relfundinglevel0_id","relfundinglevel1_id,relfundinglevel2_id"];
135

    
136
     public DEPENDENT_FIELDS: { [key:string]:string } = {["fundinglevel0_id"]:"funderid",
137
     ["fundinglevel1_id"]:"fundinglevel0_id", ["fundinglevel2_id"]:"fundinglevel1_id", ["relfundinglevel0_id"]:"relfunderid",
138
     ["relfundinglevel1_id"]:"relfundinglevel0_id", ["relfundinglevel2_id"]:"relfundinglevel1_id"};
139

    
140

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

    
143
     constructor (){
144
     }
145
     getFieldName(fieldId:string,fieldType:string):string{
146
       if(fieldType == "publication" || fieldType == "dataset"){
147
         return this.RESULT_FIELDS[fieldId].name;
148
       }else if(fieldType == "project"){
149
         return this.PROJECT_FIELDS[fieldId].name;
150
       }else if(fieldType == "organization"){
151
         return this.ORGANIZATION_FIELDS[fieldId].name;
152
       }else if(fieldType == "datasource"){
153
         return this.DATASOURCE_FIELDS[fieldId].name;
154
       }else{
155
         return "UNDEFINED";
156
       }
157
     }
158
}
159
class FieldDetails{
160
   name:string;
161
     type:string;
162
      param:string;
163
       equalityOperator:string;
164
 }
(4-4/4)