Fix video playlist element removal

This commit is contained in:
Chocobozzz 2019-08-22 11:33:18 +02:00
parent ebe7f58726
commit a3671f0709
No known key found for this signature in database
GPG Key ID: 583A612D890159BE
2 changed files with 11 additions and 12 deletions

View File

@ -12,6 +12,7 @@ type PlaylistSummary = {
inPlaylist: boolean
displayName: string
playlistElementId?: number
startTimestamp?: number
stopTimestamp?: number
}
@ -37,8 +38,6 @@ export class VideoAddToPlaylistComponent extends FormReactive implements OnInit,
}
displayOptions = false
private playlistElementId: number
constructor (
protected formValidatorService: FormValidatorService,
private authService: AuthService,
@ -95,11 +94,10 @@ export class VideoAddToPlaylistComponent extends FormReactive implements OnInit,
id: playlist.id,
displayName: playlist.displayName,
inPlaylist: !!existingPlaylist,
playlistElementId: existingPlaylist ? existingPlaylist.playlistElementId : undefined,
startTimestamp: existingPlaylist ? existingPlaylist.startTimestamp : undefined,
stopTimestamp: existingPlaylist ? existingPlaylist.stopTimestamp : undefined
})
this.playlistElementId = existingPlaylist ? existingPlaylist.playlistElementId : undefined
}
this.cd.markForCheck()
@ -181,14 +179,15 @@ export class VideoAddToPlaylistComponent extends FormReactive implements OnInit,
}
private removeVideoFromPlaylist (playlist: PlaylistSummary) {
if (!this.playlistElementId) return
if (!playlist.playlistElementId) return
this.videoPlaylistService.removeVideoFromPlaylist(playlist.id, this.playlistElementId)
this.videoPlaylistService.removeVideoFromPlaylist(playlist.id, playlist.playlistElementId)
.subscribe(
() => {
this.notifier.success(this.i18n('Video removed from {{name}}', { name: playlist.displayName }))
playlist.inPlaylist = false
playlist.playlistElementId = undefined
},
err => {
@ -209,8 +208,9 @@ export class VideoAddToPlaylistComponent extends FormReactive implements OnInit,
this.videoPlaylistService.addVideoInPlaylist(playlist.id, body)
.subscribe(
() => {
res => {
playlist.inPlaylist = true
playlist.playlistElementId = res.videoPlaylistElement.id
playlist.startTimestamp = body.startTimestamp
playlist.stopTimestamp = body.stopTimestamp

View File

@ -113,11 +113,10 @@ export class VideoPlaylistService {
}
addVideoInPlaylist (playlistId: number, body: VideoPlaylistElementCreate) {
return this.authHttp.post(VideoPlaylistService.BASE_VIDEO_PLAYLIST_URL + playlistId + '/videos', body)
.pipe(
map(this.restExtractor.extractDataBool),
catchError(err => this.restExtractor.handleError(err))
)
const url = VideoPlaylistService.BASE_VIDEO_PLAYLIST_URL + playlistId + '/videos'
return this.authHttp.post<{ videoPlaylistElement: { id: number } }>(url, body)
.pipe(catchError(err => this.restExtractor.handleError(err)))
}
updateVideoOfPlaylist (playlistId: number, playlistElementId: number, body: VideoPlaylistElementUpdate) {