1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00
jellyfin-web/dashboard-ui/components/directorybrowser/directorybrowser.js

1 line
7.3 KiB
JavaScript
Raw Normal View History

2017-03-25 17:32:04 -04:00
define(["loading","dialogHelper","dom","listViewStyle","emby-input","emby-button","paper-icon-button-light","css!./directorybrowser","formDialogStyle"],function(loading,dialogHelper,dom){"use strict";function getSystemInfo(){return systemInfo?Promise.resolve(systemInfo):ApiClient.getPublicSystemInfo().then(function(info){return systemInfo=info,info})}function onDialogClosed(){loading.hide()}function refreshDirectoryBrowser(page,path,fileOptions){if(path&&"string"!=typeof path)throw new Error("invalid path");loading.show();var promises=[];"Network"===path?promises.push(ApiClient.getNetworkDevices()):path?(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],parentPath=responses[1]||"";page.querySelector("#txtDirectoryPickerPath").value=path||"";var html="";path&&(html+=getItem("lnkPath lnkDirectory","",parentPath,"..."));for(var i=0,length=folders.length;i<length;i++){var folder=folders[i],cssClass="File"==folder.Type?"lnkPath lnkFile":"lnkPath lnkDirectory";html+=getItem(cssClass,folder.Type,folder.Path,folder.Name)}path||(html+=getItem("lnkPath lnkDirectory","","Network",Globalize.translate("ButtonNetwork"))),page.querySelector(".results").innerHTML=html,loading.hide()},function(){page.querySelector("#txtDirectoryPickerPath").value="",page.querySelector(".results").innerHTML="",loading.hide()})}function getItem(cssClass,type,path,name){var html="";return html+='<div class="listItem '+cssClass+'" data-type="'+type+'" data-path="'+path+'" style="border-bottom:1px solid #e0e0e0;">',html+='<div class="listItemBody" style="padding-left:0;padding-top:.5em;padding-bottom:.5em;">',html+='<div class="listItemBodyText">',html+=name,html+="</div>",html+="</div>",html+='<i class="md-icon" style="font-size:inherit;">arrow_forward</i>',html+="</div>"}function getEditorHtml(options,systemInfo){var html="";if(html+='<div class="formDialogContent smoothScrollY">',html+='<div class="dialogContentInner dialog-content-centered" style="padding-top:2em;">',!options.pathReadOnly){var instruction=options.instruction?options.instruction+"<br/><br/>":"";html+='<div class="directoryPickerHeadline">',html+=instruction,html+=Globalize.translate("MessageDirectoryPickerInstruction").replace("{0}","<b>\\\\server</b>").replace("{1}","<b>\\\\192.168.1.101</b>"),"bsd"==systemInfo.OperatingSystem.toLowerCase()?(html+="<br/>",html+="<br/>",html+=Globalize.translate("MessageDirectoryPickerBSDInstruction"),html+="<br/>",html+='<a href="http://doc.freenas.org/9.3/freenas_jails.html#add-storage" target="_blank">'+Globalize.translate("ButtonMoreInformation")+"</a>"):"linux"==systemInfo.OperatingSystem.toLowerCase()&&(html+="<br/>",html+="<br/>",html+=Globalize.translate("MessageDirectoryPickerLinuxInstruction"),html+="<br/>"),html+="</div>"}html+='<form style="margin:auto;">',html+='<div class="inputContainer" style="display: flex; align-items: center;">',html+='<div style="flex-grow:1;">';var labelKey=options.includeFiles!==!0?"LabelFolder":"LabelPath",readOnlyAttribute=options.pathReadOnly?" readonly":"";return html+='<input is="emby-input" id="txtDirectoryPickerPath" type="text" required="required" '+readOnlyAttribute+' label="'+Globalize.translate(labelKey)+'"/>',html+="</div>",readOnlyAttribute||(html+='<button type="button" is="paper-icon-button-light" class="btnRefreshDirectories" title="'+Globalize.translate("ButtonRefresh")+'"><i class="md-icon">search</i></button>'),html+="</div>",readOnlyAttribute||(html+='<div class="results paperList" style="max-height: 200px; overflow-y: auto;"></div>'),options.enableNetworkSharePath&&(html+='<div class="inputContainer" style="margin-top:2em;">',html+='<input is="emby-input" id="txtNetworkPath" type="text" label="'+Globalize.translate("LabelOptionalNetworkPath")+'"/>',html+='<div class="fieldDescription">',html+=Globalize.translate("LabelOptionalNetworkPathHelp"),html+="</div>",html+="</div>"),html+='<div class="formDialogFooter">',html+='<button is=