1. Add 'sorting' option by 'relevance' or 'date' in simple search pages for results (publications, datasets, software, orps).

2. Add 'results per page' option in all simple search, advanced search and search table view pages.
3. Add 'sortBy' field in 'searchUtils.class'.


git-svn-id: https://svn.driver.research-infrastructures.eu/driver/dnet40/modules/uoa-services-library/trunk/ng-openaire-library/src/app@53919 d315682c-612b-4755-9ff5-7f18f6832af3
This commit is contained in:
konstantina.galouni 2018-11-21 15:28:38 +00:00
parent d17ca55f06
commit 0886a26ac9
34 changed files with 249 additions and 59 deletions

View File

@ -545,7 +545,7 @@ openaireORPPageChange($event) {
}
);
}else{
this._searchDatasetsService.searchDatasets('q='+term+'', null, page, size, [], this.properties).subscribe(
this._searchDatasetsService.searchDatasets('q='+term+'', null, page, size, "", [], this.properties).subscribe(
data => {
if(data != null) {
this.openaireDataPage=page;

View File

@ -80,6 +80,12 @@ export class AdvancedSearchDataProvidersComponent {
let page = (params['page']=== undefined)?0:+params['page'];
this.searchUtils.page = ( page < 1 ) ? 1 : page;
this.searchUtils.size = (params['size']=== undefined)?10:+params['size'];
if(this.searchUtils.size != 5 && this.searchUtils.size != 10 && this.searchUtils.size != 20 && this.searchUtils.size != 50) {
this.searchUtils.size = 10;
}
this.searchPage.fieldIds = this.fieldIds;
this.selectedFields =[];
this.searchPage.selectedFields = this.selectedFields;

View File

@ -80,6 +80,12 @@ export class AdvancedSearchDatasetsComponent {
let page = (params['page']=== undefined)?1:+params['page'];
this.searchUtils.page = ( page <= 0 ) ? 1 : page;
this.searchUtils.size = (params['size']=== undefined)?10:+params['size'];
if(this.searchUtils.size != 5 && this.searchUtils.size != 10 && this.searchUtils.size != 20 && this.searchUtils.size != 50) {
this.searchUtils.size = 10;
}
this.searchPage.fieldIds = this.fieldIds;
this.selectedFields =[];
this.searchPage.selectedFields = this.selectedFields;

View File

@ -80,6 +80,12 @@ public resourcesQuery = "(oaftype exact organization)";
let page = (params['page']=== undefined)?1:+params['page'];
this.searchUtils.page = ( page <= 0 ) ? 1 : page;
this.searchUtils.size = (params['size']=== undefined)?10:+params['size'];
if(this.searchUtils.size != 5 && this.searchUtils.size != 10 && this.searchUtils.size != 20 && this.searchUtils.size != 50) {
this.searchUtils.size = 10;
}
this.searchPage.fieldIds = this.fieldIds;
this.selectedFields =[];
this.searchPage.selectedFields = this.selectedFields;

View File

@ -80,6 +80,12 @@ export class AdvancedSearchOrpsComponent {
let page = (params['page']=== undefined)?1:+params['page'];
this.searchUtils.page = ( page <= 0 ) ? 1 : page;
this.searchUtils.size = (params['size']=== undefined)?10:+params['size'];
if(this.searchUtils.size != 5 && this.searchUtils.size != 10 && this.searchUtils.size != 20 && this.searchUtils.size != 50) {
this.searchUtils.size = 10;
}
this.searchPage.fieldIds = this.fieldIds;
this.selectedFields =[];
this.searchPage.selectedFields = this.selectedFields;

View File

@ -81,6 +81,12 @@ export class AdvancedSearchProjectsComponent {
let page = (params['page']=== undefined)?1:+params['page'];
this.searchUtils.page = ( page <= 0 ) ? 1 : page;
this.searchUtils.size = (params['size']=== undefined)?10:+params['size'];
if(this.searchUtils.size != 5 && this.searchUtils.size != 10 && this.searchUtils.size != 20 && this.searchUtils.size != 50) {
this.searchUtils.size = 10;
}
this.searchPage.fieldIds = this.fieldIds;
this.selectedFields =[];
this.searchPage.selectedFields = this.selectedFields;

View File

@ -85,6 +85,12 @@ export class AdvancedSearchPublicationsComponent {
let page = (params['page']=== undefined)?1:+params['page'];
this.searchUtils.page = ( page <= 0 ) ? 1 : page;
this.searchUtils.size = (params['size']=== undefined)?10:+params['size'];
if(this.searchUtils.size != 5 && this.searchUtils.size != 10 && this.searchUtils.size != 20 && this.searchUtils.size != 50) {
this.searchUtils.size = 10;
}
this.searchPage.fieldIds = this.fieldIds;
this.selectedFields =[];
this.searchPage.selectedFields = this.selectedFields;

View File

@ -81,6 +81,12 @@ export class AdvancedSearchSoftwareComponent {
let page = (params['page']=== undefined)?1:+params['page'];
this.searchUtils.page = ( page <= 0 ) ? 1 : page;
this.searchUtils.size = (params['size']=== undefined)?10:+params['size'];
if(this.searchUtils.size != 5 && this.searchUtils.size != 10 && this.searchUtils.size != 20 && this.searchUtils.size != 50) {
this.searchUtils.size = 10;
}
this.searchPage.fieldIds = this.fieldIds;
this.selectedFields =[];
this.searchPage.selectedFields = this.selectedFields;

View File

@ -42,6 +42,9 @@
<div *ngIf="openaireLink"> <a class="uk-margin-top uk-button uk-button-text" [href]=openaireLink target="_blank" >Results in OpenAIRE</a></div>
<div class="uk-align-center uk-margin-remove-bottom">
<search-paging [type]="type" [loadPaging]="loadPaging" [oldTotalResults]="oldTotalResults" [(searchUtils)] = "searchUtils" [(results)] = "results" [(baseUrl)] = "searchUtils.baseUrl" [(parameterNames)] = "parameterNames" [(parameterValues)] = "parameterValues" ></search-paging>
<div class="uk-grid uk-margin-bottom">
<search-results-per-page class="uk-width-1-2@m uk-width-1-1" [(size)]="searchUtils.size" (sizeChange)="sizeChanged($event)"></search-results-per-page>
</div>
</div>
<search-download class="uk-width-1-1@s uk-hidden@m" [type]="csvPath" [csvParams]="csvParams" [totalResults]="searchUtils.totalResults" ></search-download>
@ -54,12 +57,15 @@
</search-result>
</div>
<div [class]="searchUtils.page > pagingLimit ? 'search-results' : ''" *ngIf="(searchUtils.page >= pagingLimit) && (searchUtils.totalResults > resultsPerPage*pagingLimit)">
<div [class]="searchUtils.page > pagingLimit ? 'search-results' : ''" *ngIf="(searchUtils.page >= pagingLimit) && (searchUtils.totalResults > searchUtils.size*pagingLimit)">
<p class="uk-alert-warning" uk-alert>For more results please try a new, more specific query</p>
</div>
<div class="uk-align-center uk-margin-remove-bottom">
<search-paging [type]="type" [loadPaging]="loadPaging" [oldTotalResults]="oldTotalResults" [(searchUtils)] = "searchUtils" [(results)] = "results" [(baseUrl)] = "searchUtils.baseUrl" [(parameterNames)] = "parameterNames" [(parameterValues)] = "parameterValues" ></search-paging>
<div class="uk-grid uk-margin-bottom">
<search-results-per-page class="uk-width-1-2@m uk-width-1-1" [(size)]="searchUtils.size" (sizeChange)="sizeChanged($event)"></search-results-per-page>
</div>
</div>
<a *ngIf="properties.showLastIndexInformationLink" class="last_index_info uk-button-text"

View File

@ -205,6 +205,13 @@ export class AdvancedSearchPageComponent {
if(includePage && this.searchUtils.page != 1){
params += "&page="+this.searchUtils.page;
}
if(this.searchUtils.size != 10) {
params+=((params.length == 0)?'':'&') + 'size=' + this.searchUtils.size;
this.parameterNames.push("size");
this.parameterValues.push(""+this.searchUtils.size);
}
return '?'+params;
}
public createQueryParameters(){
@ -271,6 +278,11 @@ export class AdvancedSearchPageComponent {
this.searchUtils.page = +$event.value;
this.goTo(this.searchUtils.page);
}
sizeChanged($event) {
this.searchUtils.size = $event.value;
this.goTo(1);
}
/*
* Update the url with proper parameters. This is used as base url in Paging Component
*/

View File

@ -9,6 +9,7 @@ import{LoadingModalModule} from '../../utils/modal/loadingModal.module';
import {ReportsServiceModule} from '../../services/reportsService.module';
import {SearchDownloadModule} from './searchDownload.module';
import{SearchPagingModule} from './searchPaging.module';
import {SearchResultsPerPageModule} from './searchResultsPerPage.module';
import {AdvancedSearchFormModule} from '../searchUtils/advancedSearchForm.module';
import {PiwikServiceModule} from '../../utils/piwik/piwikService.module';
@ -20,7 +21,7 @@ import { SEOServiceModule } from '../../sharedComponents/SEO/SEOService.module';
@NgModule({
imports: [
CommonModule, FormsModule, RouterModule, SearchResultsModule, LoadingModalModule, ReportsServiceModule, SearchPagingModule, AdvancedSearchFormModule, SearchDownloadModule, PiwikServiceModule, HelperModule,
Schema2jsonldModule, SEOServiceModule
Schema2jsonldModule, SEOServiceModule, SearchResultsPerPageModule
],
declarations: [
AdvancedSearchPageComponent,

View File

@ -144,7 +144,13 @@
<!-- <div [class]="(showRefine)?'uk-width-expand@m uk-first-column':''" > -->
<div *ngIf="openaireLink"> <a class="uk-margin-top uk-button uk-button-text" [href]=openaireLink target="_blank" >Results in OpenAIRE</a></div>
<div class="uk-align-center uk-margin-remove-bottom">
<search-paging [type]="type" [loadPaging]="loadPaging" [oldTotalResults]="oldTotalResults" [(searchUtils)] = "searchUtils" [(results)] = "results" [(baseUrl)] = "baseUrl" [(parameterNames)] = "parameterNames" [(parameterValues)] = "parameterValues" ></search-paging>
<search-paging [type]="type" [loadPaging]="loadPaging" [oldTotalResults]="oldTotalResults" [(searchUtils)] = "searchUtils" [(results)] = "results" [(baseUrl)] = "baseUrl" [(parameterNames)] = "parameterNames" [(parameterValues)] = "parameterValues" ></search-paging>
<div class="uk-grid uk-margin-bottom">
<!-- <search-results-per-page class="uk-width-1-2@m uk-width-1-1" [(searchUtils)] = "searchUtils" [(baseUrl)] = "baseUrl" [(parameterNames)] = "parameterNames" [(parameterValues)] = "parameterValues" ></search-results-per-page> -->
<!-- <search-sorting class="uk-width-1-2@m uk-width-1-1" *ngIf="sort" [(searchUtils)] = "searchUtils" [(sortBy)]="sortBy" [(baseUrl)] = "baseUrl" [(parameterNames)] = "parameterNames" [(parameterValues)] = "parameterValues" ></search-sorting> -->
<search-results-per-page class="uk-width-1-2@m uk-width-1-1" [(size)]="searchUtils.size" (sizeChange)="sizeChanged($event)"></search-results-per-page>
<search-sorting class="uk-width-1-2@m uk-width-1-1" *ngIf="sort" [(sortBy)]="searchUtils.sortBy" (sortByChange)="sortByChanged($event)"></search-sorting>
</div>
</div>
<!-- *ngIf="tableViewLink || searchUtils.totalResults <= csvLimit" -->
<!-- <div class="uk-width-1-1@s uk-hidden@m">
@ -167,12 +173,19 @@
</search-result>
</div>
<div [class]="searchUtils.page > pagingLimit ? 'search-results' : ''" *ngIf="(searchUtils.page >= pagingLimit) && (searchUtils.totalResults > resultsPerPage*pagingLimit)">
<div [class]="searchUtils.page > pagingLimit ? 'search-results' : ''" *ngIf="(searchUtils.page >= pagingLimit) && (searchUtils.totalResults > searchUtils.size*pagingLimit)">
<p class="uk-alert-warning" uk-alert>For more results please try a new, more specific query</p>
</div>
<div class="uk-align-center uk-margin-remove-bottom">
<search-paging [type]="type" [loadPaging]="loadPaging" [oldTotalResults]="oldTotalResults" [(searchUtils)] = "searchUtils" [(results)] = "results" [(baseUrl)] = "baseUrl" [(parameterNames)] = "parameterNames" [(parameterValues)] = "parameterValues" ></search-paging>
<search-paging [type]="type" [loadPaging]="loadPaging" [oldTotalResults]="oldTotalResults" [(searchUtils)] = "searchUtils" [(results)] = "results" [(baseUrl)] = "baseUrl" [(parameterNames)] = "parameterNames" [(parameterValues)] = "parameterValues" ></search-paging>
<div class="uk-grid uk-margin-bottom">
<search-results-per-page class="uk-width-1-2@m uk-width-1-1" [(size)]="searchUtils.size" (sizeChange)="sizeChanged($event)"></search-results-per-page>
<!-- <search-results-per-page class="uk-width-1-2@m uk-width-1-1"></search-results-per-page> -->
<!--[(size)]="searchUtils.size" (sizeChange)="sizeChanged($event)"-->
<!-- <search-sorting class="uk-width-1-2@m uk-width-1-1" *ngIf="sort" [(searchUtils)] = "searchUtils" [(sortBy)]="sortBy" [(baseUrl)] = "baseUrl" [(parameterNames)] = "parameterNames" [(parameterValues)] = "parameterValues" ></search-sorting> -->
<search-sorting class="uk-width-1-2@m uk-width-1-1" *ngIf="sort" [(sortBy)]="searchUtils.sortBy" (sortByChange)="sortByChanged($event)"></search-sorting>
</div>
</div>
<a *ngIf="properties.showLastIndexInformationLink" class="last_index_info uk-button-text"

View File

@ -51,6 +51,8 @@ export class SearchPageComponent {
@Input() searchFormClass: string = "searchForm";
@Input() openaireLink: string;
@Input() connectCommunityId: string;
@Input() sort: boolean = false;
//@Input() sortBy: string = "";
@ViewChild (ModalLoading) loading : ModalLoading ;
public fieldIdsMap;//: { [key:string]:{ name:string, operator:string, type:string, indexField:string, equalityOperator:string }};
private searchFieldsHelper:SearchFields = new SearchFields();
@ -355,6 +357,26 @@ export class SearchPageComponent {
if(this.searchUtils.page != 1 && includePage){
allLimits+=((allLimits.length == 0)?'?':'&') + 'page=' + this.searchUtils.page;
}
if(this.searchUtils.size != 10) {
allLimits+=((allLimits.length == 0)?'?':'&') + 'size=' + this.searchUtils.size;
this.parameterNames.push("size");
this.parameterValues.push(""+this.searchUtils.size);
}
if(this.sort && this.searchUtils.sortBy) {
allLimits+=((allLimits.length == 0)?'?':'&') + 'sortBy=' + this.searchUtils.sortBy;
this.parameterNames.push("sortBy");
this.parameterValues.push(this.searchUtils.sortBy);
} /*else {
let index: number = this.parameterNames.findIndex(function(element) {
return element == "sortBy";
});
console.info("index of sortby: "+index);
if(index >= 0) {
console.info("------remove sortBy------");
this.parameterNames.splice(index, 1);
this.parameterValues.splice(index, 1);
}
}*/
return allLimits;
}
@ -525,6 +547,16 @@ export class SearchPageComponent {
this.goTo(1);
}
sizeChanged($event) {
this.searchUtils.size = $event.value;
this.goTo(1);
}
sortByChanged($event) {
this.searchUtils.sortBy = $event.value;
this.goTo(1);
}
/*
* Get A sub-array of this.refineFields array, which contains the ids of the selected filters
*/

View File

@ -13,6 +13,8 @@ import {SearchFilterModule} from './searchFilter.module';
import{LoadingModalModule} from '../../utils/modal/loadingModal.module';
import {ReportsServiceModule} from '../../services/reportsService.module';
import{SearchPagingModule} from './searchPaging.module';
import {SearchResultsPerPageModule} from './searchResultsPerPage.module';
import {SearchSortingModule} from './searchSorting.module';
import {SearchDownloadModule} from './searchDownload.module';
import {ModalModule} from '../../utils/modal/modal.module';
import {PiwikServiceModule} from '../../utils/piwik/piwikService.module';
@ -26,7 +28,7 @@ import { SEOServiceModule } from '../../sharedComponents/SEO/SEOService.module';
imports: [
CommonModule, FormsModule,RouterModule, SearchFormModule, SearchResultsModule,
LoadingModalModule, ReportsServiceModule,
SearchPagingModule, SearchDownloadModule, ModalModule, SearchFilterModule, PiwikServiceModule, HelperModule, Schema2jsonldModule, SEOServiceModule
SearchPagingModule, SearchResultsPerPageModule, SearchSortingModule, SearchDownloadModule, ModalModule, SearchFilterModule, PiwikServiceModule, HelperModule, Schema2jsonldModule, SEOServiceModule
],
declarations: [
SearchPageComponent

View File

@ -152,14 +152,17 @@
<div class="uk-width-expand@m uk-width-1-1@s uk-first-column custom-dataTable-content" >
<div *ngIf="openaireLink"> <a class="uk-margin-top uk-button uk-button-text" [href]=openaireLink target="_blank" >Results in OpenAIRE</a></div>
<div *ngIf="searchUtils.totalResults > 0" class="uk-align-center uk-margin-remove-bottom">
<div class="searchPaging uk-panel uk-margin-top uk-grid uk-margin-bottom">
<div class="searchPaging uk-panel uk-margin-top uk-grid">
<span class="uk-width-1-1@s uk-width-1-2@m">
{{searchUtils.totalResults | number}} {{type}}, page {{searchUtils.page | number}} of {{(totalPages()) | number}}
</span>
<span class="float-children-right-at-medium margin-small-top-at-small uk-width-1-1@s uk-width-1-2@m">
<paging-no-load [currentPage]="searchUtils.page" [totalResults]="searchUtils.totalResults" [size]="rowsOnPage" (pageChange)="goTo($event.value, false)"></paging-no-load>
<paging-no-load [currentPage]="searchUtils.page" [totalResults]="searchUtils.totalResults" [size]="searchUtils.size" (pageChange)="goTo($event.value, false)"></paging-no-load>
</span>
</div>
<div class="uk-margin-bottom">
<search-results-per-page class="uk-width-1-1" [(size)]="searchUtils.size" (sizeChange)="sizeChanged($event)"></search-results-per-page>
</div>
</div>
<!-- <div *ngIf="searchViewLink" class="uk-width-1-1@s uk-hidden@m">
@ -263,14 +266,17 @@
</div>
<div *ngIf="searchUtils.totalResults > 0" class="uk-align-center uk-margin-remove-bottom">
<div class="searchPaging uk-panel uk-margin-top uk-grid uk-margin-bottom">
<div class="searchPaging uk-panel uk-margin-top uk-grid">
<span class="uk-width-1-1@s uk-width-1-2@m">
{{searchUtils.totalResults | number}} {{type}}, page {{searchUtils.page | number}} of {{(totalPages()) | number}}
</span>
<span class="float-children-right-at-medium margin-small-top-at-small uk-width-1-1@s uk-width-1-2@m">
<paging-no-load [currentPage]="searchUtils.page" [totalResults]="searchUtils.totalResults" [size]="rowsOnPage" (pageChange)="goTo($event.value, false)"></paging-no-load>
<paging-no-load [currentPage]="searchUtils.page" [totalResults]="searchUtils.totalResults" [size]="searchUtils.size" (pageChange)="goTo($event.value, false)"></paging-no-load>
</span>
</div>
<div class="uk-margin-bottom">
<search-results-per-page class="uk-width-1-1" [(size)]="searchUtils.size" (sizeChange)="sizeChanged($event)"></search-results-per-page>
</div>
</div>
<a *ngIf="properties.showLastIndexInformationLink" class="last_index_info uk-button-text"

View File

@ -65,7 +65,6 @@ export class SearchPageTableViewComponent implements OnInit, AfterViewInit {
public parameterNames:string[] =[];
public parameterValues:string[] =[];
public rowsOnPage:number = 10;
public isPiwikEnabled;
@ -104,7 +103,7 @@ export class SearchPageTableViewComponent implements OnInit, AfterViewInit {
"paging": true,
"searching": false,
"lengthChange": false,
"pageLength": this.rowsOnPage
"pageLength": this.searchUtils.size
};
this.updateTitle(this.pageTitle);
var description = "Openaire, search, repositories, open access, type, content provider, funder, project, " + this.type + "," +this.pageTitle;
@ -144,7 +143,7 @@ export class SearchPageTableViewComponent implements OnInit, AfterViewInit {
totalPages(): number {
let totalPages:any = this.searchUtils.totalResults/(this.rowsOnPage);
let totalPages:any = this.searchUtils.totalResults/(this.searchUtils.size);
if(!(Number.isInteger(totalPages))) {
totalPages = (parseInt(totalPages, 10) + 1);
}
@ -296,7 +295,6 @@ public getParametersFromUrl(params) {
var urlParameters = this.createUrlParameters(this.filters,true);
this.location.go(location.pathname,urlParameters);
}
filterChanged($event){
@ -306,6 +304,13 @@ public getParametersFromUrl(params) {
this.searchUtils.keyword = $event.value;
this.goTo(1);
}
sizeChanged($event) {
this.searchUtils.size = $event.value;
var table = $('#dpTable').DataTable();
table.page.len( this.searchUtils.size ).draw();
this.goTo(1);
}
/*
downloadClicked($event) {
if($event.value == true) {

View File

@ -13,6 +13,7 @@ import{SearchPagingModule} from './searchPaging.module';
import {SearchDownloadModule} from './searchDownload.module';
import {ModalModule} from '../../utils/modal/modal.module';
import {PagingModule} from '../../utils/paging.module';
import {SearchResultsPerPageModule} from './searchResultsPerPage.module';
import {DataTablesModule} from 'angular-datatables';
import {PiwikServiceModule} from '../../utils/piwik/piwikService.module';
@ -29,7 +30,7 @@ import { SEOServiceModule } from '../../sharedComponents/SEO/SEOService.module';
CommonModule, FormsModule,RouterModule, SearchFormModule, SearchResultsModule, LoadingModalModule,
ReportsServiceModule, SearchPagingModule, SearchDownloadModule, ModalModule, PagingModule,
DataTablesModule, SearchFilterModule, PiwikServiceModule, HelperModule, ErrorMessagesModule,
Schema2jsonldModule, SEOServiceModule
Schema2jsonldModule, SEOServiceModule, SearchResultsPerPageModule
],
declarations: [
SearchPageTableViewComponent

View File

@ -5,7 +5,7 @@ import {ErrorCodes} from '../../utils/properties/errorCodes';
@Component({
selector: 'search-paging',
template: `
<div class= "searchPaging uk-panel uk-margin-top uk-grid uk-margin-bottom">
<div class= "searchPaging uk-panel uk-margin-top uk-grid">
<div class="uk-width-1-1@s uk-width-1-2@m" *ngIf="results && searchUtils.totalResults > 0">
{{searchUtils.totalResults|number}} {{type}}, page {{searchUtils.page | number}} of {{(totalPages(searchUtils.totalResults)|number)}}
</div>

View File

@ -6,5 +6,5 @@ export class SearchUtilsClass{
baseUrl:string = "";
totalResults = 0;
totalResultsNoFilters:number; // for organization landing - tab with projects
sortBy: string = "";
}

View File

@ -15,7 +15,7 @@ import{EnvProperties} from '../../utils/properties/env-properties';
template: `
<search-page pageTitle="Search Content Providers"
formPlaceholderText = "Search for Content Providers"
formPlaceholderText = "Search for Content Providers"
type="content providers" entityType="dataprovider" [(filters)] = "filters"
[(results)] = "results" [(searchUtils)] = "searchUtils" [baseUrl] = "baseUrl"
(queryChange)="queryChanged($event)"
@ -23,7 +23,7 @@ import{EnvProperties} from '../../utils/properties/env-properties';
[disableForms]="disableForms"
[loadPaging]="loadPaging"
[oldTotalResults]="oldTotalResults"
[piwikSiteId]=piwikSiteId
[piwikSiteId]=piwikSiteId
searchFormClass="datasourcesSearchForm">
</search-page>
@ -87,6 +87,10 @@ properties: EnvProperties;
}
firstLoad = false;
this.searchUtils.page = (params['page']=== undefined)?1:+params['page'];
this.searchUtils.size = (params['size']=== undefined)?10:+params['size'];
if(this.searchUtils.size != 5 && this.searchUtils.size != 10 && this.searchUtils.size != 20 && this.searchUtils.size != 50) {
this.searchUtils.size = 10;
}
var queryParameters = this.searchPage.getQueryParametersFromUrl(params);
this._getResults(queryParameters, refine, this.searchUtils.page, this.searchUtils.size);
@ -287,7 +291,7 @@ public getResultsForDeposit(id:string, type:string, page: number, size: number)
if(keyword.length > 0){
parameters = "q="+ keyword;
}
this._getResults(parameters,refine,page,this.searchUtils.size);
this._getResults(parameters,refine,page, size);
}
private _getResults(parameters:string,refine:boolean, page: number, size: number){
if(page > this.pagingLimit) {

View File

@ -29,8 +29,10 @@ import{EnvProperties} from '../../utils/properties/env-properties';
[(openaireLink)]=openaireLink
[(advancedSearchParameters)]=advancedSearchParameters
[piwikSiteId]=piwikSiteId
[(connectCommunityId)]=connectCommunityId >
[(connectCommunityId)]=connectCommunityId
[(sort)]=sort >
</search-page>
<!--[(sortBy)]="sortBy"-->
`
})
@ -57,6 +59,8 @@ export class SearchDatasetsComponent {
public loadPaging: boolean = true;
public oldTotalResults: number = 0;
pagingLimit = 0;
//public sortBy: string = "";
public sort: boolean = true;
properties: EnvProperties;
@ViewChild (SearchPageComponent) searchPage : SearchPageComponent ;
constructor (private route: ActivatedRoute, private _searchDatasetsService: SearchDatasetsService ) {
@ -92,9 +96,18 @@ properties: EnvProperties;
}
firstLoad = false;
this.searchUtils.page = (params['page']=== undefined)?1:+params['page'];
this.searchUtils.size = (params['size']=== undefined)?10:+params['size'];
if(this.searchUtils.size != 5 && this.searchUtils.size != 10 && this.searchUtils.size != 20 && this.searchUtils.size != 50) {
this.searchUtils.size = 10;
}
this.searchUtils.sortBy = (params['sortBy'])?params['sortBy']:'';
if(this.searchUtils.sortBy && this.searchUtils.sortBy != "resultdateofacceptance,descending") {
this.searchUtils.sortBy = "";
}
this.searchPage.connectCommunityId = this.connectCommunityId;
var queryParameters = this.searchPage.getQueryParametersFromUrl(params);
this._getResults(queryParameters, refine, this.searchUtils.page, this.searchUtils.size);
this._getResults(queryParameters, refine, this.searchUtils.page, this.searchUtils.size, this.searchUtils.sortBy);
});
}
@ -192,7 +205,7 @@ public getResultsForDataproviders(id:string, resultsFrom:string, page: number, s
}
}
public getResults(keyword:string,refine:boolean, page: number, size: number){
public getResults(keyword:string,refine:boolean, page: number, size: number, sortBy: string){
var parameters = "";
if(keyword.length > 0){
var DOIs:string[] = DOI.getDOIsFromString(keyword);
@ -206,9 +219,9 @@ public getResults(keyword:string,refine:boolean, page: number, size: number){
parameters = "q=" + keyword;
}
}
this._getResults(parameters,refine,page,size);
this._getResults(parameters,refine,page,size,sortBy);
}
private _getResults(parameters:string,refine:boolean, page: number, size: number){
private _getResults(parameters:string,refine:boolean, page: number, size: number, sortBy: string){
if(page > this.pagingLimit) {
size=0;
}
@ -221,7 +234,7 @@ private _getResults(parameters:string,refine:boolean, page: number, size: number
this.results = [];
this.searchUtils.totalResults = 0;
this.subResults = this._searchDatasetsService.searchDatasets(parameters,(refine)?this.searchPage.getRefineFieldsQuery():null, page, size, this.searchPage.getFields(), this.properties).subscribe(
this.subResults = this._searchDatasetsService.searchDatasets(parameters,(refine)?this.searchPage.getRefineFieldsQuery():null, page, size, sortBy, this.searchPage.getFields(), this.properties).subscribe(
data => {
this.searchUtils.totalResults = data[0];
console.info("search Research Data: [Parameters:"+parameters+" ] [total results:"+this.searchUtils.totalResults+"]");
@ -285,6 +298,6 @@ private _getResults(parameters:string,refine:boolean, page: number, size: number
var parameters = $event.value;
//this.getResults(parameters, this.searchUtils.page, this.searchUtils.size, "searchPage");
this._getResults(parameters, true, this.searchUtils.page, this.searchUtils.size);
this._getResults(parameters, true, this.searchUtils.page, this.searchUtils.size, this.searchUtils.sortBy);
}
}

View File

@ -23,7 +23,7 @@ import{EnvProperties} from '../../utils/properties/env-properties';
[disableForms]="disableForms"
[loadPaging]="loadPaging"
[oldTotalResults]="oldTotalResults"
[piwikSiteId]=piwikSiteId
[piwikSiteId]=piwikSiteId
searchFormClass="organizationsSearchForm">
</search-page>
@ -85,6 +85,10 @@ properties: EnvProperties;
}
firstLoad = false;
this.searchUtils.page = (params['page']=== undefined)?1:+params['page'];
this.searchUtils.size = (params['size']=== undefined)?10:+params['size'];
if(this.searchUtils.size != 5 && this.searchUtils.size != 10 && this.searchUtils.size != 20 && this.searchUtils.size != 50) {
this.searchUtils.size = 10;
}
var queryParameters = this.searchPage.getQueryParametersFromUrl(params);
this._getResults(queryParameters, refine, this.searchUtils.page, this.searchUtils.size);

View File

@ -29,7 +29,8 @@ import{EnvProperties} from '../../utils/properties/env-properties';
[(openaireLink)]=openaireLink
[(advancedSearchParameters)]=advancedSearchParameters
[piwikSiteId]=piwikSiteId
[(connectCommunityId)]=connectCommunityId >
[(connectCommunityId)]=connectCommunityId
[(sort)]=sort >
</search-page>
`
})
@ -56,6 +57,7 @@ export class SearchOrpsComponent {
public loadPaging: boolean = true;
public oldTotalResults: number = 0;
pagingLimit = 0;
public sort: boolean = true;
properties: EnvProperties;
@ViewChild (SearchPageComponent) searchPage : SearchPageComponent ;
constructor (private route: ActivatedRoute, private _searchOrpsService: SearchOrpsService ) {
@ -91,9 +93,18 @@ properties: EnvProperties;
}
firstLoad = false;
this.searchUtils.page = (params['page']=== undefined)?1:+params['page'];
this.searchUtils.size = (params['size']=== undefined)?10:+params['size'];
if(this.searchUtils.size != 5 && this.searchUtils.size != 10 && this.searchUtils.size != 20 && this.searchUtils.size != 50) {
this.searchUtils.size = 10;
}
this.searchUtils.sortBy = (params['sortBy'])?params['sortBy']:'';
if(this.searchUtils.sortBy && this.searchUtils.sortBy != "resultdateofacceptance,descending") {
this.searchUtils.sortBy = "";
}
this.searchPage.connectCommunityId = this.connectCommunityId;
var queryParameters = this.searchPage.getQueryParametersFromUrl(params);
this._getResults(queryParameters, refine, this.searchUtils.page, this.searchUtils.size);
this._getResults(queryParameters, refine, this.searchUtils.page, this.searchUtils.size, this.searchUtils.sortBy);
});
}
@ -179,7 +190,7 @@ public getResultsForDataproviders(id:string, resultsFrom:string, page: number, s
}
}
public getResults(keyword:string,refine:boolean, page: number, size: number){
public getResults(keyword:string,refine:boolean, page: number, size: number, sortBy: string){
var parameters = "";
if(keyword.length > 0){
var DOIs:string[] = DOI.getDOIsFromString(keyword);
@ -193,9 +204,9 @@ public getResults(keyword:string,refine:boolean, page: number, size: number){
parameters = "q=" + keyword;
}
}
this._getResults(parameters,refine,page,size);
this._getResults(parameters,refine,page,size,sortBy);
}
private _getResults(parameters:string,refine:boolean, page: number, size: number){
private _getResults(parameters:string,refine:boolean, page: number, size: number, sortBy: string){
if(page > this.pagingLimit) {
size=0;
}
@ -207,7 +218,7 @@ private _getResults(parameters:string,refine:boolean, page: number, size: number
this.results = [];
this.searchUtils.totalResults = 0;
this.subResults = this._searchOrpsService.searchOrps(parameters,(refine)?this.searchPage.getRefineFieldsQuery():null, page, size, this.searchPage.getFields(), this.properties).subscribe(
this.subResults = this._searchOrpsService.searchOrps(parameters,(refine)?this.searchPage.getRefineFieldsQuery():null, page, size, sortBy, this.searchPage.getFields(), this.properties).subscribe(
data => {
this.searchUtils.totalResults = data[0];
console.info("search Other Research Products: [Parameters:"+parameters+" ] [total results:"+this.searchUtils.totalResults+"]");
@ -263,6 +274,6 @@ private _getResults(parameters:string,refine:boolean, page: number, size: number
this.loadPaging = true;
var parameters = $event.value;
this._getResults(parameters, true, this.searchUtils.page, this.searchUtils.size);
this._getResults(parameters, true, this.searchUtils.page, this.searchUtils.size, this.searchUtils.sortBy);
}
}

View File

@ -23,7 +23,7 @@ import{EnvProperties} from '../../utils/properties/env-properties';
[disableForms]="disableForms"
[loadPaging]="loadPaging"
[oldTotalResults]="oldTotalResults"
[piwikSiteId]=piwikSiteId
[piwikSiteId]=piwikSiteId
searchFormClass="projectsSearchForm">
</search-page>
`
@ -90,6 +90,11 @@ properties: EnvProperties;
firstLoad = false;
//get page from url parameters
this.searchUtils.page = (params['page']=== undefined)?1:+params['page'];
this.searchUtils.size = (params['size']=== undefined)?10:+params['size'];
if(this.searchUtils.size != 5 && this.searchUtils.size != 10 && this.searchUtils.size != 20 && this.searchUtils.size != 50) {
this.searchUtils.size = 10;
}
var queryParameters = this.searchPage.getQueryParametersFromUrl(params);
this._getResults(queryParameters, refine, this.searchUtils.page, this.searchUtils.size);
});

View File

@ -33,7 +33,7 @@ import{EnvProperties} from '../../utils/properties/env-properties';
[(advancedSearchParameters)]=advancedSearchParameters
[piwikSiteId]=piwikSiteId
[(connectCommunityId)]=connectCommunityId
>
[(sort)]=sort >
</search-page>
`
@ -70,6 +70,7 @@ export class SearchPublicationsComponent {
@Input() connectCommunityId: string;
@Input() advancedSearchParameters ;
pagingLimit = 0;
public sort: boolean = true;
properties: EnvProperties;
constructor (private route: ActivatedRoute, private _searchPublicationsService: SearchPublicationsService ) {
this.errorCodes = new ErrorCodes();
@ -104,9 +105,18 @@ properties: EnvProperties;
}
firstLoad = false;
this.searchUtils.page = (params['page']=== undefined)?1:+params['page'];
this.searchUtils.size = (params['size']=== undefined)?10:+params['size'];
if(this.searchUtils.size != 5 && this.searchUtils.size != 10 && this.searchUtils.size != 20 && this.searchUtils.size != 50) {
this.searchUtils.size = 10;
}
this.searchUtils.sortBy = (params['sortBy'])?params['sortBy']:'';
if(this.searchUtils.sortBy && this.searchUtils.sortBy != "resultdateofacceptance,descending") {
this.searchUtils.sortBy = "";
}
this.searchPage.connectCommunityId = this.connectCommunityId;
var queryParameters = this.searchPage.getQueryParametersFromUrl(params);
this._getResults(queryParameters, refine, this.searchUtils.page, this.searchUtils.size);
this._getResults(queryParameters, refine, this.searchUtils.page, this.searchUtils.size, this.searchUtils.sortBy);
});
}
@ -202,7 +212,7 @@ public getResultsForDataproviders(id:string, resultsFrom:string, page: number, s
}
}
public getResults(keyword:string,refine:boolean, page: number, size: number){
public getResults(keyword:string,refine:boolean, page: number, size: number, sortBy: string){
var parameters = "";
if(keyword.length > 0){
var DOIs:string[] = DOI.getDOIsFromString(keyword);
@ -217,10 +227,10 @@ public getResults(keyword:string,refine:boolean, page: number, size: number){
parameters = "q=" + keyword;
}
}
this._getResults(parameters,refine,page,size);
this._getResults(parameters,refine,page,size,sortBy);
}
private _getResults(parameters:string,refine:boolean, page: number, size: number){
private _getResults(parameters:string,refine:boolean, page: number, size: number, sortBy: string){
if(page > this.pagingLimit) {
size=0;
}
@ -232,7 +242,7 @@ private _getResults(parameters:string,refine:boolean, page: number, size: number
this.results = [];
this.searchUtils.totalResults = 0;
this.subResults = this._searchPublicationsService.searchPublications(parameters,(refine)?this.searchPage.getRefineFieldsQuery():null, page, size, this.searchPage.getFields(), this.properties).subscribe(
this.subResults = this._searchPublicationsService.searchPublications(parameters,(refine)?this.searchPage.getRefineFieldsQuery():null, page, size, sortBy, this.searchPage.getFields(), this.properties).subscribe(
data => {
console.info(data);
this.searchUtils.totalResults = data[0];
@ -318,7 +328,7 @@ public getAggregatorResults(id:string, page: number, size: number){
var parameters = $event.value;
console.info("queryChanged: Execute search query "+parameters);
console.info("Search Pubs::page "+this.searchUtils.page);
this._getResults(parameters, true, this.searchUtils.page, this.searchUtils.size);
this._getResults(parameters, true, this.searchUtils.page, this.searchUtils.size, this.searchUtils.sortBy);
}

View File

@ -29,7 +29,8 @@ import{EnvProperties} from '../../utils/properties/env-properties';
[(openaireLink)]=openaireLink
[(advancedSearchParameters)]=advancedSearchParameters
[piwikSiteId]=piwikSiteId
[(connectCommunityId)]=connectCommunityId >
[(connectCommunityId)]=connectCommunityId
[(sort)]=sort >
</search-page>
`
})
@ -58,6 +59,7 @@ export class SearchSoftwareComponent {
public loadPaging: boolean = true;
public oldTotalResults: number = 0;
pagingLimit = 0;
public sort: boolean = true;
properties: EnvProperties;
@ViewChild (SearchPageComponent) searchPage : SearchPageComponent ;
constructor (private route: ActivatedRoute, private _searchSoftwareService: SearchSoftwareService ) {
@ -93,9 +95,18 @@ properties: EnvProperties;
}
firstLoad = false;
this.searchUtils.page = (params['page']=== undefined)?1:+params['page'];
this.searchUtils.size = (params['size']=== undefined)?10:+params['size'];
if(this.searchUtils.size != 5 && this.searchUtils.size != 10 && this.searchUtils.size != 20 && this.searchUtils.size != 50) {
this.searchUtils.size = 10;
}
this.searchUtils.sortBy = (params['sortBy'])?params['sortBy']:'';
if(this.searchUtils.sortBy && this.searchUtils.sortBy != "resultdateofacceptance,descending") {
this.searchUtils.sortBy = "";
}
this.searchPage.connectCommunityId = this.connectCommunityId;
var queryParameters = this.searchPage.getQueryParametersFromUrl(params);
this._getResults(queryParameters, refine, this.searchUtils.page, this.searchUtils.size);
this._getResults(queryParameters, refine, this.searchUtils.page, this.searchUtils.size, this.searchUtils.sortBy);
});
}
@ -193,7 +204,7 @@ public getResultsForDataproviders(id:string, resultsFrom:string, page: number, s
}
}
public getResults(keyword:string,refine:boolean, page: number, size: number){
public getResults(keyword:string,refine:boolean, page: number, size: number, sortBy: string){
var parameters = "";
if(keyword.length > 0){
var DOIs:string[] = DOI.getDOIsFromString(keyword);
@ -207,9 +218,9 @@ public getResults(keyword:string,refine:boolean, page: number, size: number){
parameters = "q=" + keyword;
}
}
this._getResults(parameters,refine,page,size);
this._getResults(parameters,refine,page,size,sortBy);
}
private _getResults(parameters:string,refine:boolean, page: number, size: number){
private _getResults(parameters:string,refine:boolean, page: number, size: number, sortBy: string){
if(page > this.pagingLimit) {
size=0;
}
@ -222,7 +233,7 @@ private _getResults(parameters:string,refine:boolean, page: number, size: number
this.results = [];
this.searchUtils.totalResults = 0;
this.subResults = this._searchSoftwareService.searchSoftware(parameters,(refine)?this.searchPage.getRefineFieldsQuery():null, page, size, this.searchPage.getFields(), this.properties).subscribe(
this.subResults = this._searchSoftwareService.searchSoftware(parameters,(refine)?this.searchPage.getRefineFieldsQuery():null, page, size, sortBy, this.searchPage.getFields(), this.properties).subscribe(
data => {
this.searchUtils.totalResults = data[0];
console.info("search Software: [Parameters:"+parameters+" ] [total results:"+this.searchUtils.totalResults+"]");
@ -286,6 +297,6 @@ private _getResults(parameters:string,refine:boolean, page: number, size: number
var parameters = $event.value;
//this.getResults(parameters, this.searchUtils.page, this.searchUtils.size, "searchPage");
this._getResults(parameters, true, this.searchUtils.page, this.searchUtils.size);
this._getResults(parameters, true, this.searchUtils.page, this.searchUtils.size, this.searchUtils.sortBy);
}
}

View File

@ -17,7 +17,7 @@ export class SearchDatasetsService {
constructor(private http: Http ) {}
searchDatasets (params: string, refineParams:string, page: number, size: number, refineFields:string[], properties:EnvProperties ):any {
searchDatasets (params: string, refineParams:string, page: number, size: number, sortBy: string, refineFields:string[], properties:EnvProperties ):any {
let link = properties.searchAPIURLLAst+"datasets";
@ -28,6 +28,9 @@ export class SearchDatasetsService {
if(refineParams!= null && refineParams != '' ) {
url += refineParams;
}
if(sortBy) {
url += "&sortBy=" + sortBy;
}
url += "&page="+ (page-1) +"&size="+size+"&format=json";

View File

@ -17,7 +17,7 @@ export class SearchOrpsService {
constructor(private http: Http ) {}
searchOrps (params: string, refineParams:string, page: number, size: number, refineFields:string[], properties:EnvProperties ):any {
searchOrps (params: string, refineParams:string, page: number, size: number, sortBy: string, refineFields:string[], properties:EnvProperties ):any {
let link = properties.searchAPIURLLAst+"other";
@ -28,6 +28,9 @@ export class SearchOrpsService {
if(refineParams!= null && refineParams != '' ) {
url += refineParams;
}
if(sortBy) {
url += "&sortBy=" + sortBy;
}
url += "&page="+ (page-1) +"&size="+size+"&format=json";

View File

@ -19,7 +19,7 @@ export class SearchPublicationsService {
constructor(private http: Http ) {}
searchPublications (params: string, refineParams:string, page: number, size: number, refineFields:string[] , properties:EnvProperties):any {
searchPublications (params: string, refineParams:string, page: number, size: number, sortBy: string, refineFields:string[] , properties:EnvProperties):any {
let link = properties.searchAPIURLLAst+"publications";
let url = link+"?";
@ -29,6 +29,9 @@ export class SearchPublicationsService {
if(refineParams!= null && refineParams != '' ) {
url += refineParams;
}
if(sortBy) {
url += "&sortBy=" + sortBy;
}
url += "&page="+(page-1)+"&size="+size+"&format=json";

View File

@ -16,7 +16,7 @@ export class SearchSoftwareService {
constructor(private http: Http ) {}
searchSoftware (params: string, refineParams:string, page: number, size: number, refineFields:string[], properties:EnvProperties ):any {
searchSoftware (params: string, refineParams:string, page: number, size: number, sortBy: string, refineFields:string[], properties:EnvProperties ):any {
let link = properties.searchAPIURLLAst+"software";
@ -27,6 +27,9 @@ export class SearchSoftwareService {
if(refineParams!= null && refineParams != '' ) {
url += refineParams;
}
if(sortBy) {
url += "&sortBy=" + sortBy;
}
url += "&page="+ (page-1) +"&size="+size+"&format=json";

View File

@ -57,7 +57,7 @@ export class FetchDatasets{
this.searchUtils.status = this.errorCodes.LOADING;
var refineParams = (connectCommunityId)?("&fq="+StringUtils.URIEncode("communityId exact " + StringUtils.quote((connectCommunityId )))):null;
this.subResults = this._searchDatasetsService.searchDatasets(parameters,refineParams, page, size, [], properties).subscribe(
this.subResults = this._searchDatasetsService.searchDatasets(parameters,refineParams, page, size, "", [], properties).subscribe(
data => {
this.searchUtils.totalResults = data[0];
console.info("search Research Data: [Parameters:"+parameters+" ] [total results:"+this.searchUtils.totalResults+"]");

View File

@ -57,7 +57,7 @@ export class FetchOrps{
this.searchUtils.status = this.errorCodes.LOADING;
var refineParams = (connectCommunityId)?("&fq="+StringUtils.URIEncode("communityId exact " + StringUtils.quote((connectCommunityId )))):null;
this.subResults = this._searchOrpsService.searchOrps(parameters,refineParams, page, size, [], properties).subscribe(
this.subResults = this._searchOrpsService.searchOrps(parameters,refineParams, page, size, "", [], properties).subscribe(
data => {
this.searchUtils.totalResults = data[0];
console.info("search Other Research Products: [Parameters:"+parameters+" ] [total results:"+this.searchUtils.totalResults+"]");

View File

@ -69,7 +69,7 @@ export class FetchPublications {
//var errorCodes:ErrorCodes = new ErrorCodes();
this.searchUtils.status = this.errorCodes.LOADING;
var refineParams = (connectCommunityId)?("&fq="+StringUtils.URIEncode("communityId exact " + StringUtils.quote((connectCommunityId )))):null;
this.subResults = this._searchPublicationsService.searchPublications(parameters,refineParams, page, size, [], properties).subscribe(
this.subResults = this._searchPublicationsService.searchPublications(parameters,refineParams, page, size, "", [], properties).subscribe(
data => {
this.searchUtils.totalResults = data[0];
console.info("search Publications: [Parameters:"+parameters+" ] [total results:"+this.searchUtils.totalResults+"]");

View File

@ -58,7 +58,7 @@ export class FetchSoftware{
this.searchUtils.status = this.errorCodes.LOADING;
var refineParams = (connectCommunityId)?("&fq="+StringUtils.URIEncode("communityId exact " + StringUtils.quote((connectCommunityId )))):null;
this.subResults = this._searchSoftwareService.searchSoftware(parameters,refineParams, page, size, [], properties).subscribe(
this.subResults = this._searchSoftwareService.searchSoftware(parameters,refineParams, page, size, "", [], properties).subscribe(
data => {
this.searchUtils.totalResults = data[0];
console.info("search Software: [Parameters:"+parameters+" ] [total results:"+this.searchUtils.totalResults+"]");