45 lines
1.5 KiB
JavaScript
45 lines
1.5 KiB
JavaScript
import Ember from 'ember';
|
|
import BaseComponent from './base-component';
|
|
|
|
export default BaseComponent.extend({
|
|
trimIndex: true,
|
|
classNames: ['widget-toolbox', 'clearfix'],
|
|
total: Ember.computed.alias('route.controller.model.total'),
|
|
prevPage: Ember.computed('currPage', function() {
|
|
return this.get('currPage') - 1 || 1;
|
|
}),
|
|
nextPage: Ember.computed('currPage', function() {
|
|
let me = this;
|
|
let page = me.get('currPage');
|
|
return page + 1 <= me.get('totalPage') ? page + 1 : page;
|
|
}),
|
|
currPage: Ember.computed('params.page', function() {
|
|
let me = this;
|
|
let currPage = parseInt(me.get('params.page'));
|
|
Ember.Logger.info('Get Curr Page [' + currPage + ']');
|
|
return currPage;
|
|
}),
|
|
pages: Ember.computed('total', function() {
|
|
let i = 0;
|
|
let pages = [];
|
|
while (i++ < this.get('totalPage')) {
|
|
pages.push(i);
|
|
}
|
|
return pages;
|
|
}),
|
|
totalPage: Ember.computed('total', function() {
|
|
let me = this;
|
|
let pageSize = me.get('service.pageSize') || 16;
|
|
return parseInt((me.get('total') + pageSize - 1) / pageSize);
|
|
}),
|
|
actions: {
|
|
gotoPage(page) {
|
|
let me = this;
|
|
let router = me.get('router');
|
|
let params = me.get('params');
|
|
Ember.Logger.info('To Page [' + page + '], Params: ', params);
|
|
router.transitionTo(me.get('routeName'), page, {queryParams: params});
|
|
}
|
|
}
|
|
});
|