From cdacae669786a76d821e828573f996b97ec4df9e Mon Sep 17 00:00:00 2001 From: Sam Potts Date: Fri, 12 Apr 2019 19:00:17 +1000 Subject: [PATCH] Set download URL via setter --- src/js/controls.js | 6 +++--- src/js/listeners.js | 2 +- src/js/plugins/vimeo.js | 6 +++--- src/js/plyr.js | 13 +++++++++++++ 4 files changed, 20 insertions(+), 7 deletions(-) diff --git a/src/js/controls.js b/src/js/controls.js index 73903e16..78d3144f 100644 --- a/src/js/controls.js +++ b/src/js/controls.js @@ -1244,8 +1244,8 @@ const controls = { controls.focusFirstMenuItem.call(this, target, tabFocus); }, - // Set the download link - setDownloadLink() { + // Set the download URL + setDownloadUrl() { const button = this.elements.buttons.download; // Bail if no button @@ -1253,7 +1253,7 @@ const controls = { return; } - // Set download link + // Set attribute button.setAttribute('href', this.download); }, diff --git a/src/js/listeners.js b/src/js/listeners.js index 5a593b10..b463498f 100644 --- a/src/js/listeners.js +++ b/src/js/listeners.js @@ -486,7 +486,7 @@ class Listeners { // Update download link when ready and if quality changes on.call(player, player.media, 'ready qualitychange', () => { - controls.setDownloadLink.call(player); + controls.setDownloadUrl.call(player); }); // Proxy events to container diff --git a/src/js/plugins/vimeo.js b/src/js/plugins/vimeo.js index 9d6c1665..e1e873fa 100644 --- a/src/js/plugins/vimeo.js +++ b/src/js/plugins/vimeo.js @@ -48,14 +48,14 @@ const vimeo = { // Set intial ratio setAspectRatio.call(this); - // Load the API if not already + // Load the SDK if not already if (!is.object(window.Vimeo)) { loadScript(this.config.urls.vimeo.sdk) .then(() => { vimeo.ready.call(this); }) .catch(error => { - this.debug.warn('Vimeo API failed to load', error); + this.debug.warn('Vimeo SDK (player.js) failed to load', error); }); } else { vimeo.ready.call(this); @@ -259,7 +259,7 @@ const vimeo = { .getVideoUrl() .then(value => { currentSrc = value; - controls.setDownloadLink.call(player); + controls.setDownloadUrl.call(player); }) .catch(error => { this.debug.warn(error); diff --git a/src/js/plyr.js b/src/js/plyr.js index 1dd3ecb9..0a804437 100644 --- a/src/js/plyr.js +++ b/src/js/plyr.js @@ -823,6 +823,19 @@ class Plyr { return is.url(download) ? download : this.source; } + /** + * Set the download URL + */ + set download(input) { + if (!is.url(input)) { + return; + } + + this.config.urls.download = input; + + controls.setDownloadUrl.call(this); + } + /** * Set the poster image for a video * @param {String} input - the URL for the new poster image