1 line
12 KiB
JavaScript
1 line
12 KiB
JavaScript
define(["exports","./../emby-apiclient/connectionmanager.js","./../common/globalize.js","./../layoutmanager.js","./../focusmanager.js","./../loading/loading.js","./../emby-elements/emby-scroller/emby-scroller.js","./../emby-elements/emby-input/emby-input.js","./../listview/listview.js","./../emby-elements/emby-button/paper-icon-button-light.js","./../emby-elements/emby-button/emby-button.js","./../emby-elements/emby-dialogclosebutton/emby-dialogclosebutton.js","./../dialoghelper/dialoghelper.js","./../dom.js","./../common/responsehelper.js"],function(_exports,_connectionmanager,_globalize,_layoutmanager,_focusmanager,_loading,_embyScroller,_embyInput,_listview,_paperIconButtonLight,_embyButton,_embyDialogclosebutton,_dialoghelper,_dom,_responsehelper){function initEditor(instance,content,options,apiClient){var btnRefreshDirectories=content.querySelector(".btnRefreshDirectories");function onPathTextChange(e){var value=this.value,value=value&&(value.startsWith("\\\\")||value.toLowerCase().startsWith("smb://")),fldUsername=content.querySelector(".fldUsername"),fldPassword=content.querySelector(".fldPassword");value?(fldUsername&&fldUsername.classList.remove("hide"),fldPassword&&fldPassword.classList.remove("hide")):(fldUsername&&fldUsername.classList.add("hide"),fldPassword&&fldPassword.classList.add("hide"))}btnRefreshDirectories&&btnRefreshDirectories.addEventListener("click",function(e){var _content$querySelecto;instance.path=content.querySelector(".txtDirectoryPickerPath").value,instance.username=null==(_content$querySelecto=content.querySelector(".txtUsername"))?void 0:_content$querySelecto.value,instance.password=null==(_content$querySelecto=content.querySelector(".txtPassword"))?void 0:_content$querySelecto.value,instance.itemsContainer.resume({refresh:!0}).catch(_responsehelper.default.handleErrorResponse)}),content.querySelector(".txtDirectoryPickerPath").addEventListener("change",onPathTextChange),content.querySelector(".txtDirectoryPickerPath").addEventListener("input",onPathTextChange),content.querySelector("form").addEventListener("submit",function(e){var _this$querySelector,path,username,password,networkSharePath;return options.callback&&(path=this.querySelector(".txtDirectoryPickerPath").value,username=(null==(_this$querySelector=this.querySelector(".txtUsername"))?void 0:_this$querySelector.value)||null,password=(null==(_this$querySelector=this.querySelector(".txtPassword"))?void 0:_this$querySelector.value)||null,networkSharePath=(null==(_this$querySelector=this.querySelector(".txtNetworkPath"))?void 0:_this$querySelector.value)||null,function(path,validateWriteable,username,password,apiClient){return apiClient.ajax({type:"POST",url:apiClient.getUrl("Environment/ValidatePath"),data:{ValidateWriteable:validateWriteable,Path:path,Username:username,Password:password}}).catch(_responsehelper.default.handleErrorResponse)}(path,options.validateWriteable,username,password,apiClient).then(function(){options.callback(path,networkSharePath,username,password)})),e.preventDefault(),e.stopPropagation(),!1})}function getListOptions(items){return{renderer:_listview.default,options:{enableDefaultIcon:!0,action:"custom",fields:["Name"],draggable:!1,draggableXActions:!1,multiSelect:!1,contextMenu:!1,hoverPlayButton:!1,enableUserDataButtons:!1,mediaInfo:!1,defaultBackground:!1,enableFocusScaling:!1,allowBorderXOffset:!1,playQueueIndicator:!1},virtualScrollLayout:"vertical-list"}}function onItemsContainerUpgraded(){this.itemsContainer.resume({refresh:!0}).then(function(){var context=this.dlg;_focusmanager.default.autoFocus(context,{skipIfNotEnabled:!0})}.bind(this))}function DirectoryBrowser(){}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["formDialogStyle"]),DirectoryBrowser.prototype.show=function(options){var fileOptions={includeDirectories:!0},apiClient=(null!=(options=options||{}).includeDirectories&&(fileOptions.includeDirectories=options.includeDirectories),null!=options.includeFiles&&(fileOptions.includeFiles=options.includeFiles),_connectionmanager.default.currentApiClient()),instance=this;return instance.fileOptions=fileOptions,instance.apiClient=apiClient,instance.options=options,Promise.all([apiClient.getSystemInfo(),function(options,apiClient){return options.path?Promise.resolve(options.path):apiClient.getJSON(apiClient.getUrl("Environment/DefaultDirectoryBrowser")).then(function(result){return result.Path||""},function(){return""})}(options,apiClient)]).then(function(responses){var systemInfo=responses[0],responses=responses[1],dlg=_dialoghelper.default.createDialog({size:_layoutmanager.default.tv?"fullscreen":"medium-tall",removeOnClose:!0,scrollY:!1}),html=((instance.dlg=dlg).classList.add("ui-body-a"),dlg.classList.add("background-theme-a"),dlg.classList.add("directoryPicker"),dlg.classList.add("formDialog"),""),systemInfo=(html=(html=(html=(html=(html+='<div class="formDialogHeader">')+'<button type="button" is="emby-dialogclosebutton"></button>'+'<h3 class="formDialogHeaderTitle">')+(options.header||_globalize.default.translate("HeaderSelectPath")))+"</h3>"+"</div>")+function(options,apiClient,systemInfo){var html="",labelKey=(html=html+'<div is="emby-scroller" data-horizontal="false" data-forcescrollbar="true" data-focusscroll="true" class="formDialogContent">'+'<div class="scrollSlider dialogContentInner dialog-content-centered padded-left padded-right flex flex-direction-column">',options.pathReadOnly||(html=(html=(html+='<div class="infoBanner">')+'<div class="infoBannerContent">'+(options.instruction?options.instruction+"<br/><br/>":""))+_globalize.default.translate("MessageDirectoryPickerInstruction").replace("{0}","<b>\\\\server</b>").replace("{1}","<b>\\\\192.168.1.101</b>"),"synology"===(systemInfo.PackageName||"").toLowerCase()?html=(html+="<br/><br/>")+'<a is="emby-linkbutton" class="button-link" href="https://github.com/MediaBrowser/Wiki/wiki/Synology-:-Setting-Up-Your-Media-Library-Share" target="_blank">'+_globalize.default.translate("LearnHowToCreateSynologyShares")+"</a>":"bsd"===systemInfo.OperatingSystem.toLowerCase()?html=(html=(html+="<br/><br/>")+_globalize.default.translate("MessageDirectoryPickerBSDInstruction")+"<br/>")+'<a is="emby-linkbutton" class="button-link" href="http://doc.freenas.org/9.3/freenas_jails.html#add-storage" target="_blank">'+_globalize.default.translate("LearnMore")+"</a>":"linux"===systemInfo.OperatingSystem.toLowerCase()&&(html=(html+="<br/><br/>")+_globalize.default.translate("MessageDirectoryPickerLinuxInstruction")+"<br/>"),html+="</div></div>"),!0!==options.includeFiles?"Folder":"LabelPath"),readOnlyAttribute=options.pathReadOnly?" readonly":"";return html=(html=(html+='<form style="margin:0;" class="flex-grow">')+'<div class="inputContainer flex align-items-center">'+'<div class="flex-grow">')+('<input is="emby-input" class="txtDirectoryPickerPath" type="text" required="required" '+readOnlyAttribute+' autocomplete="off" label="'+_globalize.default.translate(labelKey)+'"/>')+"</div>",readOnlyAttribute||(html+='<button type="button" is="paper-icon-button-light" class="btnRefreshDirectories emby-input-iconbutton" title="'+_globalize.default.translate("Refresh")+'" aria-label="'+_globalize.default.translate("Refresh")+'"><i class="md-icon">refresh</i></button>'),html+="</div>",options.enableLoginCredentials&&"windows"!==systemInfo.OperatingSystem.toLowerCase()&&apiClient.isMinServerVersion("4.8.0.40")&&(html=(html=(html=(html=(html+='<div class="inputContainer fldUsername hide">')+'<input is="emby-input" class="txtUsername" type="text" label="'+_globalize.default.translate("LabelUsername")+'"/><div class="fieldDescription">')+_globalize.default.translate("UsernameForFolderHelp")+'</div></div><div class="inputContainer fldPassword hide">')+'<input is="emby-input" class="txtPassword" type="password" label="'+_globalize.default.translate("LabelPassword")+'"/><div class="fieldDescription">')+_globalize.default.translate("PasswordForFolderHelp")+"</div></div>"),readOnlyAttribute||(html+='<div is="emby-scroller" class="flex flex-direction-column listItems-border scrollFrameY flex-grow result-scroller flex-grow" style="max-height: 20em;margin:2em 0;" data-mousewheel="true" data-horizontal="false" data-focusscroll="adaptive" data-adaptivestartthreshold="30"><div is="emby-itemscontainer" class="results itemsContainer scrollSlider flex-grow flex-direction-column focuscontainer navout-up navout-down"></div></div>'),options.enableNetworkSharePath&&(html=(html=(html+='<div class="inputContainer">')+'<input is="emby-input" class="txtNetworkPath" type="text" autocomplete="off" label="'+_globalize.default.translate("LabelOptionalNetworkPath")+'"/><div class="fieldDescription">')+_globalize.default.translate("LabelOptionalNetworkPathHelp")+"</div></div>"),html=(html=(html=(html+='<div class="formDialogFooter">')+('<button is="emby-button" type="submit" class="raised button-submit block formDialogFooterItem">'+_globalize.default.translate("ButtonOk")+"</button>")+"</div>")+"</form>"+"</div>")+"</div>"+"</div>"}(options,apiClient,systemInfo),dlg.innerHTML=html,initEditor(instance,dlg,options,apiClient),dlg.addEventListener("close",function(){_loading.default.hide(),this.destroy()}.bind(instance)),dlg.querySelector(".itemsContainer")),html=(systemInfo&&(systemInfo.addEventListener("action-null",function(e){var path=(e=e.detail.item).Path;"File"===e.FileType?(this.dlg.querySelector(".txtDirectoryPickerPath").value=path,this.dlg.querySelector(".txtDirectoryPickerPath").dispatchEvent(new CustomEvent("change",{bubbles:!0}))):(this.path=path,this.username=null==(e=this.dlg.querySelector(".txtUsername"))?void 0:e.value,this.password=null==(path=this.dlg.querySelector(".txtPassword"))?void 0:path.value,this.itemsContainer.resume({refresh:!0}))}.bind(instance)),systemInfo.fetchData=function(query){var instance,apiClient,promises,fileOptions,path=this.path;return path&&"string"!=typeof path||(instance=this).options.pathReadOnly?Promise.resolve({Items:[],TotalRecordCount:0}):(apiClient=this.apiClient,fileOptions=this.fileOptions,promises=[],"Network"===path?promises.push(apiClient.getNetworkDevices()):path?((fileOptions=Object.assign({},fileOptions)).username=this.username,fileOptions.password=this.password,promises.push(apiClient.getDirectoryContents(path,fileOptions)),promises.push(apiClient.getParentPath(path))):promises.push(apiClient.getDrives()),Promise.all(promises).then(function(responses){var folders=responses[0],responses=responses[1]||"",items=(instance.dlg.querySelector(".txtDirectoryPickerPath").value=path||"",[]);path&&items.push({Path:responses,Name:".. ["+_globalize.default.translate("Back")+"]",Icon:"arrow_back"}),items=items.concat(folders.map(function(f){return{Path:f.Path,Name:f.Name,FileType:f.Type,Icon:"File"===f.Type?"description":"folder"}})),path||items.push({Path:"Network",Name:_globalize.default.translate("Network"),Icon:"wifi"});for(var i=0,length=items.length;i<length;i++)items[i].Type="GenericListItem",items[i].ServerId=apiClient.serverId(),"File"!==items[i].FileType&&(items[i].asideIcon="");return _loading.default.hide(),Promise.resolve({Items:items,TotalRecordCount:items.length})}))}.bind(instance),systemInfo.afterRefresh=function(){this.dlg.querySelector(".result-scroller").scrollToBeginning({behavior:"instant"})}.bind(instance),systemInfo.getListOptions=getListOptions,instance.itemsContainer=systemInfo),dlg.querySelector(".txtDirectoryPickerPath")),systemInfo=(html.value=responses,instance.path=responses,dlg.querySelector(".txtNetworkPath")),responses=(systemInfo&&(systemInfo.value=options.networkSharePath||""),dlg.querySelector(".txtUsername")),systemInfo=(responses&&(responses.value=options.username||""),instance.username=options.username,dlg.querySelector(".txtPassword"));systemInfo&&(systemInfo.value=options.password||""),instance.password=options.password,_dialoghelper.default.open(dlg),html.dispatchEvent(new CustomEvent("change",{bubbles:!0})),dlg.addEventListener("opened",function(){var itemsContainer=this.itemsContainer;itemsContainer&&(itemsContainer.resume?onItemsContainerUpgraded.call(this):_dom.default.addEventListener(itemsContainer,"upgraded",onItemsContainerUpgraded.bind(this),{once:!0}))}.bind(instance))})},DirectoryBrowser.prototype.close=function(){this.dlg&&_dialoghelper.default.close(this.dlg)},DirectoryBrowser.prototype.destroy=function(){this.itemsContainer=null,this.dlg=null,this.path=null,this.options=null,this.fileOptions=null,this.apiClient=null};_exports.default=DirectoryBrowser}); |