diff --git a/portal-2/src/app/app.routing.ts b/portal-2/src/app/app.routing.ts
index bb7bf57f..db7c6efd 100644
--- a/portal-2/src/app/app.routing.ts
+++ b/portal-2/src/app/app.routing.ts
@@ -22,6 +22,10 @@ import { SearchPeopleComponent } from './searchPages/searchPeople.component';
import { AdvancedSearchPublicationsComponent } from './searchPages/advanced/advancedSearchPublications.component';
import { AdvancedSearchDataProvidersComponent } from './searchPages/advanced/advancedSearchDataProviders.component';
import { AdvancedSearchProjectsComponent } from './searchPages/advanced/advancedSearchProjects.component';
+import { AdvancedSearchDatasetsComponent } from './searchPages/advanced/advancedSearchDatasets.component';
+import { AdvancedSearchPeopleComponent } from './searchPages/advanced/advancedSearchPeople.component';
+import { AdvancedSearchOrganizationsComponent } from './searchPages/advanced/advancedSearchOrganizations.component';
+
import { DepositComponent } from './deposit/deposit.component';
import { DepositResultComponent } from './deposit/depositResult.component';
@@ -58,6 +62,9 @@ const appRoutes: Routes = [
{ path: 'search/advanced/publications', component: AdvancedSearchPublicationsComponent },
{ path: 'search/advanced/dataproviders', component: AdvancedSearchDataProvidersComponent },
{ path: 'search/advanced/projects', component: AdvancedSearchProjectsComponent },
+ { path: 'search/advanced/datasets', component: AdvancedSearchDatasetsComponent },
+ { path: 'search/advanced/people', component: AdvancedSearchPeopleComponent },
+ { path: 'search/advanced/organizations', component: AdvancedSearchOrganizationsComponent },
{ path: 'deposit', component: DepositComponent},
{ path: 'deposit-results', component: DepositResultComponent},
{ path: 'test', component: TestComponent},
diff --git a/portal-2/src/app/searchPages/advanced/advancedSearchDatasets.component.ts b/portal-2/src/app/searchPages/advanced/advancedSearchDatasets.component.ts
new file mode 100644
index 00000000..77a17f4e
--- /dev/null
+++ b/portal-2/src/app/searchPages/advanced/advancedSearchDatasets.component.ts
@@ -0,0 +1,112 @@
+import {Component, Input, ViewChild} from '@angular/core';
+import {Observable} from 'rxjs/Observable';
+import { Router, ActivatedRoute} from '@angular/router';
+import {Filter, Value,AdvancedField} from '../searchUtils/searchHelperClasses.class';
+import {SearchDatasetsService} from '../../services/searchDatasets.service';
+import {SearchResult} from '../../utils/entities/searchResult';
+import {OpenaireProperties, ErrorCodes} from '../../utils/properties/openaireProperties';
+import {AdvancedSearchPageComponent} from '../searchUtils/advancedSearchPage.component';
+import {SearchFields} from '../../utils/properties/searchFields';
+
+
+
+@Component({
+ selector: 'advanced-search-datasets',
+ template: `
+
+
+
+ `
+ })
+
+export class AdvancedSearchDatasetsComponent {
+ private results =[];
+ private filters =[];
+ private totalResults:number = 0 ;
+ private page :number = 1;
+ private size :number = 10;
+ public status:number;
+ private baseUrl: string;
+ private searchFields:SearchFields = new SearchFields();
+
+ private fieldIds: string[] = this.searchFields.ADVANCED_SEARCH_DATASET_PARAM;
+ private fieldIdsMap: { [key:string]:{ name:string, operator:string, type:string, indexField:string }} = this.searchFields.DATASET_FIELDS_MAP;
+ private selectedFields:AdvancedField[] = [];
+
+ @ViewChild (AdvancedSearchPageComponent) searchPage : AdvancedSearchPageComponent ;
+
+
+ constructor (private route: ActivatedRoute, private _searchDatasetsService: SearchDatasetsService ) {
+
+ this.results =[];
+ var errorCodes:ErrorCodes = new ErrorCodes();
+ this.status =errorCodes.LOADING;
+ this.baseUrl = OpenaireProperties.getLinkToSearchAdvancedPublications();
+
+
+
+ }
+ ngOnInit() {
+ var errorCodes:ErrorCodes = new ErrorCodes();
+ this.status =errorCodes.LOADING;
+ this.sub = this.route.queryParams.subscribe(params => {
+ let page = (params['page']=== undefined)?1:+params['page'];
+ this.page = ( page <= 0 ) ? 1 : page;
+ this.searchPage.fieldIds = this.fieldIds;
+ this.searchPage.selectedFields = this.selectedFields;
+ this.searchPage.fieldIdsMap = this.fieldIdsMap;
+ this.searchPage.getSelectedFiltersFromUrl(params);
+ this.getResults(this.searchPage.createQueryParameters(), this.page, this.size);
+
+ });
+ }
+ ngOnDestroy() {
+ this.sub.unsubscribe();
+ }
+ sub: any;
+ public getResults(parameters:string, page: number, size: number){
+ var errorCodes:ErrorCodes = new ErrorCodes();
+ this.status = errorCodes.LOADING;
+ console.info("Advanced Search Datasets: Execute search query "+parameters);
+ this._searchDatasetsService.searchDatasets(parameters, null, page, size, []).subscribe(
+ data => {
+ this.totalResults = data[0];
+ console.info("search Datasets total="+this.totalResults);
+ this.results = data[1];
+ this.searchPage.updateBaseUrlWithParameters();
+ var errorCodes:ErrorCodes = new ErrorCodes();
+ this.status = errorCodes.DONE;
+ if(this.totalResults == 0 ){
+ this.status = errorCodes.NONE;
+ }
+ },
+ err => {
+ console.error(err);
+ console.info("error");
+ //TODO check erros (service not available, bad request)
+ // if( ){
+ // this.status = ErrorCodes.ERROR;
+ // }
+ var errorCodes:ErrorCodes = new ErrorCodes();
+ this.status = errorCodes.NOT_AVAILABLE;
+ }
+ );
+ }
+ private setFilters(){
+ //TODO set filters from
+ }
+
+ private queryChanged($event) {
+ var parameters = $event.value;
+ this.getResults(parameters, this.page,this.size);
+ console.info("queryChanged: Execute search query "+parameters);
+
+ }
+
+
+}
diff --git a/portal-2/src/app/searchPages/advanced/advancedSearchOrganizations.component.ts b/portal-2/src/app/searchPages/advanced/advancedSearchOrganizations.component.ts
new file mode 100644
index 00000000..49646a55
--- /dev/null
+++ b/portal-2/src/app/searchPages/advanced/advancedSearchOrganizations.component.ts
@@ -0,0 +1,112 @@
+import {Component, Input, ViewChild} from '@angular/core';
+import {Observable} from 'rxjs/Observable';
+import { Router, ActivatedRoute} from '@angular/router';
+import {Filter, Value,AdvancedField} from '../searchUtils/searchHelperClasses.class';
+import {SearchOrganizationsService} from '../../services/searchOrganizations.service';
+import {SearchResult} from '../../utils/entities/searchResult';
+import {OpenaireProperties, ErrorCodes} from '../../utils/properties/openaireProperties';
+import {AdvancedSearchPageComponent} from '../searchUtils/advancedSearchPage.component';
+import {SearchFields} from '../../utils/properties/searchFields';
+
+
+
+@Component({
+ selector: 'advanced-search-organizations',
+ template: `
+
+
+
+ `
+ })
+
+export class AdvancedSearchOrganizationsComponent {
+ private results =[];
+ private filters =[];
+ private totalResults:number = 0 ;
+ private page :number = 1;
+ private size :number = 10;
+ public status:number;
+ private baseUrl: string;
+ private searchFields:SearchFields = new SearchFields();
+
+ private fieldIds: string[] = this.searchFields.ADVANCED_SEARCH_ORGANIZATION_PARAM;
+ private fieldIdsMap: { [key:string]:{ name:string, operator:string, type:string, indexField:string }} = this.searchFields.ORGANIZATION_FIELDS_MAP;
+ private selectedFields:AdvancedField[] = [];
+
+ @ViewChild (AdvancedSearchPageComponent) searchPage : AdvancedSearchPageComponent ;
+
+
+ constructor (private route: ActivatedRoute, private _searchOrganizationsService: SearchOrganizationsService ) {
+
+ this.results =[];
+ var errorCodes:ErrorCodes = new ErrorCodes();
+ this.status =errorCodes.LOADING;
+ this.baseUrl = OpenaireProperties.getLinkToSearchAdvancedPublications();
+
+
+
+ }
+ ngOnInit() {
+ var errorCodes:ErrorCodes = new ErrorCodes();
+ this.status =errorCodes.LOADING;
+ this.sub = this.route.queryParams.subscribe(params => {
+ let page = (params['page']=== undefined)?1:+params['page'];
+ this.page = ( page <= 0 ) ? 1 : page;
+ this.searchPage.fieldIds = this.fieldIds;
+ this.searchPage.selectedFields = this.selectedFields;
+ this.searchPage.fieldIdsMap = this.fieldIdsMap;
+ this.searchPage.getSelectedFiltersFromUrl(params);
+ this.getResults(this.searchPage.createQueryParameters(), this.page, this.size);
+
+ });
+ }
+ ngOnDestroy() {
+ this.sub.unsubscribe();
+ }
+ sub: any;
+ public getResults(parameters:string, page: number, size: number){
+ var errorCodes:ErrorCodes = new ErrorCodes();
+ this.status = errorCodes.LOADING;
+ console.info("Advanced Search Organizations: Execute search query "+parameters);
+ this._searchOrganizationsService.searchOrganizations(parameters, null, page, size, []).subscribe(
+ data => {
+ this.totalResults = data[0];
+ console.info("search Organizations total="+this.totalResults);
+ this.results = data[1];
+ this.searchPage.updateBaseUrlWithParameters();
+ var errorCodes:ErrorCodes = new ErrorCodes();
+ this.status = errorCodes.DONE;
+ if(this.totalResults == 0 ){
+ this.status = errorCodes.NONE;
+ }
+ },
+ err => {
+ console.error(err);
+ console.info("error");
+ //TODO check erros (service not available, bad request)
+ // if( ){
+ // this.status = ErrorCodes.ERROR;
+ // }
+ var errorCodes:ErrorCodes = new ErrorCodes();
+ this.status = errorCodes.NOT_AVAILABLE;
+ }
+ );
+ }
+ private setFilters(){
+ //TODO set filters from
+ }
+
+ private queryChanged($event) {
+ var parameters = $event.value;
+ this.getResults(parameters, this.page,this.size);
+ console.info("queryChanged: Execute search query "+parameters);
+
+ }
+
+
+}
diff --git a/portal-2/src/app/searchPages/advanced/advancedSearchPeople.component.ts b/portal-2/src/app/searchPages/advanced/advancedSearchPeople.component.ts
new file mode 100644
index 00000000..6aa8acaa
--- /dev/null
+++ b/portal-2/src/app/searchPages/advanced/advancedSearchPeople.component.ts
@@ -0,0 +1,112 @@
+import {Component, Input, ViewChild} from '@angular/core';
+import {Observable} from 'rxjs/Observable';
+import { Router, ActivatedRoute} from '@angular/router';
+import {Filter, Value,AdvancedField} from '../searchUtils/searchHelperClasses.class';
+import {SearchPeopleService} from '../../services/searchPeople.service';
+import {SearchResult} from '../../utils/entities/searchResult';
+import {OpenaireProperties, ErrorCodes} from '../../utils/properties/openaireProperties';
+import {AdvancedSearchPageComponent} from '../searchUtils/advancedSearchPage.component';
+import {SearchFields} from '../../utils/properties/searchFields';
+
+
+
+@Component({
+ selector: 'advanced-search-organizations',
+ template: `
+
+
+
+ `
+ })
+
+export class AdvancedSearchPeopleComponent {
+ private results =[];
+ private filters =[];
+ private totalResults:number = 0 ;
+ private page :number = 1;
+ private size :number = 10;
+ public status:number;
+ private baseUrl: string;
+ private searchFields:SearchFields = new SearchFields();
+
+ private fieldIds: string[] = this.searchFields.ADVANCED_SEARCH_PERSON_PARAM;
+ private fieldIdsMap: { [key:string]:{ name:string, operator:string, type:string, indexField:string }} = this.searchFields.PERSON_FIELDS_MAP;
+ private selectedFields:AdvancedField[] = [];
+
+ @ViewChild (AdvancedSearchPageComponent) searchPage : AdvancedSearchPageComponent ;
+
+
+ constructor (private route: ActivatedRoute, private _searchPeopleService: SearchPeopleService ) {
+
+ this.results =[];
+ var errorCodes:ErrorCodes = new ErrorCodes();
+ this.status =errorCodes.LOADING;
+ this.baseUrl = OpenaireProperties.getLinkToSearchAdvancedPublications();
+
+
+
+ }
+ ngOnInit() {
+ var errorCodes:ErrorCodes = new ErrorCodes();
+ this.status =errorCodes.LOADING;
+ this.sub = this.route.queryParams.subscribe(params => {
+ let page = (params['page']=== undefined)?1:+params['page'];
+ this.page = ( page <= 0 ) ? 1 : page;
+ this.searchPage.fieldIds = this.fieldIds;
+ this.searchPage.selectedFields = this.selectedFields;
+ this.searchPage.fieldIdsMap = this.fieldIdsMap;
+ this.searchPage.getSelectedFiltersFromUrl(params);
+ this.getResults(this.searchPage.createQueryParameters(), this.page, this.size);
+
+ });
+ }
+ ngOnDestroy() {
+ this.sub.unsubscribe();
+ }
+ sub: any;
+ public getResults(parameters:string, page: number, size: number){
+ var errorCodes:ErrorCodes = new ErrorCodes();
+ this.status = errorCodes.LOADING;
+ console.info("Advanced Search People: Execute search query "+parameters);
+ this._searchPeopleService.searchPeople(parameters, null, page, size, []).subscribe(
+ data => {
+ this.totalResults = data[0];
+ console.info("search People total="+this.totalResults);
+ this.results = data[1];
+ this.searchPage.updateBaseUrlWithParameters();
+ var errorCodes:ErrorCodes = new ErrorCodes();
+ this.status = errorCodes.DONE;
+ if(this.totalResults == 0 ){
+ this.status = errorCodes.NONE;
+ }
+ },
+ err => {
+ console.error(err);
+ console.info("error");
+ //TODO check erros (service not available, bad request)
+ // if( ){
+ // this.status = ErrorCodes.ERROR;
+ // }
+ var errorCodes:ErrorCodes = new ErrorCodes();
+ this.status = errorCodes.NOT_AVAILABLE;
+ }
+ );
+ }
+ private setFilters(){
+ //TODO set filters from
+ }
+
+ private queryChanged($event) {
+ var parameters = $event.value;
+ this.getResults(parameters, this.page,this.size);
+ console.info("queryChanged: Execute search query "+parameters);
+
+ }
+
+
+}
diff --git a/portal-2/src/app/searchPages/advanced/advancedSearchProjects.component.ts b/portal-2/src/app/searchPages/advanced/advancedSearchProjects.component.ts
index 6e8f8df4..67d5a179 100644
--- a/portal-2/src/app/searchPages/advanced/advancedSearchProjects.component.ts
+++ b/portal-2/src/app/searchPages/advanced/advancedSearchProjects.component.ts
@@ -13,7 +13,7 @@ import {SearchFields} from '../../utils/properties/searchFields';
@Component({
selector: 'advanced-search-projects',
template: `
- res.json())
+ .map(res => res['terms'])
+ .map(res => this.parse(res));
+
+ }
+
+ getDatasetTypesJsonFile ():any {
+ var lang = JSON.parse(JSON.stringify(require('../utils/vocabularies/dnet:dataCite_resource.json')));
+ return this.parse(lang["terms"]);
+ }
+
getAccessMode ():any {
console.info("Get AccessMode from IS");
let url = this.api+"dnet:access_modes.json";
@@ -104,7 +124,20 @@ export class ISVocabulariesService {
}
- private handleError (error: Response) {
+getCountryCompatibility ():any {
+ let url = this.api+"dnet:countries.json";
+ return this.http.get(url)
+ .map(res => res.json())
+ .map(res => res['terms'])
+ .map(res => this.parse(res));
+
+}
+
+getCountryJsonFile ():any {
+ var lang = JSON.parse(JSON.stringify(require('../utils/vocabularies/countries.json')));
+ return this.parse(lang["terms"]);
+}
+private handleError (error: Response) {
// in a real world app, we may send the error to some remote logging infrastructure
// instead of just logging it to the console
console.error(error);
diff --git a/portal-2/src/app/sharedComponents/navigationBar.component.ts b/portal-2/src/app/sharedComponents/navigationBar.component.ts
index 90442c42..6dca164f 100644
--- a/portal-2/src/app/sharedComponents/navigationBar.component.ts
+++ b/portal-2/src/app/sharedComponents/navigationBar.component.ts
@@ -35,7 +35,11 @@ import 'rxjs/Rx';
Entity Registries
Advanced Search Publications
+ Advanced Search Research Data
+ Advanced Search Projects
Advanced Search Data Providers
+ Advanced Search Organizations
+ Advanced Search People
diff --git a/portal-2/src/app/utils/properties/searchFields.ts b/portal-2/src/app/utils/properties/searchFields.ts
index 473a4d88..c1714a74 100644
--- a/portal-2/src/app/utils/properties/searchFields.ts
+++ b/portal-2/src/app/utils/properties/searchFields.ts
@@ -104,15 +104,15 @@ export class SearchFields {
//ORGANIZATION
public ORGANIZATION_INDEX:string[] = ["organizationcountryid","organizationeclegalbody"];
- public ADVANCED_SEARCH_ORGANIZATION_INDEX_PARAM:string[] = ["q","contenttype","compatibility","country","type"];
- public ORGANIZATION_INDEX_PARAM_MAP:{ [key:string]:string } = {["organizationlegalname"]:"contenttype", ["organizationlegalshortname"]:"compatibility",
+ public ADVANCED_SEARCH_ORGANIZATION_PARAM:string[] = ["q","contenttype","compatibility","country","type"];
+ public ORGANIZATION_INDEX_PARAM_MAP:{ [key:string]:string } = {["organizationlegalname"]:"contenttype", ["organizationlegalshortname"]:"type",
["organizationcountryid"]:"country",["organizationeclegalbody"]:"type"};
public ORGANIZATION_FIELDS_MAP: { [key:string]:{ name:string, operator:string, type:string, indexField:string }} ={
["q"]:{name:"All fields",operator:"op", type:"keyword", indexField:null},
["contenttype"]:{name:"Legal Name",operator:"cn", type:"keyword" , indexField:"organizationlegalname"},
["compatibility"]:{name:"Legal Short Name",operator:"cm", type:"keyword", indexField:"organizationlegalshortname"},
- ["country"]:{name:"Country",operator:"pb", type:"keyword", indexField:"organizationcountryid"},
- ["type"]:{name:"Type",operator:"fn", type:"refine", indexField:"organizationeclegalbody"},
+ ["country"]:{name:"Country",operator:"cu", type:"vocabulary", indexField:"organizationcountryid"},
+ ["type"]:{name:"Type",operator:"tp", type:"refine", indexField:"organizationeclegalbody"},
};
@@ -120,10 +120,10 @@ export class SearchFields {
//PERSON
public PERSON_INDEX:string[] = [];
- public ADVANCED_SEARCH_PERSON_INDEX_PARAM:string[] = ["q","contenttype","compatibility","country","type"];
- public PERSON_INDEX_INDEX_PARAM_MAP:{ [key:string]:string } = {["personsecondnames"]:"surname", ["personfirstname"]:"name",
+ public ADVANCED_SEARCH_PERSON_PARAM:string[] = ["q","contenttype","compatibility","country","type"];
+ public PERSON_INDEX_PARAM_MAP:{ [key:string]:string } = {["personsecondnames"]:"surname", ["personfirstname"]:"name",
["personfullname"]:"fullname"};
- public PERSON_INDEX_FIELDS_MAP: { [key:string]:{ name:string, operator:string, type:string, indexField:string }} ={
+ public PERSON_FIELDS_MAP: { [key:string]:{ name:string, operator:string, type:string, indexField:string }} ={
["q"]:{name:"All fields",operator:"op", type:"keyword", indexField:null},
["surname"]:{name:"Surname",operator:"sr", type:"keyword" , indexField:"personsecondnames"},
["name"]:{name:"Name",operator:"nm", type:"keyword", indexField:"personfirstname"},
diff --git a/portal-2/src/app/utils/staticAutoComplete2.component.ts b/portal-2/src/app/utils/staticAutoComplete2.component.ts
index 067e35c7..fa99ef69 100644
--- a/portal-2/src/app/utils/staticAutoComplete2.component.ts
+++ b/portal-2/src/app/utils/staticAutoComplete2.component.ts
@@ -99,13 +99,14 @@ export class StaticAutocomplete2Component {
this.listUpdated.emit({
value: this.list
});
+ if(this.list == null || this.list.length == 0 ){
+ this.warningMessage = "There are no results"
+ return
+ }
this.done = true;
if(this.keyword != ""){
this.filter();
}
- if(this.list.length == 0 ){
- this.warningMessage = "There are no results"
- }
}
filter() {
if(this.done){
@@ -207,6 +208,9 @@ export class StaticAutocomplete2Component {
}
private getSelectedNameFromGivenId(){
+ if(this.list == null ){
+ return;
+ }
for( var i = 0; i < this.list.length; i++){
if(this.list[i].id == this.selectedValue){
this.selectedValue = this.list[i].label;
diff --git a/portal-2/src/app/utils/vocabularies/countries.json b/portal-2/src/app/utils/vocabularies/countries.json
new file mode 100644
index 00000000..88911e39
--- /dev/null
+++ b/portal-2/src/app/utils/vocabularies/countries.json
@@ -0,0 +1 @@
+{"id":"aecdb60c-e1ed-40bd-a6c1-edc9993f07cb_Vm9jYWJ1bGFyeURTUmVzb3VyY2VzL1ZvY2FidWxhcnlEU1Jlc291cmNlVHlwZQ==","name":"dnet:countries","description":"dnet:countries","code":"dnet:countries","terms":[{"englishName":"Afghanistan","nativeName":"Afghanistan","encoding":"OPENAIRE","code":"AF"},{"englishName":"Albania","nativeName":"Albania","encoding":"OPENAIRE","code":"AL"},{"englishName":"Algeria","nativeName":"Algeria","encoding":"OPENAIRE","code":"DZ"},{"englishName":"American Samoa","nativeName":"American Samoa","encoding":"OPENAIRE","code":"AS"},{"englishName":"Andorra","nativeName":"Andorra","encoding":"OPENAIRE","code":"AD"},{"englishName":"Angola","nativeName":"Angola","encoding":"OPENAIRE","code":"AO"},{"englishName":"Anguilla","nativeName":"Anguilla","encoding":"OPENAIRE","code":"AI"},{"englishName":"Antarctica","nativeName":"Antarctica","encoding":"OPENAIRE","code":"AQ"},{"englishName":"Antigua and Barbuda","nativeName":"Antigua and Barbuda","encoding":"OPENAIRE","code":"AG"},{"englishName":"Argentina","nativeName":"Argentina","encoding":"OPENAIRE","code":"AR"},{"englishName":"Armenia","nativeName":"Armenia","encoding":"OPENAIRE","code":"AM"},{"englishName":"Aruba","nativeName":"Aruba","encoding":"OPENAIRE","code":"AW"},{"englishName":"Australia","nativeName":"Australia","encoding":"OPENAIRE","code":"AU"},{"englishName":"Austria","nativeName":"Austria","encoding":"OPENAIRE","code":"AT"},{"englishName":"Azerbaijan","nativeName":"Azerbaijan","encoding":"OPENAIRE","code":"AZ"},{"englishName":"Bahamas","nativeName":"Bahamas","encoding":"OPENAIRE","code":"BS"},{"englishName":"Bahrain","nativeName":"Bahrain","encoding":"OPENAIRE","code":"BH"},{"englishName":"Bangladesh","nativeName":"Bangladesh","encoding":"OPENAIRE","code":"BD"},{"englishName":"Barbados","nativeName":"Barbados","encoding":"OPENAIRE","code":"BB"},{"englishName":"Belarus","nativeName":"Belarus","encoding":"OPENAIRE","code":"BY"},{"englishName":"Belgium","nativeName":"Belgium","encoding":"OPENAIRE","code":"BE"},{"englishName":"Belize","nativeName":"Belize","encoding":"OPENAIRE","code":"BZ"},{"englishName":"Benin","nativeName":"Benin","encoding":"OPENAIRE","code":"BJ"},{"englishName":"Bermuda","nativeName":"Bermuda","encoding":"OPENAIRE","code":"BM"},{"englishName":"Bhutan","nativeName":"Bhutan","encoding":"OPENAIRE","code":"BT"},{"englishName":"Bolivia","nativeName":"Bolivia","encoding":"OPENAIRE","code":"BO"},{"englishName":"Bonaire, Sint Eustatius and Saba","nativeName":"Bonaire, Sint Eustatius and Saba","encoding":"OPENAIRE","code":"BQ"},{"englishName":"Bosnia and Herzegovina","nativeName":"Bosnia and Herzegovina","encoding":"OPENAIRE","code":"BA"},{"englishName":"Botswana","nativeName":"Botswana","encoding":"OPENAIRE","code":"BW"},{"englishName":"Bouvet Island","nativeName":"Bouvet Island","encoding":"OPENAIRE","code":"BV"},{"englishName":"Brazil","nativeName":"Brazil","encoding":"OPENAIRE","code":"BR"},{"englishName":"British Indian Ocean Territory","nativeName":"British Indian Ocean Territory","encoding":"OPENAIRE","code":"IO"},{"englishName":"Brunei Darussalam","nativeName":"Brunei Darussalam","encoding":"OPENAIRE","code":"BN"},{"englishName":"Bulgaria","nativeName":"Bulgaria","encoding":"OPENAIRE","code":"BG"},{"englishName":"Burkina Faso","nativeName":"Burkina Faso","encoding":"OPENAIRE","code":"BF"},{"englishName":"Burundi","nativeName":"Burundi","encoding":"OPENAIRE","code":"BI"},{"englishName":"Cambodia","nativeName":"Cambodia","encoding":"OPENAIRE","code":"KH"},{"englishName":"Cameroon","nativeName":"Cameroon","encoding":"OPENAIRE","code":"CM"},{"englishName":"Canada","nativeName":"Canada","encoding":"OPENAIRE","code":"CA"},{"englishName":"Cape Verde","nativeName":"Cape Verde","encoding":"OPENAIRE","code":"CV"},{"englishName":"Cayman Islands","nativeName":"Cayman Islands","encoding":"OPENAIRE","code":"KY"},{"englishName":"Central African Republic","nativeName":"Central African Republic","encoding":"OPENAIRE","code":"CF"},{"englishName":"Chad","nativeName":"Chad","encoding":"OPENAIRE","code":"TD"},{"englishName":"Chile","nativeName":"Chile","encoding":"OPENAIRE","code":"CL"},{"englishName":"China (People's Republic of)","nativeName":"China (People's Republic of)","encoding":"OPENAIRE","code":"CN"},{"englishName":"Christmas Island","nativeName":"Christmas Island","encoding":"OPENAIRE","code":"CX"},{"englishName":"Cocos (Keeling) Islands","nativeName":"Cocos (Keeling) Islands","encoding":"OPENAIRE","code":"CC"},{"englishName":"Colombia","nativeName":"Colombia","encoding":"OPENAIRE","code":"CO"},{"englishName":"Comoros","nativeName":"Comoros","encoding":"OPENAIRE","code":"KM"},{"englishName":"Congo","nativeName":"Congo","encoding":"OPENAIRE","code":"CG"},{"englishName":"Congo (Democratic Republic of)","nativeName":"Congo (Democratic Republic of)","encoding":"OPENAIRE","code":"CD"},{"englishName":"Cook Islands","nativeName":"Cook Islands","encoding":"OPENAIRE","code":"CK"},{"englishName":"Costa Rica","nativeName":"Costa Rica","encoding":"OPENAIRE","code":"CR"},{"englishName":"Cote d'Ivoire","nativeName":"Cote d'Ivoire","encoding":"OPENAIRE","code":"CI"},{"englishName":"Croatia","nativeName":"Croatia","encoding":"OPENAIRE","code":"HR"},{"englishName":"Cuba","nativeName":"Cuba","encoding":"OPENAIRE","code":"CU"},{"englishName":"Curaçao","nativeName":"Curaçao","encoding":"OPENAIRE","code":"CW"},{"englishName":"Cyprus","nativeName":"Cyprus","encoding":"OPENAIRE","code":"CY"},{"englishName":"Czech Republic","nativeName":"Czech Republic","encoding":"OPENAIRE","code":"CZ"},{"englishName":"Denmark","nativeName":"Denmark","encoding":"OPENAIRE","code":"DK"},{"englishName":"Djibouti","nativeName":"Djibouti","encoding":"OPENAIRE","code":"DJ"},{"englishName":"Dominica","nativeName":"Dominica","encoding":"OPENAIRE","code":"DM"},{"englishName":"Dominican Republic","nativeName":"Dominican Republic","encoding":"OPENAIRE","code":"DO"},{"englishName":"Ecuador","nativeName":"Ecuador","encoding":"OPENAIRE","code":"EC"},{"englishName":"Egypt","nativeName":"Egypt","encoding":"OPENAIRE","code":"EG"},{"englishName":"El Salvador","nativeName":"El Salvador","encoding":"OPENAIRE","code":"SV"},{"englishName":"Equatorial Guinea","nativeName":"Equatorial Guinea","encoding":"OPENAIRE","code":"GQ"},{"englishName":"Eritrea","nativeName":"Eritrea","encoding":"OPENAIRE","code":"ER"},{"englishName":"Estonia","nativeName":"Estonia","encoding":"OPENAIRE","code":"EE"},{"englishName":"Ethiopia","nativeName":"Ethiopia","encoding":"OPENAIRE","code":"ET"},{"englishName":"European Union","nativeName":"European Union","encoding":"OPENAIRE","code":"EU"},{"englishName":"Falkland Islands (Malvinas)","nativeName":"Falkland Islands (Malvinas)","encoding":"OPENAIRE","code":"FK"},{"englishName":"Faroe Islands","nativeName":"Faroe Islands","encoding":"OPENAIRE","code":"FO"},{"englishName":"Fiji","nativeName":"Fiji","encoding":"OPENAIRE","code":"FJ"},{"englishName":"Finland","nativeName":"Finland","encoding":"OPENAIRE","code":"FI"},{"englishName":"Former Yugoslav Republic of Macedonia","nativeName":"Former Yugoslav Republic of Macedonia","encoding":"OPENAIRE","code":"MK"},{"englishName":"France","nativeName":"France","encoding":"OPENAIRE","code":"FR"},{"englishName":"French Guiana","nativeName":"French Guiana","encoding":"OPENAIRE","code":"GF"},{"englishName":"French Polynesia","nativeName":"French Polynesia","encoding":"OPENAIRE","code":"PF"},{"englishName":"French Southern Territories","nativeName":"French Southern Territories","encoding":"OPENAIRE","code":"TF"},{"englishName":"Gabon","nativeName":"Gabon","encoding":"OPENAIRE","code":"GA"},{"englishName":"Gambia","nativeName":"Gambia","encoding":"OPENAIRE","code":"GM"},{"englishName":"Georgia","nativeName":"Georgia","encoding":"OPENAIRE","code":"GE"},{"englishName":"Germany","nativeName":"Germany","encoding":"OPENAIRE","code":"DE"},{"englishName":"Ghana","nativeName":"Ghana","encoding":"OPENAIRE","code":"GH"},{"englishName":"Gibraltar","nativeName":"Gibraltar","encoding":"OPENAIRE","code":"GI"},{"englishName":"Greece","nativeName":"Greece","encoding":"OPENAIRE","code":"GR"},{"englishName":"Greenland","nativeName":"Greenland","encoding":"OPENAIRE","code":"GL"},{"englishName":"Grenada","nativeName":"Grenada","encoding":"OPENAIRE","code":"GD"},{"englishName":"Guadeloupe","nativeName":"Guadeloupe","encoding":"OPENAIRE","code":"GP"},{"englishName":"Guam","nativeName":"Guam","encoding":"OPENAIRE","code":"GU"},{"englishName":"Guatemala","nativeName":"Guatemala","encoding":"OPENAIRE","code":"GT"},{"englishName":"Guernsey","nativeName":"Guernsey","encoding":"OPENAIRE","code":"GG"},{"englishName":"Guinea","nativeName":"Guinea","encoding":"OPENAIRE","code":"GN"},{"englishName":"Guinea-Bissau","nativeName":"Guinea-Bissau","encoding":"OPENAIRE","code":"GW"},{"englishName":"Guyana","nativeName":"Guyana","encoding":"OPENAIRE","code":"GY"},{"englishName":"Haiti","nativeName":"Haiti","encoding":"OPENAIRE","code":"HT"},{"englishName":"Heard Island and McDonald Islands","nativeName":"Heard Island and McDonald Islands","encoding":"OPENAIRE","code":"HM"},{"englishName":"Holy See (Vatican City State)","nativeName":"Holy See (Vatican City State)","encoding":"OPENAIRE","code":"VA"},{"englishName":"Honduras","nativeName":"Honduras","encoding":"OPENAIRE","code":"HN"},{"englishName":"Hong Kong","nativeName":"Hong Kong","encoding":"OPENAIRE","code":"HK"},{"englishName":"Hungary","nativeName":"Hungary","encoding":"OPENAIRE","code":"HU"},{"englishName":"Iceland","nativeName":"Iceland","encoding":"OPENAIRE","code":"IS"},{"englishName":"India","nativeName":"India","encoding":"OPENAIRE","code":"IN"},{"englishName":"Indonesia","nativeName":"Indonesia","encoding":"OPENAIRE","code":"ID"},{"englishName":"Iran (Islamic Republic of)","nativeName":"Iran (Islamic Republic of)","encoding":"OPENAIRE","code":"IR"},{"englishName":"Iraq","nativeName":"Iraq","encoding":"OPENAIRE","code":"IQ"},{"englishName":"Ireland","nativeName":"Ireland","encoding":"OPENAIRE","code":"IE"},{"englishName":"Isle of Man","nativeName":"Isle of Man","encoding":"OPENAIRE","code":"IM"},{"englishName":"Israel","nativeName":"Israel","encoding":"OPENAIRE","code":"IL"},{"englishName":"Italy","nativeName":"Italy","encoding":"OPENAIRE","code":"IT"},{"englishName":"Jamaica","nativeName":"Jamaica","encoding":"OPENAIRE","code":"JM"},{"englishName":"Japan","nativeName":"Japan","encoding":"OPENAIRE","code":"JP"},{"englishName":"Jersey","nativeName":"Jersey","encoding":"OPENAIRE","code":"JE"},{"englishName":"Jordan","nativeName":"Jordan","encoding":"OPENAIRE","code":"JO"},{"englishName":"Kazakhstan","nativeName":"Kazakhstan","encoding":"OPENAIRE","code":"KZ"},{"englishName":"Kenya","nativeName":"Kenya","encoding":"OPENAIRE","code":"KE"},{"englishName":"Kiribati","nativeName":"Kiribati","encoding":"OPENAIRE","code":"KI"},{"englishName":"Korea (Republic of)","nativeName":"Korea (Republic of)","encoding":"OPENAIRE","code":"KR"},{"englishName":"Korea, Democatric People's Republic of","nativeName":"Korea, Democatric People's Republic of","encoding":"OPENAIRE","code":"KP"},{"englishName":"Kosovo * UN resolution","nativeName":"Kosovo * UN resolution","encoding":"OPENAIRE","code":"XK"},{"englishName":"Kuwait","nativeName":"Kuwait","encoding":"OPENAIRE","code":"KW"},{"englishName":"Kyrgyzstan","nativeName":"Kyrgyzstan","encoding":"OPENAIRE","code":"KG"},{"englishName":"Lao (People's Democratic Republic)","nativeName":"Lao (People's Democratic Republic)","encoding":"OPENAIRE","code":"LA"},{"englishName":"Latvia","nativeName":"Latvia","encoding":"OPENAIRE","code":"LV"},{"englishName":"Lebanon","nativeName":"Lebanon","encoding":"OPENAIRE","code":"LB"},{"englishName":"Lesotho","nativeName":"Lesotho","encoding":"OPENAIRE","code":"LS"},{"englishName":"Liberia","nativeName":"Liberia","encoding":"OPENAIRE","code":"LR"},{"englishName":"Libyan Arab Jamahiriya","nativeName":"Libyan Arab Jamahiriya","encoding":"OPENAIRE","code":"LY"},{"englishName":"Liechtenstein","nativeName":"Liechtenstein","encoding":"OPENAIRE","code":"LI"},{"englishName":"Lithuania","nativeName":"Lithuania","encoding":"OPENAIRE","code":"LT"},{"englishName":"Luxembourg","nativeName":"Luxembourg","encoding":"OPENAIRE","code":"LU"},{"englishName":"Macao","nativeName":"Macao","encoding":"OPENAIRE","code":"MO"},{"englishName":"Madagascar","nativeName":"Madagascar","encoding":"OPENAIRE","code":"MG"},{"englishName":"Malawi","nativeName":"Malawi","encoding":"OPENAIRE","code":"MW"},{"englishName":"Malaysia","nativeName":"Malaysia","encoding":"OPENAIRE","code":"MY"},{"englishName":"Maldives","nativeName":"Maldives","encoding":"OPENAIRE","code":"MV"},{"englishName":"Mali","nativeName":"Mali","encoding":"OPENAIRE","code":"ML"},{"englishName":"Malta","nativeName":"Malta","encoding":"OPENAIRE","code":"MT"},{"englishName":"Marshall Islands","nativeName":"Marshall Islands","encoding":"OPENAIRE","code":"MH"},{"englishName":"Martinique","nativeName":"Martinique","encoding":"OPENAIRE","code":"MQ"},{"englishName":"Mauritania","nativeName":"Mauritania","encoding":"OPENAIRE","code":"MR"},{"englishName":"Mauritius","nativeName":"Mauritius","encoding":"OPENAIRE","code":"MU"},{"englishName":"Mayotte","nativeName":"Mayotte","encoding":"OPENAIRE","code":"YT"},{"englishName":"Mexico","nativeName":"Mexico","encoding":"OPENAIRE","code":"MX"},{"englishName":"Micronesia, Federated States of","nativeName":"Micronesia, Federated States of","encoding":"OPENAIRE","code":"FM"},{"englishName":"Moldova (Republic of)","nativeName":"Moldova (Republic of)","encoding":"OPENAIRE","code":"MD"},{"englishName":"Mongolia","nativeName":"Mongolia","encoding":"OPENAIRE","code":"MN"},{"englishName":"Montenegro","nativeName":"Montenegro","encoding":"OPENAIRE","code":"ME"},{"englishName":"Montserrat","nativeName":"Montserrat","encoding":"OPENAIRE","code":"MS"},{"englishName":"Morocco","nativeName":"Morocco","encoding":"OPENAIRE","code":"MA"},{"englishName":"Mozambique","nativeName":"Mozambique","encoding":"OPENAIRE","code":"MZ"},{"englishName":"Myanmar","nativeName":"Myanmar","encoding":"OPENAIRE","code":"MM"},{"englishName":"Namibia","nativeName":"Namibia","encoding":"OPENAIRE","code":"NA"},{"englishName":"Nauru","nativeName":"Nauru","encoding":"OPENAIRE","code":"NR"},{"englishName":"Nepal","nativeName":"Nepal","encoding":"OPENAIRE","code":"NP"},{"englishName":"Netherlands","nativeName":"Netherlands","encoding":"OPENAIRE","code":"NL"},{"englishName":"Netherlands Antilles","nativeName":"Netherlands Antilles","encoding":"OPENAIRE","code":"AN"},{"englishName":"New Caledonia","nativeName":"New Caledonia","encoding":"OPENAIRE","code":"NC"},{"englishName":"New Zealand","nativeName":"New Zealand","encoding":"OPENAIRE","code":"NZ"},{"englishName":"Nicaragua","nativeName":"Nicaragua","encoding":"OPENAIRE","code":"NI"},{"englishName":"Niger","nativeName":"Niger","encoding":"OPENAIRE","code":"NE"},{"englishName":"Nigeria","nativeName":"Nigeria","encoding":"OPENAIRE","code":"NG"},{"englishName":"Niue","nativeName":"Niue","encoding":"OPENAIRE","code":"NU"},{"englishName":"Norfolk Island","nativeName":"Norfolk Island","encoding":"OPENAIRE","code":"NF"},{"englishName":"Northern Mariana Islands","nativeName":"Northern Mariana Islands","encoding":"OPENAIRE","code":"MP"},{"englishName":"Norway","nativeName":"Norway","encoding":"OPENAIRE","code":"NO"},{"englishName":"Oceania","nativeName":"Oceania","encoding":"OPENAIRE","code":"OC"},{"englishName":"Oman","nativeName":"Oman","encoding":"OPENAIRE","code":"OM"},{"englishName":"Pakistan","nativeName":"Pakistan","encoding":"OPENAIRE","code":"PK"},{"englishName":"Palau","nativeName":"Palau","encoding":"OPENAIRE","code":"PW"},{"englishName":"Palestinian-administered areas","nativeName":"Palestinian-administered areas","encoding":"OPENAIRE","code":"PS"},{"englishName":"Panama","nativeName":"Panama","encoding":"OPENAIRE","code":"PA"},{"englishName":"Papua New Guinea","nativeName":"Papua New Guinea","encoding":"OPENAIRE","code":"PG"},{"englishName":"Paraguay","nativeName":"Paraguay","encoding":"OPENAIRE","code":"PY"},{"englishName":"Peru","nativeName":"Peru","encoding":"OPENAIRE","code":"PE"},{"englishName":"Philippines","nativeName":"Philippines","encoding":"OPENAIRE","code":"PH"},{"englishName":"Pitcairn","nativeName":"Pitcairn","encoding":"OPENAIRE","code":"PN"},{"englishName":"Poland","nativeName":"Poland","encoding":"OPENAIRE","code":"PL"},{"englishName":"Portugal","nativeName":"Portugal","encoding":"OPENAIRE","code":"PT"},{"englishName":"Puerto Rico","nativeName":"Puerto Rico","encoding":"OPENAIRE","code":"PR"},{"englishName":"Qatar","nativeName":"Qatar","encoding":"OPENAIRE","code":"QA"},{"englishName":"Romania","nativeName":"Romania","encoding":"OPENAIRE","code":"RO"},{"englishName":"Russian Federation","nativeName":"Russian Federation","encoding":"OPENAIRE","code":"RU"},{"englishName":"Rwanda","nativeName":"Rwanda","encoding":"OPENAIRE","code":"RW"},{"englishName":"Réunion","nativeName":"Réunion","encoding":"OPENAIRE","code":"RE"},{"englishName":"Saint Helena, Ascension and Tristan da Cunha","nativeName":"Saint Helena, Ascension and Tristan da Cunha","encoding":"OPENAIRE","code":"SH"},{"englishName":"Saint Kitts and Nevis","nativeName":"Saint Kitts and Nevis","encoding":"OPENAIRE","code":"KN"},{"englishName":"Saint Lucia","nativeName":"Saint Lucia","encoding":"OPENAIRE","code":"LC"},{"englishName":"Saint Martin (French Part)","nativeName":"Saint Martin (French Part)","encoding":"OPENAIRE","code":"MF"},{"englishName":"Saint Pierre and Miquelon","nativeName":"Saint Pierre and Miquelon","encoding":"OPENAIRE","code":"PM"},{"englishName":"Saint Vincent and the Grenadines","nativeName":"Saint Vincent and the Grenadines","encoding":"OPENAIRE","code":"VC"},{"englishName":"Saint-Barthélemy","nativeName":"Saint-Barthélemy","encoding":"OPENAIRE","code":"BL"},{"englishName":"Samoa","nativeName":"Samoa","encoding":"OPENAIRE","code":"WS"},{"englishName":"San Marino","nativeName":"San Marino","encoding":"OPENAIRE","code":"SM"},{"englishName":"Saudi Arabia","nativeName":"Saudi Arabia","encoding":"OPENAIRE","code":"SA"},{"englishName":"Senegal","nativeName":"Senegal","encoding":"OPENAIRE","code":"SN"},{"englishName":"Serbia","nativeName":"Serbia","encoding":"OPENAIRE","code":"RS"},{"englishName":"Seychelles","nativeName":"Seychelles","encoding":"OPENAIRE","code":"SC"},{"englishName":"Sierra Leone","nativeName":"Sierra Leone","encoding":"OPENAIRE","code":"SL"},{"englishName":"Singapore","nativeName":"Singapore","encoding":"OPENAIRE","code":"SG"},{"englishName":"Sint Maarten (Dutch Part)","nativeName":"Sint Maarten (Dutch Part)","encoding":"OPENAIRE","code":"SX"},{"englishName":"Slovakia","nativeName":"Slovakia","encoding":"OPENAIRE","code":"SK"},{"englishName":"Slovenia","nativeName":"Slovenia","encoding":"OPENAIRE","code":"SI"},{"englishName":"Solomon Islands","nativeName":"Solomon Islands","encoding":"OPENAIRE","code":"SB"},{"englishName":"Somalia","nativeName":"Somalia","encoding":"OPENAIRE","code":"SO"},{"englishName":"South Africa","nativeName":"South Africa","encoding":"OPENAIRE","code":"ZA"},{"englishName":"South Georgia and the South Sandwich Islands","nativeName":"South Georgia and the South Sandwich Islands","encoding":"OPENAIRE","code":"GS"},{"englishName":"South Sudan","nativeName":"South Sudan","encoding":"OPENAIRE","code":"SS"},{"englishName":"Spain","nativeName":"Spain","encoding":"OPENAIRE","code":"ES"},{"englishName":"Sri Lanka","nativeName":"Sri Lanka","encoding":"OPENAIRE","code":"LK"},{"englishName":"Sudan","nativeName":"Sudan","encoding":"OPENAIRE","code":"SD"},{"englishName":"Suriname","nativeName":"Suriname","encoding":"OPENAIRE","code":"SR"},{"englishName":"Svalbard and Jan Mayen","nativeName":"Svalbard and Jan Mayen","encoding":"OPENAIRE","code":"SJ"},{"englishName":"Swaziland","nativeName":"Swaziland","encoding":"OPENAIRE","code":"SZ"},{"englishName":"Sweden","nativeName":"Sweden","encoding":"OPENAIRE","code":"SE"},{"englishName":"Switzerland","nativeName":"Switzerland","encoding":"OPENAIRE","code":"CH"},{"englishName":"Syrian Arab Republic","nativeName":"Syrian Arab Republic","encoding":"OPENAIRE","code":"SY"},{"englishName":"São Tomé and PrÃncipe","nativeName":"São Tomé and PrÃncipe","encoding":"OPENAIRE","code":"ST"},{"englishName":"Taiwan","nativeName":"Taiwan","encoding":"OPENAIRE","code":"TW"},{"englishName":"Tajikistan","nativeName":"Tajikistan","encoding":"OPENAIRE","code":"TJ"},{"englishName":"Tanzania (United Republic of)","nativeName":"Tanzania (United Republic of)","encoding":"OPENAIRE","code":"TZ"},{"englishName":"Thailand","nativeName":"Thailand","encoding":"OPENAIRE","code":"TH"},{"englishName":"Timor-Leste","nativeName":"Timor-Leste","encoding":"OPENAIRE","code":"TL"},{"englishName":"Togo","nativeName":"Togo","encoding":"OPENAIRE","code":"TG"},{"englishName":"Tokelau","nativeName":"Tokelau","encoding":"OPENAIRE","code":"TK"},{"englishName":"Tonga","nativeName":"Tonga","encoding":"OPENAIRE","code":"TO"},{"englishName":"Trinidad and Tobago","nativeName":"Trinidad and Tobago","encoding":"OPENAIRE","code":"TT"},{"englishName":"Tunisia","nativeName":"Tunisia","encoding":"OPENAIRE","code":"TN"},{"englishName":"Turkey","nativeName":"Turkey","encoding":"OPENAIRE","code":"TR"},{"englishName":"Turkmenistan","nativeName":"Turkmenistan","encoding":"OPENAIRE","code":"TM"},{"englishName":"Turks and Caicos Islands","nativeName":"Turks and Caicos Islands","encoding":"OPENAIRE","code":"TC"},{"englishName":"Tuvalu","nativeName":"Tuvalu","encoding":"OPENAIRE","code":"TV"},{"englishName":"UNKNOWN","nativeName":"UNKNOWN","encoding":"OPENAIRE","code":"UNKNOWN"},{"englishName":"Uganda","nativeName":"Uganda","encoding":"OPENAIRE","code":"UG"},{"englishName":"Ukraine","nativeName":"Ukraine","encoding":"OPENAIRE","code":"UA"},{"englishName":"United Arab Emirates","nativeName":"United Arab Emirates","encoding":"OPENAIRE","code":"AE"},{"englishName":"United Kingdom","nativeName":"United Kingdom","encoding":"OPENAIRE","code":"GB"},{"englishName":"United States","nativeName":"United States","encoding":"OPENAIRE","code":"US"},{"englishName":"United States Minor Outlying Islands","nativeName":"United States Minor Outlying Islands","encoding":"OPENAIRE","code":"UM"},{"englishName":"Uruguay","nativeName":"Uruguay","encoding":"OPENAIRE","code":"UY"},{"englishName":"Uzbekistan","nativeName":"Uzbekistan","encoding":"OPENAIRE","code":"UZ"},{"englishName":"Vanuatu","nativeName":"Vanuatu","encoding":"OPENAIRE","code":"VU"},{"englishName":"Venezuela","nativeName":"Venezuela","encoding":"OPENAIRE","code":"VE"},{"englishName":"Viet Nam","nativeName":"Viet Nam","encoding":"OPENAIRE","code":"VN"},{"englishName":"Virgin Islands (British)","nativeName":"Virgin Islands (British)","encoding":"OPENAIRE","code":"VG"},{"englishName":"Virgin Islands, U.S.","nativeName":"Virgin Islands, U.S.","encoding":"OPENAIRE","code":"VI"},{"englishName":"Wallis and Futuna","nativeName":"Wallis and Futuna","encoding":"OPENAIRE","code":"WF"},{"englishName":"Western Sahara","nativeName":"Western Sahara","encoding":"OPENAIRE","code":"EH"},{"englishName":"Yemen","nativeName":"Yemen","encoding":"OPENAIRE","code":"YE"},{"englishName":"Yugoslavia","nativeName":"Yugoslavia","encoding":"OPENAIRE","code":"YU"},{"englishName":"Zambia","nativeName":"Zambia","encoding":"OPENAIRE","code":"ZM"},{"englishName":"Zimbabwe","nativeName":"Zimbabwe","encoding":"OPENAIRE","code":"ZW"},{"englishName":"Ã…land Islands","nativeName":"Ã…land Islands","encoding":"OPENAIRE","code":"AX"}]}
diff --git a/portal-2/src/app/utils/vocabularies/dnet:dataCite_resource.json b/portal-2/src/app/utils/vocabularies/dnet:dataCite_resource.json
new file mode 100644
index 00000000..20710d70
--- /dev/null
+++ b/portal-2/src/app/utils/vocabularies/dnet:dataCite_resource.json
@@ -0,0 +1 @@
+{"id":"a48f6872-4055-484f-b365-a9c11f5ff152_Vm9jYWJ1bGFyeURTUmVzb3VyY2VzL1ZvY2FidWxhcnlEU1Jlc291cmNlVHlwZQ==","name":"dnet:dataCite_resource","description":"dnet:dataCite_resource","code":"dnet:dataCite_resource","terms":[{"englishName":"UNKNOWN","nativeName":"UNKNOWN","encoding":"OPENAIRE","code":"UNKNOWN"},{"englishName":"clinical trial","nativeName":"clinical trial","encoding":"OPENAIRE","code":"clinicalTrial"},{"englishName":"collection","nativeName":"collection","encoding":"OPENAIRE","code":"collection"},{"englishName":"dataset","nativeName":"dataset","encoding":"OPENAIRE","code":"dataset"},{"englishName":"event","nativeName":"event","encoding":"OPENAIRE","code":"event"},{"englishName":"film","nativeName":"film","encoding":"OPENAIRE","code":"film"},{"englishName":"image","nativeName":"image","encoding":"OPENAIRE","code":"image"},{"englishName":"interactiveResource","nativeName":"interactiveResource","encoding":"OPENAIRE","code":"interactiveResource"},{"englishName":"model","nativeName":"model","encoding":"OPENAIRE","code":"model"},{"englishName":"physicalObject","nativeName":"physicalObject","encoding":"OPENAIRE","code":"physicalObject"},{"englishName":"service","nativeName":"service","encoding":"OPENAIRE","code":"service"},{"englishName":"software","nativeName":"software","encoding":"OPENAIRE","code":"software"},{"englishName":"sound","nativeName":"sound","encoding":"OPENAIRE","code":"sound"},{"englishName":"text","nativeName":"text","encoding":"OPENAIRE","code":"text"}]}
diff --git a/portal-2/src/server.ts b/portal-2/src/server.ts
index 4ec4f82c..9ff02ff9 100644
--- a/portal-2/src/server.ts
+++ b/portal-2/src/server.ts
@@ -89,6 +89,9 @@ app.get('/search/find/publications', ngApp);
app.get('/search/advanced/publications', ngApp);
app.get('/search/advanced/dataproviders', ngApp);
app.get('/search/advanced/projects', ngApp);
+app.get('/search/advanced/organizations', ngApp);
+app.get('/search/advanced/people', ngApp);
+app.get('/search/advanced/datasets', ngApp);
app.get('/search/find/dataproviders', ngApp);
app.get('/search/find/projects', ngApp);
app.get('/search/find/datasets', ngApp);