From: Chocobozzz Date: Wed, 16 May 2018 08:20:56 +0000 (+0200) Subject: Fix concurrent requests in videos list X-Git-Tag: v1.0.0-beta.5~21 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=5f73f5da1df684c4bf4cb2d680d9601090e5bca2;p=oweals%2Fpeertube.git Fix concurrent requests in videos list --- 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) + } ) }