/* eslint-disable indent */ /** * Module for media library creator. * @module components/mediaLibraryCreator/mediaLibraryCreator */ import loading from 'loading'; import dialogHelper from 'dialogHelper'; import dom from 'dom'; import $ from 'jQuery'; import libraryoptionseditor from 'components/libraryoptionseditor/libraryoptionseditor'; import globalize from 'globalize'; import 'emby-toggle'; import 'emby-input'; import 'emby-select'; import 'paper-icon-button-light'; import 'listViewStyle'; import 'formDialogStyle'; import 'emby-button'; import 'flexStyles'; function onAddLibrary() { if (isCreating) { return false; } if (pathInfos.length == 0) { import('alert').then(({default: alert}) => { alert({ text: globalize.translate('PleaseAddAtLeastOneFolder'), type: 'error' }); }); return false; } isCreating = true; loading.show(); const dlg = dom.parentWithClass(this, 'dlg-librarycreator'); const name = $('#txtValue', dlg).val(); let type = $('#selectCollectionType', dlg).val(); if (type == 'mixed') { type = null; } const libraryOptions = libraryoptionseditor.getLibraryOptions(dlg.querySelector('.libraryOptions')); libraryOptions.PathInfos = pathInfos; ApiClient.addVirtualFolder(name, type, currentOptions.refresh, libraryOptions).then(() => { hasChanges = true; isCreating = false; loading.hide(); dialogHelper.close(dlg); }, () => { import('toast').then(({default: toast}) => { toast(globalize.translate('ErrorAddingMediaPathToVirtualFolder')); }); isCreating = false; loading.hide(); }); return false; } function getCollectionTypeOptionsHtml(collectionTypeOptions) { return collectionTypeOptions.map(i => { return ``; }).join(''); } function initEditor(page, collectionTypeOptions) { $('#selectCollectionType', page).html(getCollectionTypeOptionsHtml(collectionTypeOptions)).val('').on('change', function () { const value = this.value; const dlg = $(this).parents('.dialog')[0]; libraryoptionseditor.setContentType(dlg.querySelector('.libraryOptions'), value == 'mixed' ? '' : value); if (value) { dlg.querySelector('.libraryOptions').classList.remove('hide'); } else { dlg.querySelector('.libraryOptions').classList.add('hide'); } if (value != 'mixed') { const index = this.selectedIndex; if (index != -1) { const name = this.options[index].innerHTML.replace('*', '').replace('&', '&'); $('#txtValue', dlg).val(name); const folderOption = collectionTypeOptions.filter(i => { return i.value == value; })[0]; $('.collectionTypeFieldDescription', dlg).html(folderOption.message || ''); } } }); page.querySelector('.btnAddFolder').addEventListener('click', onAddButtonClick); page.querySelector('.btnSubmit').addEventListener('click', onAddLibrary); page.querySelector('.folderList').addEventListener('click', onRemoveClick); page.querySelector('.chkAdvanced').addEventListener('change', onToggleAdvancedChange); } function onToggleAdvancedChange() { const dlg = dom.parentWithClass(this, 'dlg-librarycreator'); libraryoptionseditor.setAdvancedVisible(dlg.querySelector('.libraryOptions'), this.checked); } function onAddButtonClick() { const page = dom.parentWithClass(this, 'dlg-librarycreator'); import('directorybrowser').then(({default: directoryBrowser}) => { const picker = new directoryBrowser(); picker.show({ enableNetworkSharePath: true, callback: function (path, networkSharePath) { if (path) { addMediaLocation(page, path, networkSharePath); } picker.close(); } }); }); } function getFolderHtml(pathInfo, index) { let html = ''; html += '