Browse Source

Bugfixes in pager. Last item was not updated correctly.

pull/204/head
Sebastian Stehle 8 years ago
parent
commit
7bc9ec7d26
  1. 32
      src/Squidex/app/framework/utils/pager.spec.ts
  2. 16
      src/Squidex/app/framework/utils/pager.ts

32
src/Squidex/app/framework/utils/pager.spec.ts

@ -117,6 +117,22 @@ describe('Pager', () => {
}); });
it('should update count when incrementing it', () => { it('should update count when incrementing it', () => {
const pager_1 = new Pager(23, 1, 10);
const pager_2 = pager_1.incrementCount().incrementCount();
expect(Object.assign({}, pager_2)).toEqual({
page: 1,
pageSize: 10,
itemFirst: 11,
itemLast: 22,
skip: 10,
numberOfItems: 25,
canGoNext: true,
canGoPrev: true
});
});
it('should update count for last page when incrementing it', () => {
const pager_1 = new Pager(23, 2, 10); const pager_1 = new Pager(23, 2, 10);
const pager_2 = pager_1.incrementCount(); const pager_2 = pager_1.incrementCount();
@ -133,6 +149,22 @@ describe('Pager', () => {
}); });
it('should update count when decrementing it', () => { it('should update count when decrementing it', () => {
const pager_1 = new Pager(23, 1, 10);
const pager_2 = pager_1.decrementCount().decrementCount();
expect(Object.assign({}, pager_2)).toEqual({
page: 1,
pageSize: 10,
itemFirst: 11,
itemLast: 18,
skip: 10,
numberOfItems: 21,
canGoNext: true,
canGoPrev: true
});
});
it('should update count for last page when decrementing it', () => {
const pager_1 = new Pager(23, 2, 10); const pager_1 = new Pager(23, 2, 10);
const pager_2 = pager_1.decrementCount(); const pager_2 = pager_1.decrementCount();

16
src/Squidex/app/framework/utils/pager.ts

@ -59,10 +59,22 @@ export class Pager {
} }
public incrementCount(): Pager { public incrementCount(): Pager {
return new Pager(this.numberOfItems + 1, this.page, this.pageSize); const result = new Pager(this.numberOfItems + 1, this.page, this.pageSize);
if (result.canGoNext) {
result.itemLast = this.itemLast + 1;
}
return result;
} }
public decrementCount(): Pager { public decrementCount(): Pager {
return new Pager(this.numberOfItems - 1, this.page, this.pageSize); const result = new Pager(this.numberOfItems - 1, this.page, this.pageSize);
if (result.canGoNext) {
result.itemLast = this.itemLast - 1;
}
return result;
} }
} }
Loading…
Cancel
Save