aboutsummaryrefslogtreecommitdiffhomepage
path: root/client/src/assets/player/peertube-player-manager.ts
diff options
context:
space:
mode:
Diffstat (limited to 'client/src/assets/player/peertube-player-manager.ts')
-rw-r--r--client/src/assets/player/peertube-player-manager.ts23
1 files changed, 19 insertions, 4 deletions
diff --git a/client/src/assets/player/peertube-player-manager.ts b/client/src/assets/player/peertube-player-manager.ts
index 276f9ec59..d9e02cd7d 100644
--- a/client/src/assets/player/peertube-player-manager.ts
+++ b/client/src/assets/player/peertube-player-manager.ts
@@ -8,6 +8,7 @@ import 'videojs-contrib-quality-levels'
8import './upnext/upnext-plugin' 8import './upnext/upnext-plugin'
9import './bezels/bezels-plugin' 9import './bezels/bezels-plugin'
10import './peertube-plugin' 10import './peertube-plugin'
11import './videojs-components/next-video-button'
11import './videojs-components/peertube-link-button' 12import './videojs-components/peertube-link-button'
12import './videojs-components/resolution-menu-button' 13import './videojs-components/resolution-menu-button'
13import './videojs-components/settings-menu-button' 14import './videojs-components/settings-menu-button'
@@ -62,6 +63,7 @@ export interface CommonOptions extends CustomizationOptions {
62 onPlayerElementChange: (element: HTMLVideoElement) => void 63 onPlayerElementChange: (element: HTMLVideoElement) => void
63 64
64 autoplay: boolean 65 autoplay: boolean
66 nextVideo?: Function
65 videoDuration: number 67 videoDuration: number
66 enableHotkeys: boolean 68 enableHotkeys: boolean
67 inactivityTimeout: number 69 inactivityTimeout: number
@@ -233,7 +235,8 @@ export class PeertubePlayerManager {
233 children: this.getControlBarChildren(mode, { 235 children: this.getControlBarChildren(mode, {
234 captions: commonOptions.captions, 236 captions: commonOptions.captions,
235 peertubeLink: commonOptions.peertubeLink, 237 peertubeLink: commonOptions.peertubeLink,
236 theaterButton: commonOptions.theaterButton 238 theaterButton: commonOptions.theaterButton,
239 nextVideo: commonOptions.nextVideo
237 }) 240 })
238 } 241 }
239 } 242 }
@@ -329,7 +332,8 @@ export class PeertubePlayerManager {
329 private static getControlBarChildren (mode: PlayerMode, options: { 332 private static getControlBarChildren (mode: PlayerMode, options: {
330 peertubeLink: boolean 333 peertubeLink: boolean
331 theaterButton: boolean, 334 theaterButton: boolean,
332 captions: boolean 335 captions: boolean,
336 nextVideo?: Function
333 }) { 337 }) {
334 const settingEntries = [] 338 const settingEntries = []
335 const loadProgressBar = mode === 'webtorrent' ? 'peerTubeLoadProgressBar' : 'loadProgressBar' 339 const loadProgressBar = mode === 'webtorrent' ? 'peerTubeLoadProgressBar' : 'loadProgressBar'
@@ -340,7 +344,18 @@ export class PeertubePlayerManager {
340 settingEntries.push('resolutionMenuButton') 344 settingEntries.push('resolutionMenuButton')
341 345
342 const children = { 346 const children = {
343 'playToggle': {}, 347 'playToggle': {}
348 }
349
350 if (options.nextVideo) {
351 Object.assign(children, {
352 'nextVideoButton': {
353 handler: options.nextVideo
354 }
355 })
356 }
357
358 Object.assign(children, {
344 'currentTimeDisplay': {}, 359 'currentTimeDisplay': {},
345 'timeDivider': {}, 360 'timeDivider': {},
346 'durationDisplay': {}, 361 'durationDisplay': {},
@@ -370,7 +385,7 @@ export class PeertubePlayerManager {
370 }, 385 },
371 entries: settingEntries 386 entries: settingEntries
372 } 387 }
373 } 388 })
374 389
375 if (options.peertubeLink === true) { 390 if (options.peertubeLink === true) {
376 Object.assign(children, { 391 Object.assign(children, {