From fc73684adad4fdc6bb8a196bd54ef8ecec4e7391 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Mon, 28 May 2018 11:35:18 +0200 Subject: [PATCH] Resume video on peertube link click in embed --- .../src/assets/player/peertube-link-button.ts | 34 +++++++++++++++---- 1 file changed, 27 insertions(+), 7 deletions(-) diff --git a/client/src/assets/player/peertube-link-button.ts b/client/src/assets/player/peertube-link-button.ts index 6ead78c00..a47adc2db 100644 --- a/client/src/assets/player/peertube-link-button.ts +++ b/client/src/assets/player/peertube-link-button.ts @@ -4,17 +4,37 @@ const Button: VideoJSComponentInterface = videojsUntyped.getComponent('Button') class PeerTubeLinkButton extends Button { createEl () { - return videojsUntyped.dom.createEl('a', { - href: window.location.href.replace('embed', 'watch'), - innerHTML: 'PeerTube', - title: 'Go to the video page', - className: 'vjs-peertube-link', - target: '_blank' - }) + return this.buildElement() + } + + updateHref () { + const currentTime = Math.floor(this.player().currentTime()) + this.el().setAttribute('href', this.buildHref(currentTime)) } handleClick () { this.player_.pause() } + + private buildElement () { + const el = videojsUntyped.dom.createEl('a', { + href: this.buildHref(), + innerHTML: 'PeerTube', + title: 'Go to the video page', + className: 'vjs-peertube-link', + target: '_blank' + }) + + el.addEventListener('mouseenter', () => this.updateHref()) + + return el + } + + private buildHref (time?: number) { + let href = window.location.href.replace('embed', 'watch') + if (time) href += '?start=' + time + + return href + } } Button.registerComponent('PeerTubeLinkButton', PeerTubeLinkButton)