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 | 28 ++++++++++++++++--- 1 file changed, 24 insertions(+), 4 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'), + 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 } - handleClick () { - this.player_.pause() + private buildHref (time?: number) { + let href = window.location.href.replace('embed', 'watch') + if (time) href += '?start=' + time + + return href } } Button.registerComponent('PeerTubeLinkButton', PeerTubeLinkButton) -- 2.25.1