osmos
Version:
OSMOS - Symbiosys
75 lines (61 loc) • 1.76 kB
JavaScript
import { bindable } from "aurelia-framework";
export class OsPaginationCustomElement {
pageCount = 0;
pageSize = 10;
pageNumber = 1;
maxPageCount = 10;
getEntities;
context;
reload = false;
constructor() {}
attached(){
this.minPage = 1;
this.maxPage = this.maxPageCount;
this._loadData();
}
reloadChanged(oldValue, newValue){
if(this.reload){
console.log('reloadValue');
this._loadData();
}
}
pageNumberChanged(oldValue, newValue) {
this._loadData();
}
_loadData (){
if(typeof this.getEntities === 'function'){
this.getEntities(new PaginationModel(this.pageSize, this.pageNumber), this.context)
.then(result =>{
this.pageCount = parseInt(result.pageCount);
if(this.pageNumber - this.maxPageCount /2 > 0){
if(this.pageNumber - this.maxPageCount /2 < this.pageCount - this.maxPageCount){
this.minPage = this.pageNumber - this.maxPageCount / 2
}else
{
this.minPage = this.pageCount - this.maxPageCount;
}
}else{
this.minPage = 0;
}
this.maxPage = this.minPage + this.maxPageCount;
this.reload = false;
});
}
}
increase(){
if(this.pageNumber < this.pageCount){
this.pageNumber = this.pageNumber + 1
}
}
decrease(){
if(this.pageNumber > 1){
this.pageNumber = this.pageNumber - 1
}
}
}
class PaginationModel {
constructor(pageSize, pageNumber) {
this.pageSize = pageSize;
this.pageNumber = pageNumber;
}
}