diff --git a/package.json b/package.json index 6e95065f4..6324ffd33 100644 --- a/package.json +++ b/package.json @@ -224,6 +224,8 @@ "src/plugins/bookPlayer/plugin.js", "src/plugins/bookPlayer/tableOfContents.js", "src/plugins/photoPlayer/plugin.js", + "src/scripts/alphanumericshortcuts.js", + "src/scripts/autoBackdrops.js", "src/scripts/settings/appSettings.js", "src/scripts/settings/userSettings.js", "src/scripts/settings/webSettings.js", @@ -236,6 +238,7 @@ "src/scripts/imagehelper.js", "src/scripts/inputManager.js", "src/plugins/backdropScreensaver/plugin.js", + "src/plugins/youtubePlayer/plugin.js", "src/components/filterdialog/filterdialog.js", "src/components/fetchhelper.js", "src/scripts/editorsidebar.js", diff --git a/src/components/tabbedview/itemstab.js b/src/components/tabbedview/itemstab.js index 4aac2f747..d40faef5d 100644 --- a/src/components/tabbedview/itemstab.js +++ b/src/components/tabbedview/itemstab.js @@ -331,7 +331,7 @@ define(['playbackManager', 'userSettings', 'alphaPicker', 'alphaNumericShortcuts } if (this.enableAlphaNumericShortcuts !== false) { - this.alphaNumericShortcuts = new AlphaNumericShortcuts({ + this.alphaNumericShortcuts = new AlphaNumericShortcuts.default({ itemsContainer: this.itemsContainer }); } @@ -561,7 +561,7 @@ define(['playbackManager', 'userSettings', 'alphaPicker', 'alphaNumericShortcuts var alphaNumericShortcuts = this.alphaNumericShortcuts; if (alphaNumericShortcuts) { - alphaNumericShortcuts.destroy(); + alphaNumericShortcuts.default.destroy(); this.alphaNumericShortcuts = null; } }; diff --git a/src/controllers/list.js b/src/controllers/list.js index 73ca93c71..a98869578 100644 --- a/src/controllers/list.js +++ b/src/controllers/list.js @@ -803,7 +803,7 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager' bindAll(view.querySelectorAll('.btnShuffle'), 'click', shuffle); } - this.alphaNumericShortcuts = new AlphaNumericShortcuts({ + this.alphaNumericShortcuts = new AlphaNumericShortcuts.default({ itemsContainer: self.itemsContainer }); }); @@ -817,7 +817,7 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager' var alphaNumericShortcuts = self.alphaNumericShortcuts; if (alphaNumericShortcuts) { - alphaNumericShortcuts.destroy(); + alphaNumericShortcuts.default.destroy(); self.alphaNumericShortcuts = null; } }); diff --git a/src/plugins/youtubePlayer/plugin.js b/src/plugins/youtubePlayer/plugin.js index 5b5e1b1a3..fc7c33f87 100644 --- a/src/plugins/youtubePlayer/plugin.js +++ b/src/plugins/youtubePlayer/plugin.js @@ -1,199 +1,204 @@ -define(['require', 'events', 'browser', 'appRouter', 'loading'], function (require, events, browser, appRouter, loading) { - 'use strict'; - /* globals YT */ +import require from 'require'; +import events from 'events'; +import browser from 'browser'; +import appRouter from 'appRouter'; +import loading from 'loading'; - function zoomIn(elem, iterations) { - var keyframes = [ - { transform: 'scale3d(.2, .2, .2) ', opacity: '.6', offset: 0 }, - { transform: 'none', opacity: '1', offset: 1 } - ]; +/* globals YT */ - var timing = { duration: 240, iterations: iterations }; - return elem.animate(keyframes, timing); - } +function zoomIn(elem, iterations) { + const keyframes = [ + { transform: 'scale3d(.2, .2, .2) ', opacity: '.6', offset: 0 }, + { transform: 'none', opacity: '1', offset: 1 } + ]; - function createMediaElement(instance, options) { + const timing = { duration: 240, iterations: iterations }; + return elem.animate(keyframes, timing); +} - return new Promise(function (resolve, reject) { +function createMediaElement(instance, options) { - var dlg = document.querySelector('.youtubePlayerContainer'); + return new Promise(function (resolve, reject) { - if (!dlg) { + const dlg = document.querySelector('.youtubePlayerContainer'); - require(['css!./style'], function () { + if (!dlg) { - loading.show(); + import('css!./style').then(() => { - var dlg = document.createElement('div'); + loading.show(); - dlg.classList.add('youtubePlayerContainer'); + const dlg = document.createElement('div'); - if (options.fullscreen) { - dlg.classList.add('onTop'); - } + dlg.classList.add('youtubePlayerContainer'); - dlg.innerHTML = '
'; - var videoElement = dlg.querySelector('#player'); - - document.body.insertBefore(dlg, document.body.firstChild); - instance.videoDialog = dlg; - - if (options.fullscreen && dlg.animate && !browser.slow) { - zoomIn(dlg, 1).onfinish = function () { - resolve(videoElement); - }; - } else { - resolve(videoElement); - } - - }); - - } else { - resolve(dlg.querySelector('#player')); - } - }); - } - - function onVideoResize() { - var instance = this; - var player = instance.currentYoutubePlayer; - var dlg = instance.videoDialog; - if (player && dlg) { - player.setSize(dlg.offsetWidth, dlg.offsetHeight); - } - } - - function clearTimeUpdateInterval(instance) { - if (instance.timeUpdateInterval) { - clearInterval(instance.timeUpdateInterval); - } - instance.timeUpdateInterval = null; - } - - function onEndedInternal(instance) { - - clearTimeUpdateInterval(instance); - var resizeListener = instance.resizeListener; - if (resizeListener) { - window.removeEventListener('resize', resizeListener); - window.removeEventListener('orientationChange', resizeListener); - instance.resizeListener = null; - } - - var stopInfo = { - src: instance._currentSrc - }; - - events.trigger(instance, 'stopped', [stopInfo]); - - instance._currentSrc = null; - if (instance.currentYoutubePlayer) { - instance.currentYoutubePlayer.destroy(); - } - instance.currentYoutubePlayer = null; - } - - // 4. The API will call this function when the video player is ready. - function onPlayerReady(event) { - event.target.playVideo(); - } - - function onTimeUpdate(e) { - - events.trigger(this, 'timeupdate'); - } - - function onPlaying(instance, playOptions, resolve) { - - if (!instance.started) { - - instance.started = true; - resolve(); - clearTimeUpdateInterval(instance); - instance.timeUpdateInterval = setInterval(onTimeUpdate.bind(instance), 500); - - if (playOptions.fullscreen) { - - appRouter.showVideoOsd().then(function () { - instance.videoDialog.classList.remove('onTop'); - }); - - } else { - appRouter.setTransparency('backdrop'); - instance.videoDialog.classList.remove('onTop'); - } - - require(['loading'], function (loading) { - - loading.hide(); - }); - } - } - - function setCurrentSrc(instance, elem, options) { - - return new Promise(function (resolve, reject) { - - require(['queryString'], function (queryString) { - - instance._currentSrc = options.url; - var params = queryString.parse(options.url.split('?')[1]); - // 3. This function creates an