diff --git a/src/Squidex/app/framework/utils/pager.spec.ts b/src/Squidex/app/framework/utils/pager.spec.ts index 28df5c8e9..fbbed057e 100644 --- a/src/Squidex/app/framework/utils/pager.spec.ts +++ b/src/Squidex/app/framework/utils/pager.spec.ts @@ -117,6 +117,22 @@ describe('Pager', () => { }); 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_2 = pager_1.incrementCount(); @@ -133,6 +149,22 @@ describe('Pager', () => { }); 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_2 = pager_1.decrementCount(); diff --git a/src/Squidex/app/framework/utils/pager.ts b/src/Squidex/app/framework/utils/pager.ts index 235ae5332..64acc1e8e 100644 --- a/src/Squidex/app/framework/utils/pager.ts +++ b/src/Squidex/app/framework/utils/pager.ts @@ -59,10 +59,22 @@ export class 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 { - 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; } } \ No newline at end of file