import {Component, Input, Output, EventEmitter} from '@angular/core';
import {ActivatedRoute} from '@angular/router';
import{EnvProperties} from './properties/env-properties';
//Usage Example
@Component({
selector: 'paging-no-load',
template: `
`
})
export class pagingFormatterNoLoad {
@Input() public currentPage: number = 1;
@Input() public customClasses: string = '';
// @Input() public navigateTo: string;
@Input() public term: string='';
@Input() public size: number=10;
@Input() public totalResults: number = 10;
@Input() public limitPaging: boolean = false;
// @Input() public params;
@Output() pageChange = new EventEmitter();
private limit: number;
properties:EnvProperties;
@Input()
public loading:boolean = false;
constructor (private route: ActivatedRoute) {
}
ngOnInit() {
//console.info("In paging -- CurrentPage:"+this.currentPage+" "+"total Pages = "+this.getTotalPages() +" Results num:"+this.totalResults);
this.route.data
.subscribe((data: { envSpecific: EnvProperties }) => {
this.properties = data.envSpecific;
this.limit = this.properties.pagingLimit;
}
);
}
getTotalPages(){
let total: number = 0;
//let limit: number = 20;//OpenaireProperties.getPagingLimit();
var i= this.totalResults/this.size;
var integerI=parseInt(''+i);
total = parseInt(''+((i==integerI)?i:i+1));
if(this.limitPaging) {
if((this.currentPage == this.limit) && (total > this.limit)) {
total = this.limit;
} else if((this.currentPage > this.limit) && (total > this.limit)) {
total = this.currentPage;
}
}
return total;
}
onPrev(){
this.currentPage=this.currentPage-1;
this.pageChange.emit({
value: this.currentPage
});
}
onNext(){
this.currentPage=this.currentPage+1;
this.pageChange.emit({
value: this.currentPage
});
}
onPage(pageNum: number){
if(!this.loading) {
this.currentPage = pageNum;
this.pageChange.emit({
value: this.currentPage
});
}
}
}