From 95a2a540175f3d2d6aad06a7f1f6552e960ffc3b Mon Sep 17 00:00:00 2001 From: Cilibiu Bogdan Date: Tue, 24 Apr 2018 19:24:01 +0300 Subject: [PATCH] update pagination on count 0 (#3228) --- .../components/document-list.component.ts | 1 + .../pagination/pagination.component.spec.ts | 25 +++++++++++++++++++ lib/core/pagination/pagination.component.ts | 5 ++++ 3 files changed, 31 insertions(+) diff --git a/lib/content-services/document-list/components/document-list.component.ts b/lib/content-services/document-list/components/document-list.component.ts index a81414f77b..edbdcf8039 100644 --- a/lib/content-services/document-list/components/document-list.component.ts +++ b/lib/content-services/document-list/components/document-list.component.ts @@ -750,6 +750,7 @@ export class DocumentListComponent implements OnInit, OnChanges, OnDestroy, Afte } updatePagination(pagination: PaginationModel) { + this.pagination.next(pagination); this.reload(); } diff --git a/lib/core/pagination/pagination.component.spec.ts b/lib/core/pagination/pagination.component.spec.ts index 69f7d67a45..100b2a167c 100644 --- a/lib/core/pagination/pagination.component.spec.ts +++ b/lib/core/pagination/pagination.component.spec.ts @@ -303,5 +303,30 @@ describe('PaginationComponent', () => { expect(component.current).toBe(2); }); + it('should go to previous page if current page has 0 items', () => { + const customComponent = { + updatePagination() {}, + pagination: new BehaviorSubject({}) + }; + + component.target = customComponent; + component.ngOnInit(); + + customComponent.pagination.next({ + count: 2, + skipCount: 5, + maxItems: 5 + }); + + expect(component.current).toBe(2); + + customComponent.pagination.next({ + count: 0, + totalItems: 5, + maxItems: 5 + }); + + expect(component.current).toBe(1); + }); }); }); diff --git a/lib/core/pagination/pagination.component.ts b/lib/core/pagination/pagination.component.ts index 0c23b5b1ed..d6486e6eb6 100644 --- a/lib/core/pagination/pagination.component.ts +++ b/lib/core/pagination/pagination.component.ts @@ -87,6 +87,11 @@ export class PaginationComponent implements OnInit, OnDestroy, PaginationCompone ngOnInit() { if (this.target) { this.paginationSubscription = this.target.pagination.subscribe((pagination: PaginationModel) => { + + if (pagination.count === 0 && !this.isFirstPage) { + this.goPrevious(); + } + this.pagination = pagination; this.cdr.detectChanges(); });