X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=client%2Fsrc%2Fapp%2F%2Bmy-account%2Fmy-account-video-playlists%2Fmy-account-video-playlist-update.component.ts;h=917ad725844cfcd45f72ea0bf29b89d1775074a2;hb=851f5daa1eec66e1faa3c45238ec9ab91be05b00;hp=4887fdfb4f5d1bf10b329c7a4471a721bcba901b;hpb=1b319b7aa6d2f4252615b370aaca6a800be1b1f4;p=github%2FChocobozzz%2FPeerTube.git diff --git a/client/src/app/+my-account/my-account-video-playlists/my-account-video-playlist-update.component.ts b/client/src/app/+my-account/my-account-video-playlists/my-account-video-playlist-update.component.ts index 4887fdfb4..917ad7258 100644 --- a/client/src/app/+my-account/my-account-video-playlists/my-account-video-playlist-update.component.ts +++ b/client/src/app/+my-account/my-account-video-playlists/my-account-video-playlist-update.component.ts @@ -9,9 +9,8 @@ import { populateAsyncUserVideoChannels } from '@app/shared/misc/utils' import { VideoPlaylistService } from '@app/shared/video-playlist/video-playlist.service' import { VideoPlaylistValidatorsService } from '@app/shared' import { VideoPlaylistUpdate } from '@shared/models/videos/playlist/video-playlist-update.model' -import { VideoConstant } from '@shared/models' -import { VideoPlaylistPrivacy } from '@shared/models/videos/playlist/video-playlist-privacy.model' import { VideoPlaylist } from '@app/shared/video-playlist/video-playlist.model' +import { delayWhen, map, switchMap } from 'rxjs/operators' @Component({ selector: 'my-account-video-playlist-update', @@ -21,7 +20,6 @@ import { VideoPlaylist } from '@app/shared/video-playlist/video-playlist.model' export class MyAccountVideoPlaylistUpdateComponent extends MyAccountVideoPlaylistEdit implements OnInit, OnDestroy { error: string videoPlaylistToUpdate: VideoPlaylist - videoPlaylistPrivacies: VideoConstant[] = [] private paramsSub: Subscription @@ -53,31 +51,24 @@ export class MyAccountVideoPlaylistUpdateComponent extends MyAccountVideoPlaylis }) populateAsyncUserVideoChannels(this.authService, this.userVideoChannels) - - this.paramsSub = this.route.params.subscribe(routeParams => { - const videoPlaylistId = routeParams['videoPlaylistId'] - - this.videoPlaylistService.getVideoPlaylist(videoPlaylistId).subscribe( - videoPlaylistToUpdate => { - this.videoPlaylistToUpdate = videoPlaylistToUpdate - - this.hydrateFormFromPlaylist() - - this.serverService.videoPlaylistPrivaciesLoaded.subscribe( - () => { - this.videoPlaylistPrivacies = this.serverService.getVideoPlaylistPrivacies() - .filter(p => { - // If the playlist is not private, we cannot put it in private anymore - return this.videoPlaylistToUpdate.privacy.id === VideoPlaylistPrivacy.PRIVATE || - p.id !== VideoPlaylistPrivacy.PRIVATE - }) - } - ) - }, - - err => this.error = err.message - ) - }) + .catch(err => console.error('Cannot populate user video channels.', err)) + + this.paramsSub = this.route.params + .pipe( + map(routeParams => routeParams['videoPlaylistId']), + switchMap(videoPlaylistId => this.videoPlaylistService.getVideoPlaylist(videoPlaylistId)), + delayWhen(() => this.serverService.videoPlaylistPrivaciesLoaded) + ) + .subscribe( + videoPlaylistToUpdate => { + this.videoPlaylistPrivacies = this.serverService.getVideoPlaylistPrivacies() + this.videoPlaylistToUpdate = videoPlaylistToUpdate + + this.hydrateFormFromPlaylist() + }, + + err => this.error = err.message + ) } ngOnDestroy () {