100 lines
3.3 KiB
TypeScript
100 lines
3.3 KiB
TypeScript
import {Component, Input, ViewChild} from '@angular/core';
|
|
import {JSONP_PROVIDERS} from '@angular/http';
|
|
import {Observable} from 'rxjs/Observable';
|
|
import { RouteParams, RouteConfig, ROUTER_DIRECTIVES, Router } from '@angular/router-deprecated';
|
|
import {SearchPageComponent} from './common/searchPage.component';
|
|
import { Filter, Value} from './common/search.class';
|
|
|
|
@Component({
|
|
selector: 'search-publications',
|
|
template: `
|
|
<search-page pageTitle="Search Publications" type="publication" [(filters)] = "filters" [(results)] = "results" [(totalResults)] = "totalResults" [(keyword)] = "keyword" [(page)] = "page" (queryChange)="queryChanged($event)" >
|
|
</search-page>
|
|
|
|
`,
|
|
directives:[SearchPageComponent]
|
|
})
|
|
export class SearchPublicationsComponent {
|
|
results =[];
|
|
filters =[];
|
|
totalResults:number = 0 ;
|
|
keyword = '';
|
|
page :number = 1;
|
|
constructor (private _routeParams: RouteParams) {
|
|
this.results =[];
|
|
this.filters =[];
|
|
this.totalResults = 123;
|
|
for(var i=0; i<10 ; i++){
|
|
var result = {title: "title"+i, id: "id"+i}
|
|
this.results.push(result);
|
|
}
|
|
|
|
for(var i=0; i<5 ; i++){
|
|
var values = [];
|
|
for(var j=0; j<10 ; j++){
|
|
var value:Value = {name: "name"+j, id: "filter_"+i+ "_id_"+j, number:j, selected:false}
|
|
values.push(value);
|
|
}
|
|
values.sort((n2,n1) => {
|
|
if (n1.number > n2.number) {
|
|
return 1;
|
|
}
|
|
|
|
if (n1.number < n2.number) {
|
|
return -1;
|
|
}
|
|
|
|
return 0;
|
|
});
|
|
var filter:Filter = {title: "title"+i, filterId: "filter_"+i, values : values, countSelectedValues:0}
|
|
this.filters.push(filter);
|
|
}
|
|
|
|
|
|
}
|
|
ngOnInit() {
|
|
|
|
let page = +this._routeParams.get('page');
|
|
let size = +this._routeParams.get('size');
|
|
this.page= (page?page:1);
|
|
this.keyword = (this._routeParams.get('keyword')?this._routeParams.get('keyword'):'');
|
|
//TODO get the rest parameters to create query
|
|
|
|
|
|
}
|
|
|
|
getResults(parameters:string){
|
|
//http://rudie.di.uoa.gr:8080/dnet-functionality-services-1.2.0-SNAPSHOT/search?action=searchNrefine&sTransformer=results_openaire&rTransformer=results_openaire_browse&query=%28oaftype+exact+result%29+and+%28resulttypeid+exact+publication%29&page=5&size=10&fields=instancetypenameid&fields=resultlanguageid&fields=relfunderid&fields=relprojectid&fields=resultacceptanceyear&fields=resultbestlicense&fields=resulthostingdatasourceid&fields=communityid&locale=en_GB
|
|
console.info("Execute search query "+parameters);
|
|
// this.results =[];
|
|
// this.filters =[];
|
|
// for(var i=0; i<30 ; i++){
|
|
// var result = {title: "title"+i, id: "id"+i}
|
|
// this.results.push(result);
|
|
// }
|
|
//
|
|
// for(var i=0; i<5 ; i++){
|
|
// var values = [];
|
|
// for(var j=0; j<10 ; j++){
|
|
// var value = {name: "name"+j, id: "id"+j, number:j, selected:false}
|
|
// values.push(value);
|
|
// }
|
|
// var filter = {title: "title"+i, filterId: "id"+i, values : values}
|
|
// this.filters.push(filter);
|
|
// }
|
|
|
|
}
|
|
private setFilters(){
|
|
//TODO set filters from
|
|
}
|
|
|
|
private queryChanged($event) {
|
|
var parameters = $event.value
|
|
this.getResults(parameters)
|
|
console.info("Execute search query "+parameters);
|
|
|
|
}
|
|
|
|
|
|
}
|