updating searchPages with refine results | tabs filled with extra query use special methods (getResultsForEntity(...) in components, search*ForEntity(...) in services)

git-svn-id: https://svn.driver.research-infrastructures.eu/driver/dnet40/modules/uoa-services-portal/trunk@44338 d315682c-612b-4755-9ff5-7f18f6832af3
This commit is contained in:
konstantina.galouni 2016-10-26 11:38:06 +00:00
parent 5d799b7fe7
commit 5b62ed7715
24 changed files with 497 additions and 142 deletions

View File

@ -122,7 +122,7 @@ export class ClaimDatasetComponent {
}
private searchOpenaire (term: string, size : number, page : number) {
this._searchDatasetsService.searchDatasets(term, page, size, "claim", []).subscribe(
this._searchDatasetsService.searchDatasets(term, null, page, size, []).subscribe(
data => {
if(data != null) {
this.openairePage=page;

View File

@ -162,7 +162,7 @@ private getCrossrefResults (term: string, size : number, page : number) {
}
private searchOpenaire(term: string, size : number, page : number) {
this.openaireStatus = this.errorCodes.LOADING;
this._searchPublicationsService.searchPublications(term, page, size, "claim").subscribe(
this._searchPublicationsService.searchPublications(term, null, page, size, []).subscribe(
data => {
if(data != null) {
this.openairePage=page;

View File

@ -100,11 +100,11 @@ export class DepositResultComponent {
}
private searchDataproviders() {
if(this.organization != undefined) {
this.searchDataprovidersComponent.getResults(this.organization.name, 1, 10, "searchPage");
} else if(this.organizationId != undefined) {
this.searchDataprovidersComponent.getResults(this.organizationId, 1, 10, "organizationPage");
}
// if(this.organization != undefined) {
// this.searchDataprovidersComponent.getResults(this.organization.name, false, 1, 10);
// } else if(this.organizationId != undefined) {
this.searchDataprovidersComponent.getResultsForEntity("organization", this.organizationId, 1, 10);
//}
this.linkToSearchDataproviders = OpenaireProperties.getLinkToSearchDataProviders();
}

View File

@ -108,10 +108,10 @@ export class TabsComponent {
}
private searchPublications() {
this.searchPublicationsComponent.getResults(this.id, 1, 10, "dataproviderPage");
this.searchPublicationsComponent.getResultsForEntity("dataprovider", this.id, 1, 10);
}
private searchDatasets() {
this.searchDatasetsComponent.getResults(this.id, 1, 10, "dataproviderPage");
this.searchDatasetsComponent.getResultsForEntity("dataprovider", this.id, 1, 10);
}
}

View File

@ -33,7 +33,7 @@
<span class="badge">{{projectsNum}}</span>
</a>
</li>
<li role="presentation">
<li (click)="searchDataprovidersInit()" role="presentation">
<a data-toggle="tab" href="#dataProvidersTab">
Data Providers
<!--span *ngIf="organizationInfo.dataProviders == undefined" class="badge">0</span>

View File

@ -28,6 +28,7 @@ export class OrganizationComponent {
sub: any;
subDataproviders: any;
subDataprovidersCount: any;
private searchDataprovidersComponent : SearchDataprovidersComponent;
private linkToSearchDataproviders = "";
@ -51,15 +52,25 @@ export class OrganizationComponent {
}
});
this.subDataproviders = this.route.queryParams.subscribe(params => {
this.searchDataproviders();
});
this.subDataprovidersCount = this.route.queryParams.subscribe(params => {
this._searchDataprovidersService.numOfEntityDataproviders(this.organizationId, "organizations/").subscribe(
data => {
this.searchDataprovidersComponent.totalResults = data;
},
err => {
console.error(err);
}
);
})
}
ngOnDestroy() {
this.sub.unsubscribe();
this.subDataproviders.unsubscribe();
if(this.subDataproviders != undefined) {
this.subDataproviders.unsubscribe();
}
this.subDataprovidersCount.unsubscribe();
}
private getOrganizationInfo () {
@ -136,7 +147,15 @@ export class OrganizationComponent {
private searchDataproviders() {
this.searchDataprovidersComponent.getResults(this.organizationId, 1, 10, "organizationPage");
this.searchDataprovidersComponent.getResultsForEntity("organization", this.organizationId, 1, 10);
this.linkToSearchDataproviders = OpenaireProperties.getLinkToSearchDataProviders();
}
private searchDataprovidersInit() {
if(this.subDataproviders == undefined && this.searchDataprovidersComponent.totalResults > 0) {
this.subDataproviders = this.route.queryParams.subscribe(params => {
this.searchDataproviders();
});
}
}
}

View File

@ -75,7 +75,7 @@ export class PersonComponent {
}
private searchDatasetsInit() {
if(this.subDatasets == undefined) {
if(this.subDatasets == undefined && this.searchDatasetsComponent.totalResults > 0) {
this.subDatasets = this.route.queryParams.subscribe(params => {
this.searchDatasets();
});
@ -113,12 +113,12 @@ export class PersonComponent {
}
private searchPublications() {
this.searchPublicationsComponent.getResults(this.personId, 1, 10, "personPage");
this.searchPublicationsComponent.getResultsForEntity("person", this.personId, 1, 10);
this.linkToSearchPublications = OpenaireProperties.getLinkToSearchPublications();
}
private searchDatasets() {
this.searchDatasetsComponent.getResults(this.personId, 1, 10, "personPage");
this.searchDatasetsComponent.getResultsForEntity("person", this.personId, 1, 10);
this.linkToSearchDatasets = OpenaireProperties.getLinkToSearchDatasets();
}
}

View File

@ -95,17 +95,17 @@ export class ProjectComponent implements OnInit{
}
private searchPublications() {
this.searchPublicationsComponent.getResults(this.projectId, 1, 10, "projectPage");
this.searchPublicationsComponent.getResultsForEntity("project", this.projectId, 1, 10);
this.linkToSearchPublications = OpenaireProperties.getLinkToSearchPublications();
}
private searchDatasets() {
this.searchDatasetsComponent.getResults(this.projectId, 1, 10, "projectPage");
this.searchDatasetsComponent.getResultsForEntity("project", this.projectId, 1, 10);
this.linkToSearchDatasets = OpenaireProperties.getLinkToSearchDatasets();
}
private searchDatasetsInit() {
if(this.subDatasets == undefined) {
if(this.subDatasets == undefined && this.searchDatasetsComponent.totalResults > 0) {
this.subDatasets = this.route.queryParams.subscribe(params => {
this.searchDatasets();
});

View File

@ -77,7 +77,7 @@ export class AdvancedSearchPublicationsComponent {
public getResults(parameters:string, page: number, size: number){
console.info("Advanced Search Publications: Execute search query "+parameters);
this._searchPublicationsService.searchPublications(parameters, page, size, 'searchPage').subscribe(
this._searchPublicationsService.searchPublications(parameters, null, page, size, []).subscribe(
data => {
this.totalResults = data[0];
console.info("searchPubl total="+this.totalResults);

View File

@ -57,14 +57,14 @@ export class SearchCompatibleDataprovidersComponent {
}
}
}
this.getResults(this.keyword, this.page, this.size, "searchPage");
// this.getResults(this.keyword, this.page, this.size, "searchPage");
});
}
private ngOnDestroy() {
this.sub.unsubscribe();
}
/*
public getResults(parameters:string, page: number, size: number, flag: string){
console.info("getResults: Execute search query "+parameters);
//q=(not datasourcecompatibilityid exact 'UNKNOWN' )and (not datasourcecompatibilityid exact 'hostedBy' ) and (not datasourcecompatibilityid exact 'notCompatible' )
@ -90,7 +90,7 @@ export class SearchCompatibleDataprovidersComponent {
}
);
}
*/
private setFilters(){
//TODO set filters from
}
@ -98,7 +98,7 @@ export class SearchCompatibleDataprovidersComponent {
private queryChanged($event) {
var parameters = $event.value;
console.info("queryChanged: Execute search query "+parameters);
this.getResults(parameters, this.page, this.size, "searchPage");
//this.getResults(parameters, this.page, this.size, "searchPage");
}
private createFilters():Filter[] {
var filter_names=["Type","Compatibility Level"];

View File

@ -182,7 +182,7 @@ export class SearchComponent {
this.activeTab = "publications";
if(this.reloadPublications) {
this.reloadPublications = false;
this.searchPublicationsComponent.getResults(this.keyword, 1, 10, "searchPage");
this.searchPublicationsComponent.getResults(this.keyword, false, 1, 10);
this.linkToSearchPublications = OpenaireProperties.getLinkToSearchPublications() + this.keyword;
}
}
@ -190,7 +190,7 @@ export class SearchComponent {
this.activeTab = "datasets";
if(this.reloadDatasets) {
this.reloadDatasets = false;
this.searchDatasetsComponent.getResults(this.keyword, 1, 10, "searchPage");
this.searchDatasetsComponent.getResults(this.keyword, false, 1, 10);
this.linkToSearchDatasets = OpenaireProperties.getLinkToSearchDatasets() + this.keyword;
}
}
@ -206,7 +206,7 @@ export class SearchComponent {
this.activeTab = "datproviders";
if(this.reloadDataproviders) {
this.reloadDataproviders = false;
this.searchDataProvidersComponent.getResults(this.keyword, 1, 10, "searchPage");
this.searchDataProvidersComponent.getResults(this.keyword, false, 1, 10);
this.linkToSearchDataproviders = OpenaireProperties.getLinkToSearchDataProviders() + this.keyword;
}
}
@ -214,7 +214,7 @@ export class SearchComponent {
this.activeTab = "organizations";
if(this.reloadOrganizations) {
this.reloadOrganizations = false;
this.searchOrganizationsComponent.getResults(this.keyword, 1, 10);
this.searchOrganizationsComponent.getResults(this.keyword, false, 1, 10);
this.linkToSearchOrganizations = OpenaireProperties.getLinkToSearchOrganizations() + this.keyword;
}
}
@ -222,7 +222,7 @@ export class SearchComponent {
this.activeTab = "people";
if(this.reloadPeople) {
this.reloadPeople = false;
this.searchPeopleComponent.getResults(this.keyword, 1, 10);
this.searchPeopleComponent.getResults(this.keyword, false, 1, 10);
this.linkToSearchPeople = OpenaireProperties.getLinkToSearchPeople() + this.keyword;
}
}

View File

@ -55,7 +55,7 @@ export class SearchDataprovidersComponent {
this.page = (params['page']=== undefined)?1:+params['page'];
this.filters = this.createFilters();
this.getResults(this.keyword, this.page, this.size, "searchPage");
this.getResults(this.keyword, true, this.page, this.size);
});
}
@ -63,6 +63,75 @@ export class SearchDataprovidersComponent {
this.sub.unsubscribe();
}
public getResultsForEntity(entity:string, id:string, page: number, size: number){
var parameters = "";
if(entity == "organization") {
parameters = "organizations/"+id;
}
if(parameters != "") {
this._searchDataprovidersService.searchDataprovidersForEntity(parameters, page, size).subscribe(
data => {
this.totalResults = data[0];
console.info("search Dataproviders for "+entity+": [Parameters:"+parameters+" ] [total results:"+this.totalResults+"]");
this.results = data[1];
var errorCodes:ErrorCodes = new ErrorCodes();
this.status = errorCodes.DONE;
if(this.totalResults == 0 ){
this.status = errorCodes.NONE;
}
},
err => {
console.error(err);
//TODO check erros (service not available, bad request)
// if( ){
// this.status = ErrorCodes.ERROR;
// }
var errorCodes:ErrorCodes = new ErrorCodes();
this.status = errorCodes.ERROR;
}
);
}
}
public getResults(keyword:string,refine:boolean, page: number, size: number){
var parameters = "";
if(keyword.length > 0){
parameters = "q=" + keyword + "&op=and";
}
this._getResults(parameters,refine,page,size);
}
private _getResults(parameters:string,refine:boolean, page: number, size: number){
this._searchDataprovidersService.searchDataproviders(parameters,(refine)?this.searchPage.getRefineFieldsQuery():null, page, size, this.searchPage.getFields()).subscribe(
data => {
this.totalResults = data[0];
console.info("search Datasets: [Parameters:"+parameters+" ] [total results:"+this.totalResults+"]");
this.results = data[1];
this.filters = this.searchPage.checkSelectedFilters(data[2]);
this.searchPage.updateBaseUrlWithParameters(this.filters);
var errorCodes:ErrorCodes = new ErrorCodes();
this.status = errorCodes.DONE;
if(this.totalResults == 0 ){
this.status = errorCodes.NONE;
}
},
err => {
console.error(err);
//TODO check erros (service not available, bad request)
// if( ){
// this.status = ErrorCodes.ERROR;
// }
var errorCodes:ErrorCodes = new ErrorCodes();
this.status = errorCodes.ERROR;
}
);
}
/*
public getResults(parameters:string, page: number, size: number, flag: string){
console.log("Search Dataproviders: Execute search query "+parameters);
@ -89,14 +158,14 @@ export class SearchDataprovidersComponent {
}
);
}
*/
private setFilters(){
//TODO set filters from
}
private queryChanged($event) {
var parameters = $event.value;
this.getResults(parameters, this.page, this.size, "searchPage");
this._getResults(parameters, true, this.page, this.size);
}
private createFilters():Filter[] {

View File

@ -55,8 +55,9 @@ export class SearchDatasetsComponent {
this.keyword = (params['keyword']?params['keyword']:'');
this.page = (params['page']=== undefined)?1:+params['page'];
// this.getRefineResults();
this.getResults(this.keyword, this.page, this.size, "searchPage");
//this.getResults(this.keyword, this.page, this.size, "searchPage");
this.searchPage.getSelectedFiltersFromUrl(params);
this.getResults(this.keyword, true, this.page, this.size);
});
}
@ -82,6 +83,8 @@ export class SearchDatasetsComponent {
}
);
}
/*
public getResults(parameters:string, page: number, size: number, flag: string){
console.info("Search Datasets: Execute search query "+parameters);
if(flag == 'searchPage' || flag == 'claim') {
@ -111,6 +114,80 @@ export class SearchDatasetsComponent {
}
);
}
*/
public getResultsForEntity(entity:string, id:string, page: number, size: number){
var parameters = "";
if(entity == "project") {
parameters = "projects/"+id;
} else if(entity == "person") {
parameters = "people/"+id;
} else if(entity == "dataprovider") {
parameters = "datasources/"+id;
}
if(parameters != "") {
this._searchDatasetsService.searchDatasetsForEntity(parameters, page, size).subscribe(
data => {
this.totalResults = data[0];
console.info("search Datasets for "+entity+": [Parameters:"+parameters+" ] [total results:"+this.totalResults+"]");
this.results = data[1];
var errorCodes:ErrorCodes = new ErrorCodes();
this.status = errorCodes.DONE;
if(this.totalResults == 0 ){
this.status = errorCodes.NONE;
}
},
err => {
console.error(err);
//TODO check erros (service not available, bad request)
// if( ){
// this.status = ErrorCodes.ERROR;
// }
var errorCodes:ErrorCodes = new ErrorCodes();
this.status = errorCodes.ERROR;
}
);
}
}
public getResults(keyword:string,refine:boolean, page: number, size: number){
var parameters = "";
if(keyword.length > 0){
parameters = "q=" + keyword + "&op=and";
}
this._getResults(parameters,refine,page,size);
}
private _getResults(parameters:string,refine:boolean, page: number, size: number){
this._searchDatasetsService.searchDatasets(parameters,(refine)?this.searchPage.getRefineFieldsQuery():null, page, size, this.searchPage.getFields()).subscribe(
data => {
this.totalResults = data[0];
console.info("search Datasets: [Parameters:"+parameters+" ] [total results:"+this.totalResults+"]");
this.results = data[1];
this.filters = this.searchPage.checkSelectedFilters(data[2]);
this.searchPage.updateBaseUrlWithParameters(this.filters);
var errorCodes:ErrorCodes = new ErrorCodes();
this.status = errorCodes.DONE;
if(this.totalResults == 0 ){
this.status = errorCodes.NONE;
}
},
err => {
console.error(err);
//TODO check erros (service not available, bad request)
// if( ){
// this.status = ErrorCodes.ERROR;
// }
var errorCodes:ErrorCodes = new ErrorCodes();
this.status = errorCodes.ERROR;
}
);
}
private setFilters(){
//TODO set filters from
@ -118,6 +195,7 @@ export class SearchDatasetsComponent {
private queryChanged($event) {
var parameters = $event.value;
this.getResults(parameters, this.page, this.size, "searchPage");
//this.getResults(parameters, this.page, this.size, "searchPage");
this._getResults(parameters, true, this.page, this.size);
}
}

View File

@ -57,13 +57,15 @@ export class SearchOrganizationsComponent {
this.page = (params['page']=== undefined)?1:+params['page'];
this.getRefineResults();
this.getResults(this.keyword, this.page, this.size);
this.getResults(this.keyword, true, this.page, this.size);
});
}
private ngOnDestroy() {
this.sub.unsubscribe();
}
public getRefineResults (){
// this._refineResultsService.getRefineResults(this.searchPage.getFields()).subscribe(
this._refineResultsService.getRefineResults(["projectendyear","projectstartyear","funderid","projectecsc39"]).subscribe(
@ -83,6 +85,7 @@ export class SearchOrganizationsComponent {
}
);
}
/*
public getResults(parameters:string, page: number, size: number){
console.info("getResults: Execute search query "+parameters);
@ -110,6 +113,79 @@ export class SearchOrganizationsComponent {
);
}
*/
public getResults(keyword:string,refine:boolean, page: number, size: number){
var parameters = "";
if(keyword.length > 0){
parameters = "q=" + keyword + "&op=and";
}
this._getResults(parameters,refine,page,size);
}
private _getResults(parameters:string,refine:boolean, page: number, size: number){
this._searchOrganizationsService.searchOrganizations(parameters,(refine)?this.searchPage.getRefineFieldsQuery():null, page, size, this.searchPage.getFields()).subscribe(
data => {
this.totalResults = data[0];
console.info("search Organizations: [Parameters:"+parameters+" ] [total results:"+this.totalResults+"]");
this.results = data[1];
this.filters = this.searchPage.checkSelectedFilters(data[2]);
this.searchPage.updateBaseUrlWithParameters(this.filters);
var errorCodes:ErrorCodes = new ErrorCodes();
this.status = errorCodes.DONE;
if(this.totalResults == 0 ){
this.status = errorCodes.NONE;
}
},
err => {
console.error(err);
//TODO check erros (service not available, bad request)
// if( ){
// this.status = ErrorCodes.ERROR;
// }
var errorCodes:ErrorCodes = new ErrorCodes();
this.status = errorCodes.ERROR;
}
);
}
/*
public getResults(keyword:string,refine:boolean, page: number, size: number){
var parameters = "";
if(keyword.length > 0){
parameters = "q=" + keyword + "&op=and";
}
this._getResults(parameters,refine,page,size);
}
private _getResults(parameters:string,refine:boolean, page: number, size: number){
this._searchOrganizationsService.searchOrganizations(parameters,(refine)?this.searchPage.getRefineFieldsQuery():null, page, size, this.searchPage.getFields()).subscribe(
data => {
this.totalResults = data[0];
console.info("search Organizations: [Parameters:"+parameters+" ] [total results:"+this.totalResults+"]");
this.results = data[1];
this.filters = this.searchPage.checkSelectedFilters(data[2]);
this.searchPage.updateBaseUrlWithParameters(this.filters);
var errorCodes:ErrorCodes = new ErrorCodes();
this.status = errorCodes.DONE;
if(this.totalResults == 0 ){
this.status = errorCodes.NONE;
}
},
err => {
console.error(err);
//TODO check erros (service not available, bad request)
// if( ){
// this.status = ErrorCodes.ERROR;
// }
var errorCodes:ErrorCodes = new ErrorCodes();
this.status = errorCodes.ERROR;
}
);
}
*/
private setFilters(){
//TODO set filters from
}
@ -117,6 +193,6 @@ export class SearchOrganizationsComponent {
private queryChanged($event) {
var parameters = $event.value;
console.info("queryChanged: Execute search query "+parameters);
this.getResults(parameters, this.page, this.size);
this._getResults(parameters, true, this.page, this.size);
}
}

View File

@ -91,7 +91,7 @@ export class SearchPeopleComponent {
});
var filter1:Filter = {title: "MYtitle"+i, filterId: "MYfilter_"+i, originalFilterId: "MYfilter_"+i, values : values, countSelectedValues:0, "filterOperator": 'or'}
this.filters.push(filter1);
this.getResults(this.keyword, this.page, this.size);
this.getResults(this.keyword, true, this.page, this.size);
}
@ -117,7 +117,7 @@ export class SearchPeopleComponent {
private ngOnDestroy() {
this.sub.unsubscribe();
}
/*
public getResults(parameters:string, page: number, size: number){
console.info("getResults: Execute search query "+parameters);
@ -144,6 +144,41 @@ export class SearchPeopleComponent {
}
);
}
*/
public getResults(keyword:string,refine:boolean, page: number, size: number){
var parameters = "";
if(keyword.length > 0){
parameters = "q=" + keyword + "&op=and";
}
this._getResults(parameters,refine,page,size);
}
private _getResults(parameters:string,refine:boolean, page: number, size: number){
this._searchPeopleService.searchPeople(parameters,(refine)?this.searchPage.getRefineFieldsQuery():null, page, size, this.searchPage.getFields()).subscribe(
data => {
this.totalResults = data[0];
console.info("search People: [Parameters:"+parameters+" ] [total results:"+this.totalResults+"]");
this.results = data[1];
this.filters = this.searchPage.checkSelectedFilters(data[2]);
this.searchPage.updateBaseUrlWithParameters(this.filters);
var errorCodes:ErrorCodes = new ErrorCodes();
this.status = errorCodes.DONE;
if(this.totalResults == 0 ){
this.status = errorCodes.NONE;
}
},
err => {
console.error(err);
//TODO check erros (service not available, bad request)
// if( ){
// this.status = ErrorCodes.ERROR;
// }
var errorCodes:ErrorCodes = new ErrorCodes();
this.status = errorCodes.ERROR;
}
);
}
private setFilters(){
//TODO set filters from
@ -152,7 +187,7 @@ export class SearchPeopleComponent {
private queryChanged($event) {
var parameters = $event.value;
console.info("queryChanged: Execute search query "+parameters);
this.getResults(parameters, this.page, this.size);
this._getResults(parameters, true, this.page, this.size);
}

View File

@ -45,7 +45,7 @@ export class SearchPublicationsComponent {
this.baseUrl = OpenaireProperties.getLinkToSearchPublications();
this.refineFields = this.searchFields.getPROJECT_FIELDS();
//get refine field filters from url parameters
if(!this.searchPage){
if(!this.searchPage){
this.searchPage = new SearchPageComponent(this._location);
}
}
@ -92,7 +92,7 @@ export class SearchPublicationsComponent {
});
var filter1:Filter = {title: "MYtitle"+i, filterId: "MYfilter_"+i, originalFilterId: "MYfilter_"+i, values : values, countSelectedValues:0, "filterOperator": 'or'}
this.filters.push(filter1);
this.getResults(this.keyword, this.page, this.size, "searchPage");
this.getResults(this.keyword, true, this.page, this.size);
}
@ -118,7 +118,7 @@ export class SearchPublicationsComponent {
private ngOnDestroy() {
this.sub.unsubscribe();
}
/*
public getResults(parameters:string, page: number, size: number, flag: string){
console.info("getResults: Execute search query "+parameters);
@ -145,6 +145,79 @@ export class SearchPublicationsComponent {
}
);
}
*/
public getResultsForEntity(entity:string, id:string, page: number, size: number){
var parameters = "";
if(entity == "project") {
parameters = "projects/"+id;
} else if(entity == "person") {
parameters = "people/"+id;
} else if(entity == "dataprovider") {
parameters = "datasources/"+id;
}
if(parameters != "") {
this._searchPublicationsService.searchPublicationsForEntity(parameters, page, size).subscribe(
data => {
this.totalResults = data[0];
console.info("search Datasets for "+entity+": [Parameters:"+parameters+" ] [total results:"+this.totalResults+"]");
this.results = data[1];
var errorCodes:ErrorCodes = new ErrorCodes();
this.status = errorCodes.DONE;
if(this.totalResults == 0 ){
this.status = errorCodes.NONE;
}
},
err => {
console.error(err);
//TODO check erros (service not available, bad request)
// if( ){
// this.status = ErrorCodes.ERROR;
// }
var errorCodes:ErrorCodes = new ErrorCodes();
this.status = errorCodes.ERROR;
}
);
}
}
public getResults(keyword:string,refine:boolean, page: number, size: number){
var parameters = "";
if(keyword.length > 0){
parameters = "q=" + keyword + "&op=and";
}
this._getResults(parameters,refine,page,size);
}
private _getResults(parameters:string,refine:boolean, page: number, size: number){
this._searchPublicationsService.searchPublications(parameters,(refine)?this.searchPage.getRefineFieldsQuery():null, page, size, this.searchPage.getFields()).subscribe(
data => {
this.totalResults = data[0];
console.info("search Publications: [Parameters:"+parameters+" ] [total results:"+this.totalResults+"]");
this.results = data[1];
this.filters = this.searchPage.checkSelectedFilters(data[2]);
this.searchPage.updateBaseUrlWithParameters(this.filters);
var errorCodes:ErrorCodes = new ErrorCodes();
this.status = errorCodes.DONE;
if(this.totalResults == 0 ){
this.status = errorCodes.NONE;
}
},
err => {
console.error(err);
//TODO check erros (service not available, bad request)
// if( ){
// this.status = ErrorCodes.ERROR;
// }
var errorCodes:ErrorCodes = new ErrorCodes();
this.status = errorCodes.ERROR;
}
);
}
private setFilters(){
//TODO set filters from
@ -153,7 +226,7 @@ export class SearchPublicationsComponent {
private queryChanged($event) {
var parameters = $event.value;
console.info("queryChanged: Execute search query "+parameters);
this.getResults(parameters, this.page, this.size, "searchPage");
this._getResults(parameters, true, this.page, this.size);
}

View File

@ -62,11 +62,11 @@ export class SearchPageComponent {
private sub: any;
constructor (private location: Location ) {
console.info("constructor of SearchPage");
}
ngOnInit() {
console.info("ngOnInit of SearchPage");
}
ngAfterViewChecked(){
@ -165,7 +165,7 @@ export class SearchPageComponent {
// if(this.keyword.length > 0 ){
// allLimits= this.keyword + allLimits /*+ ' keyword=' */;
// }
return (this.keyword.length > 0?'q='+this.keyword+"op=and":'')+allLimits;
return (this.keyword.length > 0?'q='+this.keyword+"&op=and":'')+allLimits;
}
//
private isFiltered(){

View File

@ -100,10 +100,12 @@ export class ProjectService {
name = data[2].legalname;
}
if(data[2].hasOwnProperty("to")) {
if(data[2].hasOwnProperty("to") && name != "") {
url = OpenaireProperties.getsearchLinkToOrganization()+data[2]['to'].content;
}
this.projectInfo.organizations.set(name, url);
if(name != "") {
this.projectInfo.organizations.set(name, url);
}
} else {
for(let i=0; i<data[2].length; i++) {
if(data[2][i].hasOwnProperty("legalshortname")) {
@ -112,10 +114,13 @@ export class ProjectService {
name = data[2][i].legalname;
}
if(data[2][i].hasOwnProperty("to")) {
if(data[2][i].hasOwnProperty("to") && name!="") {
url = OpenaireProperties.getsearchLinkToOrganization()+data[2][i]['to'].content;
}
this.projectInfo.organizations.set(name, url);
if(name != "") {
this.projectInfo.organizations.set(name, url);
}
}
}
}

View File

@ -325,11 +325,11 @@ export class PublicationService {
if(data[3].hasOwnProperty("externalreference")) {
this.publicationInfo.bioentities = new Map<string, Map<string, string>>();
let length = data[3]['externalreference'].length!=undefined ? data[3]['externalreference'].length : 1;
let length = Array.isArray(data[3]['externalreference']) ? data[3]['externalreference'].length : 1;
let mydata;
for(let i=0; i<length; i++) {
mydata = length > 1 ? data[3]['externalreference'][i] : data[3]['externalreference'];
mydata = Array.isArray(data[3]['externalreference']) ? data[3]['externalreference'][i] : data[3]['externalreference'];
if(!this.publicationInfo.bioentities.has(mydata.sitename)) {
this.publicationInfo.bioentities.set(mydata.sitename, new Map<string, string>());

View File

@ -3,39 +3,41 @@ import {Http, Response} from '@angular/http';
import {Observable} from 'rxjs/Observable';
import {OpenaireProperties} from '../utils/properties/openaireProperties';
import {SearchResult} from '../utils/entities/searchResult';
import {RefineResultsUtils} from './servicesUtils/refineResults.class';
@Injectable()
export class SearchDataprovidersService {
constructor(private http: Http) {}
searchDataproviders (params: string, page: number, size: number, flag: string):any {
searchDataproviders (params: string, refineParams:string, page: number, size: number, refineFields:string[] ):any {
console.info("In searchDataproviders");
let link = OpenaireProperties.getSearchAPIURL()+"datasources";
let link, url;
if(flag == "searchPage") {
link = OpenaireProperties.getSearchAPIURL()+"datasources";
url = link+"?";
if(params != '') {
url += params+"&page="+page+"&size="+size;
} else {
url += "page="+page+"&size="+size;
}
} else if(flag == 'organizationPage') {
url = OpenaireProperties.getSearchAPIURL() + 'organizations/'+params+"/datasources";
let url = link+"?";
if(params!= null && params != '' ) {
url += params;
}
if(refineParams!= null && params != '' ) {
url += refineParams;
}
url += "&page="+page+"&size="+size;
return this.http.get(url)
.map(res => <any> res.json())
.do(res => console.info(res))
//.map(res => []);
.map(res => [res['meta'].total, this.parseResults(res['results'])])
;
//.do(res => console.info(res))
.map(res => [res['meta'].total, this.parseResults(res['results']),RefineResultsUtils.parse(res['refineResults'],refineFields)]);
}
searchDataprovidersForEntity (params: string, page: number, size: number):any {
let link = OpenaireProperties.getSearchAPIURL();
let url = link+params+"/datasources";
return this.http.get(url)
.map(res => <any> res.json())
.map(res => [res['meta'].total, this.parseResults(res['results'])]);
}
parseResults(data: any): SearchResult[] {
let results: SearchResult[] = [];

View File

@ -11,36 +11,35 @@ export class SearchDatasetsService {
constructor(private http: Http) {}
searchDatasets (params: string, page: number, size: number, flag: string, refineFields:string[] ):any {
searchDatasets (params: string, refineParams:string, page: number, size: number, refineFields:string[] ):any {
let link, url;
let link = OpenaireProperties.getSearchAPIURL()+"datasets";
if(flag == 'searchPage' || flag == 'claim') {
link = OpenaireProperties.getSearchAPIURL()+"datasets";
url = link+"?";
if(params != '') {
url += params+"&page="+page+"&size="+size;
} else {
url += "page="+page+"&size="+size;
}
} else if(flag == 'personPage') {
url = OpenaireProperties.getSearchAPIURL() + 'people/'+params+"/datasets";
} else if(flag == 'projectPage') {
url = OpenaireProperties.getSearchAPIURL() + 'projects/'+params+"/datasets";
} else if(flag == 'dataproviderPage') {
url = OpenaireProperties.getSearchAPIURL() + 'datasources/'+params+"/datasets";
let url = link+"?";
if(params!= null && params != '' ) {
url += params;
}
if(refineParams!= null && params != '' ) {
url += refineParams;
}
url += "&page="+page+"&size="+size;
return this.http.get(url)
.map(res => <any> res.json())
.do(res => console.info(res))
//.map(res => []);
.map(res => [res['meta'].total, this.parseResults(res['results']),RefineResultsUtils.parse(res['refineResults'],refineFields)])
;
//.do(res => console.info(res))
.map(res => [res['meta'].total, this.parseResults(res['results']),RefineResultsUtils.parse(res['refineResults'],refineFields)]);
}
searchDatasetsForEntity (params: string, page: number, size: number):any {
let link = OpenaireProperties.getSearchAPIURL();
let url = link+params+"/datasets";
return this.http.get(url)
.map(res => <any> res.json())
.map(res => [res['meta'].total, this.parseResults(res['results'])]);
}
parseResults(data: any): SearchResult[] {
let results: SearchResult[] = [];

View File

@ -3,36 +3,35 @@ import {Http, Response} from '@angular/http';
import {Observable} from 'rxjs/Observable';
import {OpenaireProperties} from '../utils/properties/openaireProperties';
import {SearchResult} from '../utils/entities/searchResult';
import {RefineResultsUtils} from './servicesUtils/refineResults.class';
@Injectable()
export class SearchOrganizationsService {
constructor(private http: Http) {}
searchOrganizations (params: string, page: number, size: number):any {
searchOrganizations (params: string, refineParams:string, page: number, size: number, refineFields:string[] ):any {
console.info("In searchOrganizations");
console.info("In searchProjects");
let link, url;
let link = OpenaireProperties.getSearchAPIURL()+"organizations";
link = OpenaireProperties.getSearchAPIURL()+"organizations";
url = link+"?";
if(params != '') {
url += params+"&page="+page+"&size="+size;
} else {
url += "page="+page+"&size="+size;
let url = link+"?";
if(params!= null && params != '' ) {
url += params;
}
if(refineParams!= null && params != '' ) {
url += refineParams;
}
url += "&page="+page+"&size="+size;
return this.http.get(url)
.map(res => <any> res.json())
.do(res => console.info(res))
//.map(res => []);
.map(res => [res['meta'].total, this.parseResults(res['results'])])
;
//.do(res => console.info(res))
.map(res => [res['meta'].total, this.parseResults(res['results']),RefineResultsUtils.parse(res['refineResults'],refineFields)]);
}
parseResults(data: any): SearchResult[] {
let results: SearchResult[] = [];

View File

@ -3,34 +3,35 @@ import {Http, Response} from '@angular/http';
import {Observable} from 'rxjs/Observable';
import {OpenaireProperties} from '../utils/properties/openaireProperties';
import {SearchResult} from '../utils/entities/searchResult';
import {RefineResultsUtils} from './servicesUtils/refineResults.class';
@Injectable()
export class SearchPeopleService {
constructor(private http: Http) {}
searchPeople (params: string, page: number, size: number):any {
searchPeople (params: string, refineParams:string, page: number, size: number, refineFields:string[] ):any {
console.info("In searchPeople");
console.info("In searchProjects");
let link = OpenaireProperties.getSearchAPIURL()+"people";
let url = link+"?";
if(params != '') {
url += params+"&page="+page+"&size="+size;
} else {
url += "page="+page+"&size="+size;
if(params!= null && params != '' ) {
url += params;
}
if(refineParams!= null && params != '' ) {
url += refineParams;
}
url += "&page="+page+"&size="+size;
return this.http.get(url)
.map(res => <any> res.json())
.do(res => console.info(res))
//.map(res => []);
.map(res => [res['meta'].total, this.parseResults(res['results'])])
;
//.do(res => console.info(res))
.map(res => [res['meta'].total, this.parseResults(res['results']),RefineResultsUtils.parse(res['refineResults'],refineFields)]);
}
parseResults(data: any): SearchResult[] {
let results: SearchResult[] = [];

View File

@ -3,6 +3,7 @@ import {Http, Response} from '@angular/http';
import {Observable} from 'rxjs/Observable';
import {OpenaireProperties} from '../utils/properties/openaireProperties';
import {SearchResult} from '../utils/entities/searchResult';
import {RefineResultsUtils} from './servicesUtils/refineResults.class';
@Injectable()
export class SearchPublicationsService {
@ -10,37 +11,35 @@ export class SearchPublicationsService {
constructor(private http: Http) {}
searchPublications (params: string, page: number, size: number, flag: string):any {
searchPublications (params: string, refineParams:string, page: number, size: number, refineFields:string[] ):any {
console.info("In searchPublications");
let link = OpenaireProperties.getSearchAPIURL()+"publications";
let link, url;
if(flag == 'searchPage' || flag == 'claim') {
link = OpenaireProperties.getSearchAPIURL()+"publications";
url = link+"?";
if(params != '') {
url += params+"&page="+page+"&size="+size;
} else {
url += "page="+page+"&size="+size;
}
} else if(flag == 'projectPage') {
url = OpenaireProperties.getSearchAPIURL() + 'projects/'+params+"/publications";
} else if(flag == 'dataproviderPage') {
url = OpenaireProperties.getSearchAPIURL() + 'datasources/'+params+"/publications";
} else if(flag == 'personPage') {
url = OpenaireProperties.getSearchAPIURL() + 'people/'+params+"/publications";
let url = link+"?";
if(params!= null && params != '' ) {
url += params;
}
if(refineParams!= null && params != '' ) {
url += refineParams;
}
url += "&page="+page+"&size="+size;
return this.http.get(url)
.map(res => <any> res.json())
//.do(res => console.info(res))
.map(res => [res['meta'].total, this.parseResults(res['results'])])
;
.map(res => [res['meta'].total, this.parseResults(res['results']),RefineResultsUtils.parse(res['refineResults'],refineFields)]);
}
searchPublicationsForEntity (params: string, page: number, size: number):any {
let link = OpenaireProperties.getSearchAPIURL();
let url = link+params+"/publications";
return this.http.get(url)
.map(res => <any> res.json())
.map(res => [res['meta'].total, this.parseResults(res['results'])]);
}
parseResults(data: any): SearchResult[] {
let results: SearchResult[] = [];