+ // Hack to "simulate" src link in video.js >= 6
+ // If no, we can't play the video after pausing it
+ // https://github.com/videojs/video.js/blob/master/src/js/player.js#L1633
+ (this.player as any).src = () => true
+
+ this.player.play()
+ })
+
+ this.runInProgress(torrent)
+ })
+ }
+
+ setLike () {
+ if (this.isUserLoggedIn() === false) return
+ // Already liked this video
+ if (this.userRating === 'like') return
+
+ this.videoService.setVideoLike(this.video.id)
+ .subscribe(
+ () => {
+ // Update the video like attribute
+ this.updateVideoRating(this.userRating, 'like')
+ this.userRating = 'like'
+ },
+
+ err => this.notificationsService.error('Error', err.text)
+ )
+ }
+
+ setDislike () {
+ if (this.isUserLoggedIn() === false) return
+ // Already disliked this video
+ if (this.userRating === 'dislike') return
+
+ this.videoService.setVideoDislike(this.video.id)
+ .subscribe(
+ () => {
+ // Update the video dislike attribute
+ this.updateVideoRating(this.userRating, 'dislike')
+ this.userRating = 'dislike'
+ },
+
+ err => this.notificationsService.error('Error', err.text)
+ )
+ }
+
+ removeVideo (event: Event) {
+ event.preventDefault()
+
+ this.confirmService.confirm('Do you really want to delete this video?', 'Delete').subscribe(
+ res => {
+ if (res === false) return
+
+ this.videoService.removeVideo(this.video.id)
+ .subscribe(
+ status => {
+ this.notificationsService.success('Success', `Video ${this.video.name} deleted.`)
+ // Go back to the video-list.
+ this.router.navigate(['/videos/list'])
+ },
+
+ error => this.notificationsService.error('Error', error.text)
+ )
+ }
+ )
+ }
+
+ blacklistVideo (event: Event) {
+ event.preventDefault()
+
+ this.confirmService.confirm('Do you really want to blacklist this video ?', 'Blacklist').subscribe(
+ res => {
+ if (res === false) return
+
+ this.videoService.blacklistVideo(this.video.id)
+ .subscribe(
+ status => {
+ this.notificationsService.success('Success', `Video ${this.video.name} had been blacklisted.`)
+ this.router.navigate(['/videos/list'])
+ },
+
+ error => this.notificationsService.error('Error', error.text)
+ )
+ }
+ )