explore-services/src/app/searchPages/searchPublications.componen...

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);
}
}