diff --git a/src/components/directorybrowser/directorybrowser.js b/src/components/directorybrowser/directorybrowser.js index 2d53da67e..76c65dce9 100644 --- a/src/components/directorybrowser/directorybrowser.js +++ b/src/components/directorybrowser/directorybrowser.js @@ -243,70 +243,70 @@ import alert from '../alert'; } } - class directoryBrowser { - constructor() { - let currentDialog; - this.show = options => { - options = options || {}; - const fileOptions = { - includeDirectories: true - }; - if (options.includeDirectories != null) { - fileOptions.includeDirectories = options.includeDirectories; - } - if (options.includeFiles != null) { - fileOptions.includeFiles = options.includeFiles; - } - Promise.all([getSystemInfo(), getDefaultPath(options)]).then( - responses => { - const systemInfo = responses[0]; - const initialPath = responses[1]; - const dlg = dialogHelper.createDialog({ - size: 'small', - removeOnClose: true, - scrollY: false - }); - dlg.classList.add('ui-body-a'); - dlg.classList.add('background-theme-a'); - dlg.classList.add('directoryPicker'); - dlg.classList.add('formDialog'); + let systemInfo; + class DirectoryBrowser { + currentDialog; + constructor() {} - let html = ''; - html += '
'; - html += ''; - html += '

'; - html += options.header || globalize.translate('HeaderSelectPath'); - html += '

'; - html += '
'; - html += getEditorHtml(options, systemInfo); - dlg.innerHTML = html; - initEditor(dlg, options, fileOptions); - dlg.addEventListener('close', onDialogClosed); - dialogHelper.open(dlg); - dlg.querySelector('.btnCloseDialog').addEventListener('click', () => { - dialogHelper.close(dlg); - }); - currentDialog = dlg; - dlg.querySelector('#txtDirectoryPickerPath').value = initialPath; - const txtNetworkPath = dlg.querySelector('#txtNetworkPath'); - if (txtNetworkPath) { - txtNetworkPath.value = options.networkSharePath || ''; - } - if (!options.pathReadOnly) { - refreshDirectoryBrowser(dlg, initialPath, fileOptions, true); - } + show = options => { + options = options || {}; + const fileOptions = { + includeDirectories: true + }; + if (options.includeDirectories != null) { + fileOptions.includeDirectories = options.includeDirectories; + } + if (options.includeFiles != null) { + fileOptions.includeFiles = options.includeFiles; + } + Promise.all([getSystemInfo(), getDefaultPath(options)]).then( + responses => { + const systemInfo = responses[0]; + const initialPath = responses[1]; + const dlg = dialogHelper.createDialog({ + size: 'small', + removeOnClose: true, + scrollY: false + }); + dlg.classList.add('ui-body-a'); + dlg.classList.add('background-theme-a'); + dlg.classList.add('directoryPicker'); + dlg.classList.add('formDialog'); + + let html = ''; + html += '
'; + html += ''; + html += '

'; + html += options.header || globalize.translate('HeaderSelectPath'); + html += '

'; + html += '
'; + html += getEditorHtml(options, systemInfo); + dlg.innerHTML = html; + initEditor(dlg, options, fileOptions); + dlg.addEventListener('close', onDialogClosed); + dialogHelper.open(dlg); + dlg.querySelector('.btnCloseDialog').addEventListener('click', () => { + dialogHelper.close(dlg); + }); + this.currentDialog = dlg; + dlg.querySelector('#txtDirectoryPickerPath').value = initialPath; + const txtNetworkPath = dlg.querySelector('#txtNetworkPath'); + if (txtNetworkPath) { + txtNetworkPath.value = options.networkSharePath || ''; + } + if (!options.pathReadOnly) { + refreshDirectoryBrowser(dlg, initialPath, fileOptions, true); } - ); - }; - this.close = () => { - if (currentDialog) { - dialogHelper.close(currentDialog); } - }; - } + ); + }; + + close = () => { + if (this.currentDialog) { + dialogHelper.close(this.currentDialog); + } + }; } - let systemInfo; - /* eslint-enable indent */ -export default directoryBrowser; +export {DirectoryBrowser}; diff --git a/src/components/mediaLibraryCreator/mediaLibraryCreator.js b/src/components/mediaLibraryCreator/mediaLibraryCreator.js index ffccd8e93..66827c4fb 100644 --- a/src/components/mediaLibraryCreator/mediaLibraryCreator.js +++ b/src/components/mediaLibraryCreator/mediaLibraryCreator.js @@ -102,8 +102,8 @@ import template from './mediaLibraryCreator.template.html'; function onAddButtonClick() { const page = dom.parentWithClass(this, 'dlg-librarycreator'); - import('../directorybrowser/directorybrowser').then(({default: directoryBrowser}) => { - const picker = new directoryBrowser(); + import('../directorybrowser/directorybrowser').then((Module) => { + const picker = new Module.DirectoryBrowser(); picker.show({ enableNetworkSharePath: true, callback: function (path, networkSharePath) { diff --git a/src/components/mediaLibraryEditor/mediaLibraryEditor.js b/src/components/mediaLibraryEditor/mediaLibraryEditor.js index cfd1955c7..496843226 100644 --- a/src/components/mediaLibraryEditor/mediaLibraryEditor.js +++ b/src/components/mediaLibraryEditor/mediaLibraryEditor.js @@ -162,8 +162,8 @@ import template from './mediaLibraryEditor.template.html'; } function showDirectoryBrowser(context, originalPath, networkPath) { - import('../directorybrowser/directorybrowser').then(({default: directoryBrowser}) => { - const picker = new directoryBrowser(); + import('../directorybrowser/directorybrowser').then((Module) => { + const picker = new Module.DirectoryBrowser(); picker.show({ enableNetworkSharePath: true, pathReadOnly: originalPath != null, diff --git a/src/components/tvproviders/xmltv.js b/src/components/tvproviders/xmltv.js index 853f9975c..44d08a3d7 100644 --- a/src/components/tvproviders/xmltv.js +++ b/src/components/tvproviders/xmltv.js @@ -145,8 +145,8 @@ export default function (page, providerId, options) { function onSelectPathClick(e) { const page = $(e.target).parents('.xmltvForm')[0]; - import('../directorybrowser/directorybrowser').then(({default: directoryBrowser}) => { - const picker = new directoryBrowser(); + import('../directorybrowser/directorybrowser').then((Module) => { + const picker = new Module.DirectoryBrowser(); picker.show({ includeFiles: true, callback: function (path) { diff --git a/src/controllers/dashboard/encodingsettings.js b/src/controllers/dashboard/encodingsettings.js index 88f1e975c..92080c877 100644 --- a/src/controllers/dashboard/encodingsettings.js +++ b/src/controllers/dashboard/encodingsettings.js @@ -217,8 +217,8 @@ import alert from '../../components/alert'; setDecodingCodecsVisible(page, this.value); }); $('#btnSelectEncoderPath', page).on('click.selectDirectory', function () { - import('../../components/directorybrowser/directorybrowser').then(({default: directoryBrowser}) => { - const picker = new directoryBrowser(); + import('../../components/directorybrowser/directorybrowser').then((Module) => { + const picker = new Module.DirectoryBrowser(); picker.show({ includeFiles: true, callback: function (path) { @@ -232,8 +232,8 @@ import alert from '../../components/alert'; }); }); $('#btnSelectTranscodingTempPath', page).on('click.selectDirectory', function () { - import('../../components/directorybrowser/directorybrowser').then(({default: directoryBrowser}) => { - const picker = new directoryBrowser(); + import('../../components/directorybrowser/directorybrowser').then((Module) => { + const picker = new Module.DirectoryBrowser(); picker.show({ callback: function (path) { if (path) { @@ -249,8 +249,8 @@ import alert from '../../components/alert'; }); }); $('#btnSelectFallbackFontPath', page).on('click.selectDirectory', function () { - import('../../components/directorybrowser/directorybrowser').then(({default: directoryBrowser}) => { - const picker = new directoryBrowser(); + import('../../components/directorybrowser/directorybrowser').then((Module) => { + const picker = new Module.DirectoryBrowser(); picker.show({ includeDirectories: true, callback: function (path) { diff --git a/src/controllers/dashboard/general.js b/src/controllers/dashboard/general.js index d919dbf11..e70aa5f25 100644 --- a/src/controllers/dashboard/general.js +++ b/src/controllers/dashboard/general.js @@ -53,8 +53,8 @@ import alert from '../../components/alert'; const brandingConfigKey = 'branding'; export default function (view) { $('#btnSelectCachePath', view).on('click.selectDirectory', function () { - import('../../components/directorybrowser/directorybrowser').then(({default: directoryBrowser}) => { - const picker = new directoryBrowser(); + import('../../components/directorybrowser/directorybrowser').then((Module) => { + const picker = new Module.DirectoryBrowser(); picker.show({ callback: function (path) { if (path) { @@ -70,8 +70,8 @@ import alert from '../../components/alert'; }); }); $('#btnSelectMetadataPath', view).on('click.selectDirectory', function () { - import('../../components/directorybrowser/directorybrowser').then(({default: directoryBrowser}) => { - const picker = new directoryBrowser(); + import('../../components/directorybrowser/directorybrowser').then((Module) => { + const picker = new Module.DirectoryBrowser(); picker.show({ path: $('#txtMetadataPath', view).val(), networkSharePath: $('#txtMetadataNetworkPath', view).val(), diff --git a/src/controllers/dashboard/networking.js b/src/controllers/dashboard/networking.js index 5cfab5093..2c9f07dec 100644 --- a/src/controllers/dashboard/networking.js +++ b/src/controllers/dashboard/networking.js @@ -181,8 +181,8 @@ import alert from '../../components/alert'; } }); view.querySelector('#btnSelectCertPath').addEventListener('click', function () { - import('../../components/directorybrowser/directorybrowser').then(({default: directoryBrowser}) => { - const picker = new directoryBrowser(); + import('../../components/directorybrowser/directorybrowser').then((Module) => { + const picker = new Module.DirectoryBrowser(); picker.show({ includeFiles: true, includeDirectories: true, diff --git a/src/controllers/livetvsettings.js b/src/controllers/livetvsettings.js index 4bc7d1128..e30ad8768 100644 --- a/src/controllers/livetvsettings.js +++ b/src/controllers/livetvsettings.js @@ -60,8 +60,8 @@ $(document).on('pageinit', '#liveTvSettingsPage', function () { const page = this; $('.liveTvSettingsForm').off('submit', onSubmit).on('submit', onSubmit); $('#btnSelectRecordingPath', page).on('click.selectDirectory', function () { - import('../components/directorybrowser/directorybrowser').then(({default: directoryBrowser}) => { - const picker = new directoryBrowser(); + import('../components/directorybrowser/directorybrowser').then((Module) => { + const picker = new Module.DirectoryBrowser(); picker.show({ callback: function (path) { if (path) { @@ -75,8 +75,8 @@ $(document).on('pageinit', '#liveTvSettingsPage', function () { }); }); $('#btnSelectMovieRecordingPath', page).on('click.selectDirectory', function () { - import('../components/directorybrowser/directorybrowser').then(({default: directoryBrowser}) => { - const picker = new directoryBrowser(); + import('../components/directorybrowser/directorybrowser').then((Module) => { + const picker = new Module.DirectoryBrowser(); picker.show({ callback: function (path) { if (path) { @@ -90,8 +90,8 @@ $(document).on('pageinit', '#liveTvSettingsPage', function () { }); }); $('#btnSelectSeriesRecordingPath', page).on('click.selectDirectory', function () { - import('../components/directorybrowser/directorybrowser').then(({default: directoryBrowser}) => { - const picker = new directoryBrowser(); + import('../components/directorybrowser/directorybrowser').then((Module) => { + const picker = new Module.DirectoryBrowser(); picker.show({ callback: function (path) { if (path) { @@ -105,8 +105,8 @@ $(document).on('pageinit', '#liveTvSettingsPage', function () { }); }); $('#btnSelectPostProcessorPath', page).on('click.selectDirectory', function () { - import('../components/directorybrowser/directorybrowser').then(({default: directoryBrowser}) => { - const picker = new directoryBrowser(); + import('../components/directorybrowser/directorybrowser').then((Module) => { + const picker = new Module.DirectoryBrowser(); picker.show({ includeFiles: true, callback: function (path) { diff --git a/src/controllers/livetvtuner.js b/src/controllers/livetvtuner.js index 261fbae34..4f7adb529 100644 --- a/src/controllers/livetvtuner.js +++ b/src/controllers/livetvtuner.js @@ -212,8 +212,8 @@ export default function (view, params) { }); }); view.querySelector('.btnSelectPath').addEventListener('click', function () { - import('../components/directorybrowser/directorybrowser').then(({default: directorybrowser}) => { - const picker = new directorybrowser(); + import('../components/directorybrowser/directorybrowser').then((Module) => { + const picker = new Module.DirectoryBrowser(); picker.show({ includeFiles: true, callback: function (path) { diff --git a/src/scripts/clientUtils.js b/src/scripts/clientUtils.js index 8fc02934d..93e5feb68 100644 --- a/src/scripts/clientUtils.js +++ b/src/scripts/clientUtils.js @@ -7,7 +7,7 @@ import baseConfirm from '../components/confirm/confirm'; import globalize from '../scripts/globalize'; import * as webSettings from './settings/webSettings'; import datetime from '../scripts/datetime'; -import directorybrowser from '../components/directorybrowser/directorybrowser'; +import { DirectoryBrowser } from '../components/directorybrowser/directorybrowser'; import dialogHelper from '../components/dialogHelper/dialogHelper'; import { Events } from 'jellyfin-apiclient'; @@ -217,7 +217,7 @@ const Dashboard = { showLoadingMsg, datetime, Events, - directorybrowser, + DirectoryBrowser, dialogHelper };