From 5f73f5da1df684c4bf4cb2d680d9601090e5bca2 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Wed, 16 May 2018 10:20:56 +0200 Subject: [PATCH] Fix concurrent requests in videos list --- client/src/app/shared/video/abstract-video-list.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/client/src/app/shared/video/abstract-video-list.ts b/client/src/app/shared/video/abstract-video-list.ts index d47df4da4..100cbff8d 100644 --- a/client/src/app/shared/video/abstract-video-list.ts +++ b/client/src/app/shared/video/abstract-video-list.ts @@ -45,6 +45,7 @@ export abstract class AbstractVideoList implements OnInit, OnDestroy { abstract titlePage: string protected loadedPages: { [ id: number ]: Video[] } = {} + protected loadingPage: { [ id: number ]: boolean } = {} protected otherRouteParams = {} private resizeSubscription: Subscription @@ -95,11 +96,15 @@ export abstract class AbstractVideoList implements OnInit, OnDestroy { loadMoreVideos (page: number) { if (this.loadedPages[page] !== undefined) return + if (this.loadingPage[page] === true) return + this.loadingPage[page] = true const observable = this.getVideosObservable(page) observable.subscribe( ({ videos, totalVideos }) => { + this.loadingPage[page] = false + // Paging is too high, return to the first one if (this.pagination.currentPage > 1 && totalVideos <= ((this.pagination.currentPage - 1) * this.pagination.itemsPerPage)) { this.pagination.currentPage = 1 @@ -117,7 +122,10 @@ export abstract class AbstractVideoList implements OnInit, OnDestroy { setTimeout(() => this.infiniteScroller.initialize(), 500) } }, - error => this.notificationsService.error('Error', error.message) + error => { + this.loadingPage[page] = false + this.notificationsService.error('Error', error.message) + } ) } -- 2.41.0