UNPKG

osmos

Version:

OSMOS - Symbiosys

75 lines (61 loc) 1.76 kB
import { bindable } from "aurelia-framework"; export class OsPaginationCustomElement { @bindable pageCount = 0; @bindable pageSize = 10; @bindable pageNumber = 1; @bindable maxPageCount = 10; @bindable getEntities; @bindable context; @bindable 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; } }