dashboard-ui/components/medialibrarycreator/medialibrarycreator.js
2023-08-31 15:30:17 +02:00

1 line
6.7 KiB
JavaScript

define(["exports","./../../modules/common/globalize.js","./../../modules/layoutmanager.js","./../../modules/loading/loading.js","./../../modules/dialoghelper/dialoghelper.js","./../libraryoptionseditor/libraryoptionseditor.js","./../../modules/listview/listview.js","./../../modules/emby-elements/emby-scroller/emby-scroller.js","./../../modules/emby-elements/emby-button/emby-button.js","./../../modules/emby-elements/emby-button/paper-icon-button-light.js","./../../modules/emby-elements/emby-input/emby-input.js","./../../modules/emby-elements/emby-select/emby-select.js","./../../modules/emby-elements/emby-checkbox/emby-checkbox.js","./../../modules/emby-elements/emby-toggle/emby-toggle.js"],function(_exports,_globalize,_layoutmanager,_loading,_dialoghelper,_libraryoptionseditor,_listview,_embyScroller,_embyButton,_paperIconButtonLight,_embyInput,_embySelect,_embyCheckbox,_embyToggle){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["flexStyles","formDialogStyle"]);var currentResolve,hasChanges,currentOptions,pathInfos=[];function showAlert(options){Emby.importModule("./modules/common/dialogs/alert.js").then(function(alert){return alert(options)})}function onSubmit(e){var form,dlg,type,libraryOptions;return e.preventDefault(),e.stopPropagation(),0===pathInfos.length?showAlert({text:_globalize.default.translate("PleaseAddAtLeastOneFolder"),type:"error"}):(dlg=(form=this).closest(".dialog"),e=(form.querySelector(".button-submit").setAttribute("disabled","disabled"),form.querySelector("#txtValue").value),"mixed"===(type=form.querySelector("#selectCollectionType").value)&&(type=null),(libraryOptions=_libraryoptionseditor.default.getLibraryOptions(dlg.querySelector(".libraryOptions"))).PathInfos=pathInfos,libraryOptions.ContentType=type,ApiClient.addVirtualFolder(e,type,currentOptions.refresh,libraryOptions).then(function(){hasChanges=!0,_dialoghelper.default.close(dlg)},function(){form.querySelector(".button-submit").removeAttribute("disabled"),showAlert(_globalize.default.translate("ErrorAddingMediaPathToVirtualFolder"))})),!1}function onToggleAdvancedChange(){var dlg=this.closest(".dlg-librarycreator");_libraryoptionseditor.default.setAdvancedVisible(dlg.querySelector(".libraryOptions"),this.checked)}function onAddButtonClick(){var dlg=this.closest(".dlg-librarycreator");require(["directorybrowser"],function(directoryBrowser){var picker=new directoryBrowser;picker.show({enableNetworkSharePath:!0,enableLoginCredentials:!0,callback:function(path,networkSharePath,username,password){path&&!function(page,path,networkSharePath,username,password){var pathLower=path.toLowerCase();0===pathInfos.filter(function(p){return p.Path.toLowerCase()===pathLower}).length&&(path={Path:path},networkSharePath&&(path.NetworkPath=networkSharePath),username&&(path.Username=username),password&&(path.Password=password),pathInfos.push(path),renderPaths(page))}(dlg,path,networkSharePath,username,password),picker.close()}})})}function getFolderHtml(pathInfo,index){var html="",html=(html+='<div class="listItem listItem-border lnkPath">')+('<div class="'+(pathInfo.NetworkPath?"listItemBody two-line listItemBody-noleftpadding":"listItemBody listItemBody-noleftpadding")+'">')+('<div class="listItemBodyText">'+pathInfo.Path+"</div>");return pathInfo.NetworkPath&&(html+='<div class="listItemBodyText listItemBodyText-secondary secondaryText">'+pathInfo.NetworkPath+"</div>"),html=(html+="</div>")+('<button type="button" is="paper-icon-button-light"" class="listItemButton btnRemovePath" data-index="'+index+'"><i class="md-icon">remove_circle</i></button>')+"</div>"}function renderPaths(page){var foldersHtml=pathInfos.map(getFolderHtml).join(""),page=page.querySelector(".folderList");(page.innerHTML=foldersHtml)?page.classList.remove("hide"):page.classList.add("hide")}function onRemoveClick(e){var index,locationLower,e=e.target.closest(".btnRemovePath");e&&(index=parseInt(e.getAttribute("data-index")),locationLower=pathInfos[index].Path.toLowerCase(),pathInfos=pathInfos.filter(function(p){return p.Path.toLowerCase()!==locationLower}),renderPaths(e.closest(".dlg-librarycreator")))}function onDialogClosed(){_loading.default.hide(),currentResolve(hasChanges)}function initLibraryOptions(dlg){_libraryoptionseditor.default.embed(dlg.querySelector(".libraryOptions")).then(function(){dlg.querySelector("#selectCollectionType").dispatchEvent(new CustomEvent("change",{bubbles:!0})),onToggleAdvancedChange.call(dlg.querySelector(".chkAdvanced"))})}_exports.default=function(){this.show=function(options){return new Promise(function(resolve,reject){currentOptions=options,currentResolve=resolve,hasChanges=!1;resolve=new XMLHttpRequest;resolve.open("GET","components/medialibrarycreator/medialibrarycreator.template.html",!0),resolve.onload=function(e){var collectionTypeOptions,selectCollectionType,template=this.response,dlg=_dialoghelper.default.createDialog({size:_layoutmanager.default.tv?"fullscreen":"medium-tall",modal:!1,removeOnClose:!0,scrollY:!1});dlg.classList.add("ui-body-a"),dlg.classList.add("background-theme-a"),dlg.classList.add("dlg-librarycreator"),dlg.classList.add("formDialog"),dlg.innerHTML=_globalize.default.translateDocument(template),template=dlg,collectionTypeOptions=options.collectionTypeOptions,(selectCollectionType=template.querySelector("#selectCollectionType")).innerHTML=function(collectionTypeOptions){return collectionTypeOptions.filter(function(i){return!1!==i.isSelectable}).map(function(i){return'<option value="'+i.value+'">'+i.name+"</option>"}).join("")}(collectionTypeOptions),selectCollectionType.value="",selectCollectionType.addEventListener("change",function(){var value=this.value,dlg=this.closest(".dialog"),index=(_libraryoptionseditor.default.setContentType(dlg.querySelector(".libraryOptions"),"mixed"===value?"":value),value?dlg.querySelector(".libraryOptions").classList.remove("hide"):dlg.querySelector(".libraryOptions").classList.add("hide"),this.selectedIndex);-1!==index&&(index=this.options[index].innerHTML.replace("*","").replace("&amp;","&"),dlg.querySelector("#txtValue").value=index,index=collectionTypeOptions.filter(function(i){return i.value===value})[0],dlg.querySelector(".collectionTypeFieldDescription").innerHTML=index.message||"")}),template.querySelector(".btnAddFolder").addEventListener("click",onAddButtonClick),template.querySelector("form").addEventListener("submit",onSubmit),template.querySelector(".folderList").addEventListener("click",onRemoveClick),template.querySelector(".chkAdvanced").addEventListener("change",onToggleAdvancedChange),dlg.addEventListener("close",onDialogClosed),_dialoghelper.default.open(dlg),dlg.querySelector(".btnCancel").addEventListener("click",function(){_dialoghelper.default.close(dlg)}),pathInfos=[],renderPaths(dlg),initLibraryOptions(dlg)},resolve.send()})}}});