Add ability to set subtitle in URL in watch page
authorChocobozzz <me@florianbigard.com>
Mon, 17 Dec 2018 13:22:36 +0000 (14:22 +0100)
committerChocobozzz <me@florianbigard.com>
Mon, 17 Dec 2018 13:22:59 +0000 (14:22 +0100)
client/src/app/videos/+video-watch/video-watch.component.ts

index 09ee96bdc66ef52100b90a7f0ae3bf91da5aef56..afbe1fe78f45f4b802c29175058e81be35784688 100644 (file)
@@ -118,7 +118,9 @@ export class VideoWatchComponent implements OnInit, OnDestroy {
         )
         .subscribe(([ video, captionsResult ]) => {
           const startTime = this.route.snapshot.queryParams.start
-          this.onVideoFetched(video, captionsResult.data, startTime)
+          const subtitle = this.route.snapshot.queryParams.subtitle
+
+          this.onVideoFetched(video, captionsResult.data, { startTime, subtitle })
               .catch(err => this.handleError(err))
         })
     })
@@ -371,7 +373,7 @@ export class VideoWatchComponent implements OnInit, OnDestroy {
         )
   }
 
-  private async onVideoFetched (video: VideoDetails, videoCaptions: VideoCaption[], startTimeFromUrl: number) {
+  private async onVideoFetched (video: VideoDetails, videoCaptions: VideoCaption[], urlOptions: { startTime: number, subtitle: string }) {
     this.video = video
 
     // Re init attributes
@@ -379,7 +381,7 @@ export class VideoWatchComponent implements OnInit, OnDestroy {
     this.completeDescriptionShown = false
     this.remoteServerDown = false
 
-    let startTime = startTimeFromUrl || (this.video.userHistory ? this.video.userHistory.currentTime : 0)
+    let startTime = urlOptions.startTime || (this.video.userHistory ? this.video.userHistory.currentTime : 0)
     // Don't start the video if we are at the end
     if (this.video.duration - startTime <= 1) startTime = 0
 
@@ -419,6 +421,7 @@ export class VideoWatchComponent implements OnInit, OnDestroy {
       peertubeLink: false,
       poster: this.video.previewUrl,
       startTime,
+      subtitle: urlOptions.subtitle,
       theaterMode: true,
       language: this.localeId,