diff options
Diffstat (limited to 'client/src/app/+my-account/my-account-video-playlists/my-account-video-playlist-update.component.ts')
-rw-r--r-- | client/src/app/+my-account/my-account-video-playlists/my-account-video-playlist-update.component.ts | 47 |
1 files changed, 19 insertions, 28 deletions
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' | |||
9 | import { VideoPlaylistService } from '@app/shared/video-playlist/video-playlist.service' | 9 | import { VideoPlaylistService } from '@app/shared/video-playlist/video-playlist.service' |
10 | import { VideoPlaylistValidatorsService } from '@app/shared' | 10 | import { VideoPlaylistValidatorsService } from '@app/shared' |
11 | import { VideoPlaylistUpdate } from '@shared/models/videos/playlist/video-playlist-update.model' | 11 | import { VideoPlaylistUpdate } from '@shared/models/videos/playlist/video-playlist-update.model' |
12 | import { VideoConstant } from '@shared/models' | ||
13 | import { VideoPlaylistPrivacy } from '@shared/models/videos/playlist/video-playlist-privacy.model' | ||
14 | import { VideoPlaylist } from '@app/shared/video-playlist/video-playlist.model' | 12 | import { VideoPlaylist } from '@app/shared/video-playlist/video-playlist.model' |
13 | import { delayWhen, map, switchMap } from 'rxjs/operators' | ||
15 | 14 | ||
16 | @Component({ | 15 | @Component({ |
17 | selector: 'my-account-video-playlist-update', | 16 | selector: 'my-account-video-playlist-update', |
@@ -21,7 +20,6 @@ import { VideoPlaylist } from '@app/shared/video-playlist/video-playlist.model' | |||
21 | export class MyAccountVideoPlaylistUpdateComponent extends MyAccountVideoPlaylistEdit implements OnInit, OnDestroy { | 20 | export class MyAccountVideoPlaylistUpdateComponent extends MyAccountVideoPlaylistEdit implements OnInit, OnDestroy { |
22 | error: string | 21 | error: string |
23 | videoPlaylistToUpdate: VideoPlaylist | 22 | videoPlaylistToUpdate: VideoPlaylist |
24 | videoPlaylistPrivacies: VideoConstant<VideoPlaylistPrivacy>[] = [] | ||
25 | 23 | ||
26 | private paramsSub: Subscription | 24 | private paramsSub: Subscription |
27 | 25 | ||
@@ -53,31 +51,24 @@ export class MyAccountVideoPlaylistUpdateComponent extends MyAccountVideoPlaylis | |||
53 | }) | 51 | }) |
54 | 52 | ||
55 | populateAsyncUserVideoChannels(this.authService, this.userVideoChannels) | 53 | populateAsyncUserVideoChannels(this.authService, this.userVideoChannels) |
56 | 54 | .catch(err => console.error('Cannot populate user video channels.', err)) | |
57 | this.paramsSub = this.route.params.subscribe(routeParams => { | 55 | |
58 | const videoPlaylistId = routeParams['videoPlaylistId'] | 56 | this.paramsSub = this.route.params |
59 | 57 | .pipe( | |
60 | this.videoPlaylistService.getVideoPlaylist(videoPlaylistId).subscribe( | 58 | map(routeParams => routeParams['videoPlaylistId']), |
61 | videoPlaylistToUpdate => { | 59 | switchMap(videoPlaylistId => this.videoPlaylistService.getVideoPlaylist(videoPlaylistId)), |
62 | this.videoPlaylistToUpdate = videoPlaylistToUpdate | 60 | delayWhen(() => this.serverService.videoPlaylistPrivaciesLoaded) |
63 | 61 | ) | |
64 | this.hydrateFormFromPlaylist() | 62 | .subscribe( |
65 | 63 | videoPlaylistToUpdate => { | |
66 | this.serverService.videoPlaylistPrivaciesLoaded.subscribe( | 64 | this.videoPlaylistPrivacies = this.serverService.getVideoPlaylistPrivacies() |
67 | () => { | 65 | this.videoPlaylistToUpdate = videoPlaylistToUpdate |
68 | this.videoPlaylistPrivacies = this.serverService.getVideoPlaylistPrivacies() | 66 | |
69 | .filter(p => { | 67 | this.hydrateFormFromPlaylist() |
70 | // If the playlist is not private, we cannot put it in private anymore | 68 | }, |
71 | return this.videoPlaylistToUpdate.privacy.id === VideoPlaylistPrivacy.PRIVATE || | 69 | |
72 | p.id !== VideoPlaylistPrivacy.PRIVATE | 70 | err => this.error = err.message |
73 | }) | 71 | ) |
74 | } | ||
75 | ) | ||
76 | }, | ||
77 | |||
78 | err => this.error = err.message | ||
79 | ) | ||
80 | }) | ||
81 | } | 72 | } |
82 | 73 | ||
83 | ngOnDestroy () { | 74 | ngOnDestroy () { |