First draft for advanced search for datasets , organizations, people
git-svn-id: https://svn.driver.research-infrastructures.eu/driver/dnet40/modules/uoa-services-portal/trunk@44384 d315682c-612b-4755-9ff5-7f18f6832af3
This commit is contained in:
parent
5c0d7681ef
commit
599c9cbcfc
|
@ -22,6 +22,10 @@ import { SearchPeopleComponent } from './searchPages/searchPeople.component';
|
||||||
import { AdvancedSearchPublicationsComponent } from './searchPages/advanced/advancedSearchPublications.component';
|
import { AdvancedSearchPublicationsComponent } from './searchPages/advanced/advancedSearchPublications.component';
|
||||||
import { AdvancedSearchDataProvidersComponent } from './searchPages/advanced/advancedSearchDataProviders.component';
|
import { AdvancedSearchDataProvidersComponent } from './searchPages/advanced/advancedSearchDataProviders.component';
|
||||||
import { AdvancedSearchProjectsComponent } from './searchPages/advanced/advancedSearchProjects.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 { DepositComponent } from './deposit/deposit.component';
|
||||||
import { DepositResultComponent } from './deposit/depositResult.component';
|
import { DepositResultComponent } from './deposit/depositResult.component';
|
||||||
|
@ -58,6 +62,9 @@ const appRoutes: Routes = [
|
||||||
{ path: 'search/advanced/publications', component: AdvancedSearchPublicationsComponent },
|
{ path: 'search/advanced/publications', component: AdvancedSearchPublicationsComponent },
|
||||||
{ path: 'search/advanced/dataproviders', component: AdvancedSearchDataProvidersComponent },
|
{ path: 'search/advanced/dataproviders', component: AdvancedSearchDataProvidersComponent },
|
||||||
{ path: 'search/advanced/projects', component: AdvancedSearchProjectsComponent },
|
{ 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', component: DepositComponent},
|
||||||
{ path: 'deposit-results', component: DepositResultComponent},
|
{ path: 'deposit-results', component: DepositResultComponent},
|
||||||
{ path: 'test', component: TestComponent},
|
{ path: 'test', component: TestComponent},
|
||||||
|
|
|
@ -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: `
|
||||||
|
<advanced-search-page pageTitle="Advanced Search Datasets" entityType="dataset"
|
||||||
|
[(results)] = "results" [(totalResults)] = "totalResults"
|
||||||
|
[(page)] = "page" [(size)] = "size" [baseUrl] = "baseUrl"
|
||||||
|
[(fieldIds)]="fieldIds" [(fieldIdsMap)]="fieldIdsMap" [(selectedFields)]="selectedFields"
|
||||||
|
[(status)] = "status"
|
||||||
|
(queryChange)="queryChanged($event)">
|
||||||
|
</advanced-search-page>
|
||||||
|
|
||||||
|
`
|
||||||
|
})
|
||||||
|
|
||||||
|
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);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -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: `
|
||||||
|
<advanced-search-page pageTitle="Advanced Search Organizations" entityType="dataset"
|
||||||
|
[(results)] = "results" [(totalResults)] = "totalResults"
|
||||||
|
[(page)] = "page" [(size)] = "size" [baseUrl] = "baseUrl"
|
||||||
|
[(fieldIds)]="fieldIds" [(fieldIdsMap)]="fieldIdsMap" [(selectedFields)]="selectedFields"
|
||||||
|
[(status)] = "status"
|
||||||
|
(queryChange)="queryChanged($event)">
|
||||||
|
</advanced-search-page>
|
||||||
|
|
||||||
|
`
|
||||||
|
})
|
||||||
|
|
||||||
|
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);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -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: `
|
||||||
|
<advanced-search-page pageTitle="Advanced Search People" entityType="dataset"
|
||||||
|
[(results)] = "results" [(totalResults)] = "totalResults"
|
||||||
|
[(page)] = "page" [(size)] = "size" [baseUrl] = "baseUrl"
|
||||||
|
[(fieldIds)]="fieldIds" [(fieldIdsMap)]="fieldIdsMap" [(selectedFields)]="selectedFields"
|
||||||
|
[(status)] = "status"
|
||||||
|
(queryChange)="queryChanged($event)">
|
||||||
|
</advanced-search-page>
|
||||||
|
|
||||||
|
`
|
||||||
|
})
|
||||||
|
|
||||||
|
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);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -13,7 +13,7 @@ import {SearchFields} from '../../utils/properties/searchFields';
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'advanced-search-projects',
|
selector: 'advanced-search-projects',
|
||||||
template: `
|
template: `
|
||||||
<advanced-search-page pageTitle="Advanced Search projects" entityType="project"
|
<advanced-search-page pageTitle="Advanced Search Projects" entityType="project"
|
||||||
[(results)] = "results" [(totalResults)] = "totalResults"
|
[(results)] = "results" [(totalResults)] = "totalResults"
|
||||||
[(page)] = "page" [(size)] = "size" [baseUrl] = "baseUrl"
|
[(page)] = "page" [(size)] = "size" [baseUrl] = "baseUrl"
|
||||||
[(fieldIds)]="fieldIds" [(fieldIdsMap)]="fieldIdsMap" [(selectedFields)]="selectedFields"
|
[(fieldIds)]="fieldIds" [(fieldIdsMap)]="fieldIdsMap" [(selectedFields)]="selectedFields"
|
||||||
|
|
|
@ -34,6 +34,10 @@ import {SearchEntityRegistriesComponent} from './dataProviders/entityRegistries.
|
||||||
import { AdvancedSearchPublicationsComponent } from './advanced/advancedSearchPublications.component';
|
import { AdvancedSearchPublicationsComponent } from './advanced/advancedSearchPublications.component';
|
||||||
import { AdvancedSearchDataProvidersComponent } from './advanced/advancedSearchDataProviders.component';
|
import { AdvancedSearchDataProvidersComponent } from './advanced/advancedSearchDataProviders.component';
|
||||||
import { AdvancedSearchProjectsComponent } from './advanced/advancedSearchProjects.component';
|
import { AdvancedSearchProjectsComponent } from './advanced/advancedSearchProjects.component';
|
||||||
|
import { AdvancedSearchDatasetsComponent } from './advanced/advancedSearchDatasets.component';
|
||||||
|
import { AdvancedSearchPeopleComponent } from './advanced/advancedSearchPeople.component';
|
||||||
|
import { AdvancedSearchOrganizationsComponent } from './advanced/advancedSearchOrganizations.component';
|
||||||
|
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
imports: [
|
imports: [
|
||||||
|
@ -53,9 +57,8 @@ import { AdvancedSearchProjectsComponent } from './advanced/advancedSearchProjec
|
||||||
SearchPagingComponent,
|
SearchPagingComponent,
|
||||||
AdvancedSearchFormComponent,
|
AdvancedSearchFormComponent,
|
||||||
SearchPublicationsComponent,
|
SearchPublicationsComponent,
|
||||||
AdvancedSearchPublicationsComponent,
|
AdvancedSearchPublicationsComponent, AdvancedSearchDataProvidersComponent, AdvancedSearchProjectsComponent,
|
||||||
AdvancedSearchDataProvidersComponent,
|
AdvancedSearchDatasetsComponent, AdvancedSearchPeopleComponent, AdvancedSearchOrganizationsComponent,
|
||||||
AdvancedSearchProjectsComponent,
|
|
||||||
SearchDataprovidersComponent,
|
SearchDataprovidersComponent,
|
||||||
SearchComponent,
|
SearchComponent,
|
||||||
SearchProjectsComponent,
|
SearchProjectsComponent,
|
||||||
|
|
|
@ -13,13 +13,18 @@ export class ISVocabulariesService {
|
||||||
return this.getLanguagesJsonFile();
|
return this.getLanguagesJsonFile();
|
||||||
}else if ( field == "type" && (entity == "publication")){
|
}else if ( field == "type" && (entity == "publication")){
|
||||||
return this.getPublicationTypesJsonFile();
|
return this.getPublicationTypesJsonFile();
|
||||||
}else if( field == "access" && (entity == "publication")){
|
}else if ( field == "type" && (entity == "dataset")){
|
||||||
|
return this.getDatasetTypesJsonFile();
|
||||||
|
}else if( field == "access" && (entity == "publication" || entity == "dataset")){
|
||||||
return this.getAccessModeJsonFile();
|
return this.getAccessModeJsonFile();
|
||||||
} else if( field == "type" && (entity == "dataprovider")){
|
} else if( field == "type" && (entity == "dataprovider")){
|
||||||
return this.getDataProviderTypesJsonFile();
|
return this.getDataProviderTypesJsonFile();
|
||||||
} else if( field == "compatibility" && (entity == "dataprovider")){
|
} else if( field == "compatibility" && (entity == "dataprovider")){
|
||||||
return this.getDataProviderCompatibilityJsonFile();
|
return this.getDataProviderCompatibilityJsonFile();
|
||||||
|
} else if( field == "country" ){
|
||||||
|
return this.getCountryJsonFile();
|
||||||
}
|
}
|
||||||
|
return null;
|
||||||
|
|
||||||
}
|
}
|
||||||
getLanguages ():any {
|
getLanguages ():any {
|
||||||
|
@ -50,6 +55,21 @@ export class ISVocabulariesService {
|
||||||
var lang = JSON.parse(JSON.stringify(require('../utils/vocabularies/publicationTypes.json')));
|
var lang = JSON.parse(JSON.stringify(require('../utils/vocabularies/publicationTypes.json')));
|
||||||
return this.parse(lang["terms"]);
|
return this.parse(lang["terms"]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getDatasetTypes ():any {
|
||||||
|
let url = this.api+"dnet:dataCite_resource.json";
|
||||||
|
return this.http.get(url)
|
||||||
|
.map(res => <any> 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 {
|
getAccessMode ():any {
|
||||||
console.info("Get AccessMode from IS");
|
console.info("Get AccessMode from IS");
|
||||||
let url = this.api+"dnet:access_modes.json";
|
let url = this.api+"dnet:access_modes.json";
|
||||||
|
@ -104,6 +124,19 @@ export class ISVocabulariesService {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getCountryCompatibility ():any {
|
||||||
|
let url = this.api+"dnet:countries.json";
|
||||||
|
return this.http.get(url)
|
||||||
|
.map(res => <any> 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) {
|
private handleError (error: Response) {
|
||||||
// in a real world app, we may send the error to some remote logging infrastructure
|
// in a real world app, we may send the error to some remote logging infrastructure
|
||||||
// instead of just logging it to the console
|
// instead of just logging it to the console
|
||||||
|
|
|
@ -35,7 +35,11 @@ import 'rxjs/Rx';
|
||||||
<li><a href="/search/entity-registries">Entity Registries</a></li>
|
<li><a href="/search/entity-registries">Entity Registries</a></li>
|
||||||
<li role="separator" class="divider"></li>
|
<li role="separator" class="divider"></li>
|
||||||
<li><a href="/search/advanced/publications">Advanced Search Publications</a></li>
|
<li><a href="/search/advanced/publications">Advanced Search Publications</a></li>
|
||||||
|
<li><a href="/search/advanced/datasets">Advanced Search Research Data</a></li>
|
||||||
|
<li><a href="/search/advanced/projects">Advanced Search Projects</a></li>
|
||||||
<li><a href="/search/advanced/dataproviders">Advanced Search Data Providers</a></li>
|
<li><a href="/search/advanced/dataproviders">Advanced Search Data Providers</a></li>
|
||||||
|
<li><a href="/search/advanced/organizations">Advanced Search Organizations</a></li>
|
||||||
|
<li><a href="/search/advanced/people">Advanced Search People</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li class="dropdown">
|
<li class="dropdown">
|
||||||
|
|
|
@ -104,15 +104,15 @@ export class SearchFields {
|
||||||
|
|
||||||
//ORGANIZATION
|
//ORGANIZATION
|
||||||
public ORGANIZATION_INDEX:string[] = ["organizationcountryid","organizationeclegalbody"];
|
public ORGANIZATION_INDEX:string[] = ["organizationcountryid","organizationeclegalbody"];
|
||||||
public ADVANCED_SEARCH_ORGANIZATION_INDEX_PARAM:string[] = ["q","contenttype","compatibility","country","type"];
|
public ADVANCED_SEARCH_ORGANIZATION_PARAM:string[] = ["q","contenttype","compatibility","country","type"];
|
||||||
public ORGANIZATION_INDEX_PARAM_MAP:{ [key:string]:string } = {["organizationlegalname"]:"contenttype", ["organizationlegalshortname"]:"compatibility",
|
public ORGANIZATION_INDEX_PARAM_MAP:{ [key:string]:string } = {["organizationlegalname"]:"contenttype", ["organizationlegalshortname"]:"type",
|
||||||
["organizationcountryid"]:"country",["organizationeclegalbody"]:"type"};
|
["organizationcountryid"]:"country",["organizationeclegalbody"]:"type"};
|
||||||
public ORGANIZATION_FIELDS_MAP: { [key:string]:{ name:string, operator:string, type:string, indexField:string }} ={
|
public ORGANIZATION_FIELDS_MAP: { [key:string]:{ name:string, operator:string, type:string, indexField:string }} ={
|
||||||
["q"]:{name:"All fields",operator:"op", type:"keyword", indexField:null},
|
["q"]:{name:"All fields",operator:"op", type:"keyword", indexField:null},
|
||||||
["contenttype"]:{name:"Legal Name",operator:"cn", type:"keyword" , indexField:"organizationlegalname"},
|
["contenttype"]:{name:"Legal Name",operator:"cn", type:"keyword" , indexField:"organizationlegalname"},
|
||||||
["compatibility"]:{name:"Legal Short Name",operator:"cm", type:"keyword", indexField:"organizationlegalshortname"},
|
["compatibility"]:{name:"Legal Short Name",operator:"cm", type:"keyword", indexField:"organizationlegalshortname"},
|
||||||
["country"]:{name:"Country",operator:"pb", type:"keyword", indexField:"organizationcountryid"},
|
["country"]:{name:"Country",operator:"cu", type:"vocabulary", indexField:"organizationcountryid"},
|
||||||
["type"]:{name:"Type",operator:"fn", type:"refine", indexField:"organizationeclegalbody"},
|
["type"]:{name:"Type",operator:"tp", type:"refine", indexField:"organizationeclegalbody"},
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -120,10 +120,10 @@ export class SearchFields {
|
||||||
|
|
||||||
//PERSON
|
//PERSON
|
||||||
public PERSON_INDEX:string[] = [];
|
public PERSON_INDEX:string[] = [];
|
||||||
public ADVANCED_SEARCH_PERSON_INDEX_PARAM:string[] = ["q","contenttype","compatibility","country","type"];
|
public ADVANCED_SEARCH_PERSON_PARAM:string[] = ["q","contenttype","compatibility","country","type"];
|
||||||
public PERSON_INDEX_INDEX_PARAM_MAP:{ [key:string]:string } = {["personsecondnames"]:"surname", ["personfirstname"]:"name",
|
public PERSON_INDEX_PARAM_MAP:{ [key:string]:string } = {["personsecondnames"]:"surname", ["personfirstname"]:"name",
|
||||||
["personfullname"]:"fullname"};
|
["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},
|
["q"]:{name:"All fields",operator:"op", type:"keyword", indexField:null},
|
||||||
["surname"]:{name:"Surname",operator:"sr", type:"keyword" , indexField:"personsecondnames"},
|
["surname"]:{name:"Surname",operator:"sr", type:"keyword" , indexField:"personsecondnames"},
|
||||||
["name"]:{name:"Name",operator:"nm", type:"keyword", indexField:"personfirstname"},
|
["name"]:{name:"Name",operator:"nm", type:"keyword", indexField:"personfirstname"},
|
||||||
|
|
|
@ -99,13 +99,14 @@ export class StaticAutocomplete2Component {
|
||||||
this.listUpdated.emit({
|
this.listUpdated.emit({
|
||||||
value: this.list
|
value: this.list
|
||||||
});
|
});
|
||||||
|
if(this.list == null || this.list.length == 0 ){
|
||||||
|
this.warningMessage = "There are no results"
|
||||||
|
return
|
||||||
|
}
|
||||||
this.done = true;
|
this.done = true;
|
||||||
if(this.keyword != ""){
|
if(this.keyword != ""){
|
||||||
this.filter();
|
this.filter();
|
||||||
}
|
}
|
||||||
if(this.list.length == 0 ){
|
|
||||||
this.warningMessage = "There are no results"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
filter() {
|
filter() {
|
||||||
if(this.done){
|
if(this.done){
|
||||||
|
@ -207,6 +208,9 @@ export class StaticAutocomplete2Component {
|
||||||
|
|
||||||
}
|
}
|
||||||
private getSelectedNameFromGivenId(){
|
private getSelectedNameFromGivenId(){
|
||||||
|
if(this.list == null ){
|
||||||
|
return;
|
||||||
|
}
|
||||||
for( var i = 0; i < this.list.length; i++){
|
for( var i = 0; i < this.list.length; i++){
|
||||||
if(this.list[i].id == this.selectedValue){
|
if(this.list[i].id == this.selectedValue){
|
||||||
this.selectedValue = this.list[i].label;
|
this.selectedValue = this.list[i].label;
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -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"}]}
|
|
@ -89,6 +89,9 @@ app.get('/search/find/publications', ngApp);
|
||||||
app.get('/search/advanced/publications', ngApp);
|
app.get('/search/advanced/publications', ngApp);
|
||||||
app.get('/search/advanced/dataproviders', ngApp);
|
app.get('/search/advanced/dataproviders', ngApp);
|
||||||
app.get('/search/advanced/projects', 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/dataproviders', ngApp);
|
||||||
app.get('/search/find/projects', ngApp);
|
app.get('/search/find/projects', ngApp);
|
||||||
app.get('/search/find/datasets', ngApp);
|
app.get('/search/find/datasets', ngApp);
|
||||||
|
|
Loading…
Reference in New Issue