D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
usr
/
local
/
psa
/
admin
/
cp
/
public
/
javascript
/
app
/
file-manager
/
Filename :
explorer.js
back
Copy
"use strict";(self.webpackChunkPlesk=self.webpackChunkPlesk||[]).push([["app/file-manager/explorer"],{1709:(e,t,s)=>{s.r(t),s.d(t,{default:()=>a});class i extends Ajax.Request{constructor(e,t){super(e,t),t.onProgress&&(this.onProgress=t.onProgress)}request(e){this.transport.upload.onprogress=(...e)=>this.onProgress&&this.onProgress(...e),super.request(e)}setRequestHeaders(){}}const a=i},1706:(e,t,s)=>{s.r(t),s.d(t,{default:()=>r});var i=s(89),a=s(1707);class n extends a.default{_initConfiguration(e){super._initConfiguration(e),this._cls=this._getConfigParam("cls","popup-panel"),this._titleCls=this._getConfigParam("titleCls","pp-error"),this._errorMessage=this._getConfigParam("errorMessage",""),this._message=this._getConfigParam("message",null),this._items=this._getConfigParam("items",[])}render(){super.render(),this.setTitle(this.lmsg("errorDialogTitle")),this._addErrorMessage(this._errorMessage),this._message&&this.setHint1(this._message),this._items.forEach((e=>{this.addItem(e)})),this.addRightButton(this.lmsg("buttonClose"),this.onClose.bind(this),!0,!0),this.resizeList()}onClose(){this.hide()}addItem(e){this._itemClass="odd"===this._itemClass?"even":"odd";let t="",s="";switch(e.status){case"SUCCESS":t="ok",s=this.lmsg("statusCompleted");break;case"ERROR":t="failed",s=this.lmsg("statusFailed");break;default:t="not-started",s=this.lmsg("statusNotStarted")}const a=`<span class="hint-${t}">${s}</span>`;(0,i.render)(document.getElementById(this._itemsAreaId),`<tr class="${this._itemClass}"><td class="first"><span class="type-${(0,i.escapeHtml)(e.type)}">${(0,i.escapeHtml)(e.name)}</span></td><td class="last">${a}</td></tr>`)}}const r=n},1699:(e,t,s)=>{s.r(t),s.d(t,{default:()=>g});var i=s(1700),a=s.n(i),n=s(89),r=s(380),o=s(1701),l=s(1702),d=s(1703),h=s(1710),u=s(1711),c=s(547),p=s(1712);class m extends n.List{render(){if(!this._renderTarget)return;const e=[...this._componentElement.childNodes];(0,n.render)(this._componentElement,`<div id="${this._id}-content"></div>`),(0,n.render)(this._renderTarget,this._componentElement),this._componentElement=this._componentElement.querySelector(`#${this._id}-content`),(0,n.render)(this._componentElement,e),l.default.isAdvancedUploadSupported()&&(this._dropArea=new n.DropArea({locale:{dragAndDropArea:this.lmsg("dragAndDropArea")},onDrop:e=>{this.showPopup(d.default,{files:e,...this._uploadPopupParams})}}),this._dropArea.render()),this._renderTarget=null,setTimeout((()=>super.render()))}_addEvents(){super._addEvents(),window.addEventListener("resize",o.default,!1),this.debouncedResizeBlocks=a()((()=>(0,o.default)()),100),this.contentResizeObserver=new ResizeObserver(this.debouncedResizeBlocks),this.contentResizeObserver.observe(document.getElementById("main"))}remove(){super.remove(),window.removeEventListener("resize",o.default),this.contentResizeObserver.unobserve(document.getElementById("main")),this.debouncedResizeBlocks.cancel()}_registerComponent(){super._registerComponent(),(0,n.registerComponent)("fm-content",this)}_getActionBoxElement(){return document.getElementById("fm-actions-box")}addContentTableClickHandler(){this._componentElement.querySelector(`#${this._tableId}`).addEventListener("click",(e=>{const t=e.target.closest("[data-dir]");if(t){const s=this.getItemByName(t.dataset.dir);return s.isUtf8?s.has4ByteChar?(e.preventDefault(),void(0,n.addStatusMessage)("error",this.lmsg("non4ByteChar"))):void this.changeDirectory(t.dataset.dir):(e.preventDefault(),void(0,n.addStatusMessage)("error",this.lmsg("nonUTF8")))}const s=e.target.closest("[data-file]");if(s){const t=this.getItemById(s.dataset.file);if(!t.isUtf8)return e.preventDefault(),void(0,n.addStatusMessage)("error",this.lmsg("nonUTF8"));if(t.has4ByteChar)return e.preventDefault(),void(0,n.addStatusMessage)("error",this.lmsg("non4ByteChar"));this.callDefaultItemAction(s.dataset.file)}}))}changeDirectory(e,t){this.resetSearch(),e=t?e:`${this._state.currentDir}/${e}`,this.reload(`?currentDir=${encodeURIComponent(e)}`)}getCurrentDir(){return this._state.currentDir}isTrashEnabled(){return this._state.trashEnabled}getReadonlyHint(){return this._state.currentDirReadonly?`<div class="error-hint">${this._pathbar.locale.readonlyHint}</div>`:""}getUploadMaxFileSize(){return this._state.uploadMaxFileSize}async showPopup(e,{id:t,...s}){const i=this._getConfigParam("domainId");s={locale:await n.Locale.loadSection(`smb.controllers.file-manager.${t.replace("fm-","")}`),id:t,attrs:{"domain-id":i},...s};const a=(0,n.getComponent)(t);a&&i===a.getAttribute("domain-id")?a.reset(s):new e(s)}calculateSize(e){const t={url:e,skipConfirmation:!0,toJsonPayload:!0};t.submitHandler=(e,t)=>{this.disable(),n.api.post(e,t).then((e=>{this._componentElement.querySelector(`#${this._tableId}`).querySelectorAll("tr.selected").forEach((t=>{const s=t.querySelector("td.js-file-name a span");if(!s)return;const i=s.firstChild.nodeValue;i in e.fileSizes&&(t.querySelector("td.js-file-size").innerHTML=e.fileSizes[i])})),(0,n.clearStatusMessages)(),e.statusMessages?.forEach((({status:e,content:t})=>{(0,n.addStatusMessage)(e,t)}))})).finally((()=>this.enable()))},this.execGroupOperation(t)}deleteFile(e){const t=this.getSelectedItems();let s=!1;this.execGroupOperation({subtype:n.messageBox.SUBTYPE_DELETE,needAttention:this.isTrashEnabled(),needAttentionText:this.getLocale().formatMessage("deleteWithForce",{name:`<b>${(0,n.escapeHtml)(t[0]?.name)}</b>`,count:t.length}),needAttentionBlockSubmit:!1,needAttentionOnChange:e=>{s=e},beforeSendRequest:(e,t)=>{t.force=s?"yes":"no",e()},onSuccess:()=>{this.enable(),this._tree.reloadPath(this.isTrashEnabled()&&!s?"/":this.getCurrentDir())},...e})}purgeFile(e){this.execGroupOperation({subtype:n.messageBox.SUBTYPE_DELETE,onSuccess:()=>{this.enable(),this._tree.reloadPath(this.getCurrentDir())},...e})}purgeAll(e){this.execGroupOperation({subtype:n.messageBox.SUBTYPE_DELETE,onSuccess:()=>{this.enable(),this._tree.reloadPath("/")},...e})}processReloadError({status:e,message:t}){e?((0,n.clearStatusMessages)(),(0,n.addStatusMessage)(e,t)):(0,n.showInternalError)("Unable to load list data.")}_initConfiguration({directoriesTree:e,itemActions:t,locale:s=n.Locale.getSection("smb.components.lists.contentfiles"),...i}){const a=e=>t=>{const s={...this.getFileParams(t.name),mode:e,type:t.type};t.line&&(s.line=t.line);const i=new URLSearchParams(window.location.search);i.set("modals[editor]",(0,p.btoaUnicode)(JSON.stringify(s))),this._getConfigParam("navigate")(`${window.location.pathname}?${i}`)};super._initConfiguration({id:"fm",locale:s,pageable:!1,fileManagerUrl:"/smb/file-manager/",isDisabledItem:({isSystem:e})=>e,itemActions:{...t,rename:e=>{this.showPopup(h.default,{id:"fm-rename",renderTo:"fm-modal-dialog-box-rename",cls:"popup-panel",handlerUrl:this.getFileManagerUrl("rename"),itemId:e.id,fileName:e.name})},extractArchive:e=>{this.showPopup(u.default,{id:"fm-extract-archive",renderTo:"fm-modal-dialog-box-extract-archive",cls:"popup-panel",handlerUrl:this.getFileManagerUrl("extract-archive"),titleCls:"pp-archive-extract",fileName:e.id})},download:({name:e})=>{(0,n.redirect)((0,n.addUrlParams)(this.getFileManagerUrl("download"),{...this.getFileParams(e)}))},permissions:e=>{const t={...this.getFileParams(e.name),isDirectory:e.isDirectory,icon:(0,c.getTypeIcon)(e)},s=new URLSearchParams(window.location.search);s.set("modals[permissions]",(0,p.btoaUnicode)(JSON.stringify(t))),this._getConfigParam("navigate")(`${window.location.pathname}?${s}`)},imageView:e=>{const t=this._data.filter((({type:e})=>e===c.FTYPE_IMAGE||e===c.FTYPE_VECTOR_IMAGE)),s=t.map((({name:e})=>`<img class="slider__image" src="${(0,n.addUrlParams)(this.getFileManagerUrl("show-image"),{file:e})}" /><div class="slider__content">${(0,n.escapeHtml)(e)}</div>`));new n.PopupSlider({title:this.lmsg("imageViewer"),slides:s,current:t.indexOf(e)})},view:a("show"),textEdit:a("edit"),textCodeEditor:a("code-editor")},...i}),this._additionalColumns=this._getConfigParam("additionalColumns",!1),this._dataUrl=this.getFileManagerUrl("list-data"),this._copyMoveTreeConfig={applyTo:"fm-modal-dialog-box-files-tree",data:e,dataUrl:this.getFileManagerUrl("tree-data"),rootNodeTitle:this.lmsg("rootDirectory"),waitMessage:this.lmsg("waitMessage")},this._uploadPopupParams={id:"fm-upload",renderTo:"fm-modal-dialog-box-upload",cls:"popup-panel",handlerUrl:this.getFileManagerUrl("upload"),titleCls:"pp-upload",onOpenReplaceExistingFilesDialog:this._getConfigParam("onOpenReplaceExistingFilesDialog"),onChangeUploadProgress:this._getConfigParam("onChangeUploadProgress"),onCancel:this._getConfigParam("onCancelUpload"),onClose:this._getConfigParam("onCloseUpload")},this._tree=this._getConfigParam("tree")}redraw(){super.redraw(),this._getConfigParam("onListStateChange")(this._state),this._getConfigParam("onPathbarChange")(this._pathbar),this._tree.setDirectory(this.getCurrentDir()),(0,n.render)(document.querySelector(".objects-list .objects-content-area"),this._tree,"inner"),!this._dropArea||this._state.currentDirReadonly||this._searchValue||(0,n.render)(document.getElementById("objects-details"),this._dropArea._componentElement),(0,o.default)(),this.addContentTableClickHandler()}recreate(e){this._initConfiguration(e),this.redraw()}_isColumnSelectionPresent(){return!this._searchValue}containerView(){const e=super.containerView(),t=e.children.splice(2);return e.children.push((0,n.createElement)(".objects-content",(0,n.createElement)(`#${this._id}-objects-content-area.objects-content-area`,t))),e}_getActionBox(){return null}callDefaultItemAction(e){const t=this.getItemById(e),s=t.actions.find((e=>e.default))||{name:"view"};s.href&&(0,n.redirect)(s.href),this._itemActions[s.name]&&this._itemActions[s.name](t,s)}disable(){if(!this._componentElement.querySelector(".objects-content"))return;this._componentElement.querySelector(".objects-content").style.display="none";const e=document.getElementById(`${this._id}-loading-container`);e?e.style.display="":(0,n.render)(this._componentElement,`<div class="ajax-loading" id="${this._id}-loading-container">${this.lmsg("loadingTitle")}</div>`),this._getConfigParam("onDisable")()}enable(){const e=document.getElementById(`${this._id}-loading-container`);e&&(e.style.display="none"),this._componentElement.querySelector(".objects-content").style.display="",this._getConfigParam("onEnable")()}_onReloadComplete(){super._onReloadComplete(),(0,o.default)()}_addResponsiveHtml(){}_addPathbar(){}_getPathbarHtml(){return""}_getColumns(){const e=[];return this._searchValue||e.push({...n.list.COLUMN_SELECTION,cls:"select first",headerCls:"select first",hideDisabled:!0}),e.push({header:this.lmsg("name"),dataIndex:"name",cls:"js-file-name fm-file-name",renderer(e){const t=`<i class="icon"><img src="${(0,c.getTypeIcon)(e)}"></i> `,s=e.line?`:${e.line}`:"";return`${`<a class="i-link fm-file-name-link" ${e.isDirectory?`data-dir="${(0,n.escapeAttribute)(e.name)}"`:`data-file="${(0,n.escapeAttribute)(e.id)}"`}>`}${t}<span>${(0,n.escapeHtml)(e.name)}${s}</span></a>`},sortable:!this._searchValue},{header:this.lmsg("changeDate"),dataIndex:"modificationDate",cls:"minor number",sortable:!this._searchValue},{header:this.lmsg("size"),dataIndex:"formatedSize",cls:"t-r number js-file-size ",headerCls:this._additionalColumns?"":"last",sortable:!this._searchValue}),this._additionalColumns&&e.push({header:this.lmsg("permissions"),dataIndex:"filePerms",cls:"nowrap",renderer(e){return this.getItemActions(e).some((e=>"permissions"===e.name))?(0,n.createElement)("a",{onclick:()=>this._itemActions.permissions(e)},e.filePerms):e.filePerms},isVisible:()=>!r.default.get("fm-hidden-permissions-column"),sortable:!this._searchValue},{header:this.lmsg("user"),dataIndex:"user",isVisible:()=>!r.default.get("fm-hidden-user-column"),sortable:!this._searchValue},{header:this.lmsg("group"),dataIndex:"group",cls:"last",headerCls:"last",isVisible:()=>!r.default.get("fm-hidden-group-column"),sortable:!this._searchValue}),e.push(n.list.COLUMN_ACTIONS),e}getFileManagerUrl(e){return`${this._getConfigParam("fileManagerUrl")}${e}/domainId/${this._getConfigParam("domainId")}/`}getRedirectActionUrl(e,{name:t,line:s}){return(0,n.addUrlParams)(this.getFileManagerUrl(e),{...this.getFileParams(t),line:s})}getFileParams(e){let t=this.getCurrentDir();"/"!==t&&(t+="/");const s=e.lastIndexOf("/");return-1!==s&&(t+=e.slice(0,s),e=e.slice(s+1)),{currentDir:t,file:e}}onListGlobalCheckboxClick(){super.onListGlobalCheckboxClick();const e=this._getActionBoxElement().querySelector('.r-actions input[type="checkbox"]'),t=this._componentElement.querySelector('input[name="listGlobalCheckbox"]');e.checked=t.checked}resetSearch(){this._handleSearchLoadingChange(!1),this._searchValue="",this._getConfigParam("onResetSearch")(),this._searchRequest&&(this._searchRequest.abort(),this._searchRequest=null),(0,n.clearStatusMessages)()}search(e,t){n.UAT.dispatchAction("FM_SEARCH",{mode:t}),this.resetSearch(),this._searchValue=e,this._data=[],this.redraw();const s=(0,n.addUrlParams)(this.getFileManagerUrl("search-data"),{q:e,currentDir:this.getCurrentDir(),mode:t}),i=new XMLHttpRequest;this._searchRequest=i;let a=0;const r=[];let o=0;const l=()=>{this.redrawPartial("after",r.length-o),o=r.length};let d;this._handleSearchLoadingChange(!0);i.onprogress=()=>{(e=>{e.split("\n").forEach((e=>{try{const t=JSON.parse(e);if(t.id){const{line:e}=t;e&&(t.id+=`:${e}`),r.push(t)}else t.status&&"success"!==t.status&&t.message&&(d=t.message)}catch{}}))})(i.responseText.slice(a)),a=i.responseText.length,this._data=r,l()},i.onload=()=>{switch(i.status){case 200:break;case 504:(0,n.clearStatusMessages)(),(0,n.addStatusMessage)("warning",this.lmsg("searchErrorTimeout"));break;default:(0,n.showInternalError)(this.lmsg("searchError"))}this._handleSearchLoadingChange(!1),d&&((0,n.clearStatusMessages)(),(0,n.addStatusMessage)("warning",(0,n.escapeHtml)(d)))},i.onerror=e=>{throw this._handleSearchLoadingChange(!1),(0,n.showInternalError)(this.lmsg("searchError")),e},i.open("GET",s),i.send()}_handleSearchLoadingChange(e){e?this.disable():this.enable(),this._getConfigParam("onSearchLoadingChange")(e)}}const g=m},1711:(e,t,s)=>{s.r(t),s.d(t,{default:()=>r});var i=s(89),a=s(1705);class n extends a.default{render(){super.render(),(0,i.render)(document.getElementById(this._contentAreaId),`<form method="post" action="" enctype="application/x-www-form-urlencoded" id="${this._id}-form"><div><div class="form-row"><div class="field-name"><label for="${this._id}-destination-folder">${this.lmsg("destinationFolderHint")}</label></div><div class="field-value"><div class="text-value"><span id="${this._id}-destination-folder"></span></div></div></div><div class="form-row"><div class="single-row"><div class="indent-box"><input type="checkbox" class="checkbox" value="1" id="${this._id}-overwrite"/><div class="indent-box-content"><label for="${this._id}-overwrite">${this.lmsg("overwriteExisting")}</label></div></div></div></div></div></form>`),this.initOnSubmitEvent(),this.addRightButton(i.Locale.getSection("components.buttons").lmsg("ok"),this.onSubmit,!0,!0),this.addRightButton(i.Locale.getSection("components.buttons").lmsg("cancel"),this.hide,!1,!1),this.reset(this._config)}reset(e){e.fileName?(this._fileName=e.fileName,this._selectedItems=[(0,i.getComponent)("fm-content").getItemById(this._fileName)]):(this._fileName="",this._selectedItems=(0,i.getComponent)("fm-content").getSelectedItems()),document.getElementById(`${this._id}-overwrite`).checked=!1,this.initSelectionHint(),document.getElementById(`${this._id}-destination-folder`).innerHTML=(0,i.escapeHtml)((0,i.getComponent)("fm-content").getCurrentDir());let t=(0,i.getComponent)("fm-content").getReadonlyHint();t?(t=`<span class="field-errors">${t}</span>`,(0,i.render)(document.getElementById(`${this._id}-destination-folder`),t,"after")):(t=document.getElementById(`${this._id}-destination-folder`).parentNode.querySelector(".field-errors"),t&&t.parentNode.removeChild(t)),this._clearMessages(),super.reset()}onSubmit(){this.hide();const e=document.getElementById(`${this._id}-overwrite`).checked,t={url:this.getHandlerUrl(`overwrite=${e}`),skipConfirmation:!0};this._fileName?(t.ids=this._fileName,this.onOkHandlerCreate(),i.api.post(t.url,t).then((e=>this.onOkHandlerSuccess(e))).catch((e=>this.onOkHandlerException(null,e))).finally((()=>this.onOkHandlerComplete()))):(t.onSuccess=this.onGroupExtractSuccess,(0,i.getComponent)("fm-content").execGroupOperation(t))}onGroupExtractSuccess(){(0,i.getComponent)("fm-content").enable(),(0,i.getComponent)("fm-tree").reloadPath((0,i.getComponent)("fm-content").getCurrentDir())}onOkHandlerSuccess(e){this._clearMessages();const t=e.statusMessages[0];"info"===t.status?((0,i.getComponent)("fm-content").reload(),(0,i.getComponent)("fm-tree").reloadPath((0,i.getComponent)("fm-content").getCurrentDir()),(0,i.addStatusMessage)("info",t.content),this.hide()):(0,i.addStatusMessage)("error",t.content)}}const r=n},1707:(e,t,s)=>{s.r(t),s.d(t,{default:()=>n});var i=s(89);class a extends i.PopupForm{_initConfiguration(e){super._initConfiguration(e),this._itemsAreaId=`${this._id}-items`}_addEvents(){super._addEvents(),window.addEventListener("resize",this.resizeList.bind(this),!1)}_renderContentArea(){(0,i.render)(document.getElementById(this._contentAreaId),`<div class="list"><table width="100%" cellspacing="0"><tbody id="${this._itemsAreaId}"></tbody></table></div>`)}render(){super.render(),this._renderContentArea(),document.getElementById(this._actionButtonsId).classList.add("no-separator")}}const n=a},1703:(e,t,s)=>{s.r(t),s.d(t,{default:()=>o});var i=s(89),a=s(1704),n=s(1708);class r extends a.default{_initConfiguration(e){e.fileManagerUrl="/smb/file-manager/",super._initConfiguration(e),this._files=this._getConfigParam("files",null),this.resetFileInputElement=this._getConfigParam("resetFileInputElement",i.emptyFn),this._fileInputId=this._getConfigParam("fileInputId")}render(){this.onSubmit()}reset(e){e&&this._initConfiguration(e),this._uploadCanceled=!1,this.show(),this.onSubmit()}async onSubmit(){this._clearMessages(),await this.prepareUploadQueue(),this.startUploadQueue()}checkUploadQueue(){const e=super.checkUploadQueue();return e||this.hide(),e}_clearMessages(){(0,i.clearStatusMessages)()}_addErrorMessage(e){(0,i.addStatusMessage)("error",e)}async prepareUploadQueue(){this._uploadQueue=[],this._totalUploadedSize=0,this._totalSize=0,this._currentPaths=[];const e=this._files||document.getElementById(this._fileInputId).files;await Promise.all([...e].map((async(e,t)=>{let s=e;e.isFile&&(s=await this.getFile(e)),this.addUploadQueue(t,e.fullPath,s)})))}addUploadQueue(e,t,s){const i={progressId:`upload-progress-${e}`,status:"PENDING",type:"unknown",loaded:null};if(s.isDirectory)i.isDirectory=!0,i.fullPath=s.fullPath,i.total=0,i.savedFileName=s.fullPath,i.type="folder";else{const e=this.getFileSize(s);i.file=s,i.isFile=!0,i.savedFileName=s.name,i.total=e,i.fullPath=t?t.replace(s.name,""):null,this._totalSize+=e}this._uploadQueue.push(i)}getFile(e){return new Promise((t=>{e.file(t)}))}getFileSize(e){return void 0!==e.fileSize?e.fileSize:e.size}processUploadItem(e){if("PENDING"===e.status){if(this._started=!0,this.updateUploadProgressItemStatus(e,"UPLOADING"),this._uploadCurrent=e,e.isDirectory){const t=this._handlerUrl.split("/").filter((e=>e)).pop(),s=`${this._getConfigParam("fileManagerUrl")}create-directory/domainId/${t}/`;this._uploadAdapter.setHandlerUrl(s),this._uploadAdapter.upload(null,{newDirectoryName:e.fullPath,recursively:!0})}else this._uploadAdapter.setHandlerUrl(this.getHandlerUrl("recursively=1",e.fullPath)),this._uploadAdapter.upload(e.file);throw this.breakQueueException}}prepareUploadAdapter(){if(this._uploadAdapter)this._uploadAdapter.setHandlerUrl(this.getHandlerUrl());else{const e={handlerUrl:this.getHandlerUrl(),startUploadHandler:()=>{this._scheduleStartUpload&&(this._scheduleStartUpload=null,this.startNextQueueUpload())},finishUploadHandler:()=>{this.onNextQueueUploadFinished()},progressUploadHandler:e=>{this.onProgress(e)}};this._uploadAdapter=new n.default(e)}}close(){super.close(),this._files||this.resetFileInputElement(),this._files=null}onProgress(e){e.lengthComputable&&this._uploadCurrent&&(this._uploadCurrent.loaded=e.total>0?Math.round(e.loaded/e.total*this._uploadCurrent.total):0,this.renderUploadProgressDialog())}onNextQueueUploadFinished(){this._uploadCurrent&&(this._uploadCurrent.isDirectory||(this._uploadCurrent.loaded=this._uploadCurrent.total,this._totalUploadedSize+=this._uploadCurrent.total,this.renderUploadProgressDialog())),super.onNextQueueUploadFinished()}}const o=r},1705:(e,t,s)=>{s.r(t),s.d(t,{default:()=>n});var i=s(89);class a extends i.PopupForm{_initConfiguration(e){super._initConfiguration(e),this._handlerUrl=this._getConfigParam("handlerUrl","")}getHandlerUrl(e,t){let s=(0,i.getComponent)("fm-content").getCurrentDir();return t&&(s+="/"===s.charAt(0)?`${t}`:`/${t}`),s=s.replace("//","/"),(0,i.addUrlParams)(this._handlerUrl,`currentDir=${encodeURIComponent(s)}${e?`&${e}`:""}`)}render(){super.render(),this.setBoxType("form-box"),this.setTitle(this.lmsg("title"))}reset(){this.show()}onSubmitEvent(e){return this.onSubmit(),e.preventDefault(),!1}initOnSubmitEvent(){const e=document.getElementById(`${this._id}-form`);e._formSubmit=e.submit,e.submit=this.onSubmit.bind(this),e.addEventListener("submit",this.onSubmitEvent.bind(this))}disable(){document.getElementById(this._rightActionButtonsAreaId).querySelectorAll(".btn.action").forEach((e=>{this._okButtonTitle=e.innerHTML,e.innerHTML=`<span class="wait">${i.Locale.getSection("components.buttons").lmsg("wait")}</span>`})),document.getElementById(this._rightActionButtonsAreaId).querySelectorAll(".btn").forEach((e=>{e.disabled=!0,e.classList.add("disabled")}))}enable(){document.getElementById(this._rightActionButtonsAreaId).querySelectorAll(".btn.action").forEach((e=>{e.innerHTML=this._okButtonTitle})),document.getElementById(this._rightActionButtonsAreaId).querySelectorAll(".btn").forEach((e=>{e.disabled=!1,e.classList.remove("disabled")}))}initSelectionHint(){const e=this._selectedItems.length;1===e?this.setHint1(this.lmsg("hintFile",{file:`<b>${(0,i.escapeHtml)(this._selectedItems[0].name)}</b>`})):this.setHint1(this.lmsg("hintFiles",{number:e}))}onOkHandlerException(e,t){this._addErrorMessage(`Internal error: ${t}`)}onOkHandlerCreate(){this.disable()}onOkHandlerComplete(){this.enable()}}const n=a},1710:(e,t,s)=>{s.r(t),s.d(t,{default:()=>r});var i=s(89),a=s(1705);class n extends a.default{render(){super.render(),(0,i.render)(document.getElementById(this._contentAreaId),`<form method="post" action="" enctype="application/x-www-form-urlencoded" id="${this._id}-form"><div><div class="form-row"><div class="field-name"><label for="${this._id}-file-name">${this.lmsg("fileName")}</label></div><div class="field-value"><input name="newFileName" id="${this._id}-file-name" value="" class="f-middle-size input-text" type="text"><span class="field-errors" style="display: none;"></span></div></div></div></form>`),this.initOnSubmitEvent(),this.addRightButton(i.Locale.getSection("components.buttons").lmsg("ok"),this.onSubmit,!0,!0),this.addRightButton(i.Locale.getSection("components.buttons").lmsg("cancel"),this.hide,!1,!1),this.reset(this._config)}reset(e){this._itemId=e.itemId,this._fileName=e.fileName,this.setHint(this.lmsg("hint",{file:`<b>${(0,i.escapeHtml)(this._fileName)}</b>`})),this._clearMessages(),document.getElementById(`${this._id}-file-name`).value=this._fileName,super.reset();try{document.getElementById(`${this._id}-file-name`).focus()}catch{}}onSubmit(){const e=document.getElementById(`${this._id}-file-name`).value;this.onOkHandlerCreate(),i.api.post(this.getHandlerUrl(),{ids:this._itemId,newFileName:e}).then((e=>this.onOkHandlerSuccess(e))).catch((e=>this.onOkHandlerException(null,e))).finally((()=>this.onOkHandlerComplete()))}onOkHandlerSuccess(e){this._clearMessages();const t=e.statusMessages[0];"info"===t.status?((0,i.getComponent)("fm-content").reload(),(0,i.getComponent)("fm-tree").reloadPath((0,i.getComponent)("fm-content").getCurrentDir()),(0,i.addStatusMessage)("info",t.content),this.hide()):this._addErrorMessage(t.content)}}const r=n},1704:(e,t,s)=>{s.r(t),s.d(t,{default:()=>l});var i=s(93),a=s(89),n=s(1705),r=s(1706);class o extends n.default{constructor(...e){super(...e),(0,i.default)(this,"breakQueueException",new Error("UploadQueue break"))}_initConfiguration(e){super._initConfiguration(e),this._selectFilesDialogId=`${this._id}-select-files-dialog`,this._selectFilesDialogItemsAreaId=`${this._selectFilesDialogId}-items`}render(){super.render(),this.setHint(this.lmsg("hint")+(0,a.getComponent)("fm-content").getReadonlyHint()),(0,a.render)(document.getElementById(this._contentAreaId),`<div id="${this._selectFilesDialogId}"><div id="${this._selectFilesDialogItemsAreaId}"></div><div class="form-row"><div class="single-row"><a href="#" class="s-btn sb-item-add"><i><i><i><span>${this.lmsg("addFileItem")}</span></i></i></i></a></div></div></div>`),this.addSelectFilesItem(),document.getElementById(this._selectFilesDialogId).querySelectorAll(".sb-item-add").forEach((e=>{e.addEventListener("click",(e=>{this.onAddSelectFilesItemClick(e)}))})),this.addRightButton(a.Locale.getSection("components.buttons").lmsg("ok"),this.onSubmit,!1,!1),this.addRightButton(a.Locale.getSection("components.buttons").lmsg("cancel"),this.onCancel,!1,!1)}reset(){this._clearMessages(),document.getElementById(this._selectFilesDialogItemsAreaId).innerHTML="",this._uploadCanceled=!1,super.reset()}onSubmit(){this._clearMessages(),this.prepareUploadQueue(),this.startUploadQueue()}startUploadQueue(){if(this.checkUploadQueue()&&!this.hasExistingDirectories()){if(this.hasExistingFilesUploadQueue())return this.hide(),void this._getConfigParam("onOpenReplaceExistingFilesDialog")({items:this._uploadExistingFilesQueue,onSkipClick:this.onSkipExistingFilesClick.bind(this),onReplaceClick:this.onReplaceExistingFilesClick.bind(this)});this.showUploadProgressDialog(),this.startNextQueueUpload()}}onCancel(){this.hide()}onAddSelectFilesItemClick(e){this.addSelectFilesItem(),e.preventDefault(),e.stopPropagation()}addSelectFilesItem(){const e=document.getElementById(this._selectFilesDialogItemsAreaId),t=e.querySelectorAll("form").length,s=`${this._selectFilesDialogId}-item-${t}`,i=`<form id="${s}" action="${this.getHandlerUrl()}" method="post" enctype="multipart/form-data" target="_uploadIFrame"><input name="forgery_protection_token" type="hidden" value="${document.getElementById("forgery_protection_token").content}"/><div class="form-row"><input name="file[]" type="file"/>`+(t?` <a href="#" class="s-btn sb-item-remove"><i><i><i><span> ${a.Locale.getSection("components.buttons").lmsg("remove")}</span></i></i></i></a>`:"")+"</div></form>";(0,a.render)(e,i),t&&document.getElementById(s).querySelectorAll(".sb-item-remove").forEach((e=>{e.addEventListener("click",(e=>{this.onRemoveSelectFilesItemClick(e)}))}))}onRemoveSelectFilesItemClick(e){const t=e.target.closest("form");t&&t.parentNode.removeChild(t),e.preventDefault()}checkUploadQueue(){return this.hasFilesInUploadQueue()&&this.hasNormalSizeOfFilesInUploadQueue()}hasFilesInUploadQueue(){return 0!==this._uploadQueue.length||(this._addErrorMessage(this.lmsg("noFilesSelectedForUpload")),!1)}hasNormalSizeOfFilesInUploadQueue(){const e=(0,a.getComponent)("fm-content").getUploadMaxFileSize();if(!e)return!0;for(let t=0;t<this._uploadQueue.length;t++)if(this._uploadQueue[t].total>e)return this._addErrorMessage(this.lmsg("errorFileIsLarger",{filename:this._uploadQueue[t].savedFileName})),!1;return!0}hasExistingFilesUploadQueue(){this._uploadExistingFilesQueue=[];const e=this.getCurrentDirectoryFiles(),t=(0,a.getComponent)("fm-content").getCurrentDir();return this._uploadQueue.forEach((s=>{let i=(t+(s.fullPath||"/")).replace(/\/$/g,"");s.isFile&&(i+=`/${encodeURIComponent(s.savedFileName)}`),0<=e.indexOf(i)&&this._uploadExistingFilesQueue.push(s)})),0<this._uploadExistingFilesQueue.length}hasExistingDirectories(){this._uploadExistingFilesQueue=[];const e=this.getCurrentDirectoryFiles(),t=(0,a.getComponent)("fm-content").getCurrentDir();if(0===this._uploadQueue.length)return!1;const s=this._uploadQueue[0];if(s.fullPath){let i=s.fullPath.replace(/^\/|\/$/g,"").split("/");if(0===i.length)return!1;if(i=`${t}/${encodeURIComponent(i[0])}`,0<=e.indexOf(i))return this._addErrorMessage(a.Locale.getSection("smb.controllers.file-manager.create-directory").lmsg("errorDirectoryExists")),this.hide(),!0}return!1}getCurrentDirectoryFiles(){const e=[],t=(0,a.getComponent)("fm-content").getCurrentDir();return document.getElementById("fm-table").querySelectorAll("tr").forEach((s=>{const i=s.getAttribute("data-row-id");i&&e.push(`${t}/${i.replace(/\+/g,"%20")}`)})),e}prepareUploadQueue(){this._uploadQueue=[];document.getElementById(this._selectFilesDialogItemsAreaId).querySelectorAll("form").forEach((e=>{let t=e.querySelector('input[type="file"]').value;if(!t)return;t=t.replace(/\\/g,"/").replace(/.*\//,"");const s={formElement:e,inputId:e.id,progressId:`${e.id}-progress`,savedFileName:t,status:"PENDING",type:"unknown"};this._uploadQueue.push(s)}))}showUploadProgressDialog(){this.hide(),this.renderUploadProgressDialog()}renderUploadProgressDialog(){let e=-1;void 0!==this._totalUploadedSize&&(e=this._totalUploadedSize,this._uploadCurrent&&this._uploadCurrent.loaded&&(e+=this._uploadCurrent.loaded),e=this.getTotalUploadPercent(e)),this._getConfigParam("onChangeUploadProgress")({status:"running",items:this._uploadQueue,onCancel:this.onCancelUploadClick.bind(this),progress:e})}onCancelUploadClick(){this._getConfigParam("onCancel")(),this._uploadCanceled=!0,this._uploadAdapter.cancel()}onSkipExistingFilesClick(){this._uploadExistingFilesQueue.forEach((e=>{for(let t=0;t<this._uploadQueue.length;t++)if(e.savedFileName===this._uploadQueue[t].savedFileName){this._uploadQueue.splice(t,1);break}})),this.hasFilesInUploadQueue()?(this.showUploadProgressDialog(),this.startNextQueueUpload()):this.close()}onReplaceExistingFilesClick(){this.showUploadProgressDialog(),this.startNextQueueUpload()}prepareUploadAdapter(){if(!this._uploadAdapter){const e={contentAreaId:this._contentAreaId,handlerUrl:this.getHandlerUrl(),startUploadHandler:()=>{this._scheduleStartUpload&&(this._scheduleStartUpload=null,this.startNextQueueUpload())},finishUploadHandler:this.onNextQueueUploadFinished.bind(this)};this._uploadAdapter=new a.FileManager.UploadAdapterIframe(e)}}startNextQueueUpload(){this.prepareUploadAdapter(),this._uploadAdapter.isReady()?this._uploadCurrent||(this._uploadCanceled?this.onAllQueueUploadFinished():(this._started=!1,this.processUploadQueue(),this._started?this.renderUploadProgressDialog():this.onAllQueueUploadFinished())):this._scheduleStartUpload=!0}processUploadQueue(){try{this._uploadQueue.forEach(this.processUploadItem.bind(this))}catch(e){if(e!==this.breakQueueException)throw e}}processUploadItem(e){if("PENDING"===e.status)throw this._started=!0,this.updateUploadProgressItemStatus(e,"UPLOADING"),this._uploadCurrent=e,e.formElement.querySelectorAll('input[name="fileName"]').forEach((t=>{t.value=e.savedFileName})),e.formElement.submit(),this.breakQueueException}onNextQueueUploadFinished(){if(!this._uploadCurrent)return;const e=this._uploadCurrent;this._uploadCurrent=null;const t=this.getNextQueueUploadResult();switch(t.status){case"SUCCESS":case"CANCELED":this.updateUploadProgressItemStatus(e,t.status),this.startNextQueueUpload();break;default:this.updateUploadProgressItemStatus(e,"ERROR"),this.onQueueUploadFailed(t)}}getNextQueueUploadResult(){return this._uploadCanceled?{status:"CANCELED",message:""}:this._uploadAdapter.getResult()}onAllQueueUploadFinished(){(0,a.getComponent)("fm-content").reload(),this.reportUploadFinished.bind(this).delay(.5)}onQueueUploadFailed(e){const t=[];this._uploadQueue.forEach((e=>{t.push({name:e.savedFileName,type:e.type,status:e.status})})),this.close(),new r.default({errorMessage:e.message,message:this.lmsg("failed"),locale:this.getLocale(),items:t})}reportUploadFinished(){let e=null,t=null;if((0,a.clearStatusMessages)(),this.close(),0===this._uploadQueue.length)return;const s=this.getQueueStatus();this._uploadCanceled?(t="uploadCanceled",e="warning"):s.completed>0?(t="uploadFinished",e="info"):(t="uploadFinishedNoFiles",e="warning"),(0,a.addStatusMessage)(e,this.lmsg(t,{total:s.total,pending:s.pending,uploading:s.uploading,completed:s.completed,failed:s.failed,folder:(0,a.escapeHtml)((0,a.getComponent)("fm-content").getCurrentDir())}))}updateUploadProgressItemStatus(e,t){e.status=t,this.renderUploadProgressDialog()}getQueueStatus(){const e={completed:0,pending:0,failed:0,uploading:0,canceled:0,total:this._uploadQueue.length};return this._uploadQueue.forEach((t=>{switch(t.status){case"PENDING":e.pending++;break;case"UPLOADING":e.uploading++;break;case"ERROR":e.failed++;break;case"SUCCESS":e.completed++;break;case"CANCELED":e.canceled++}})),e}close(){this._replaceExistingFilesDialog&&(this._replaceExistingFilesDialog.remove(),this._replaceExistingFilesDialog=null),this._getConfigParam("onClose")(),this.hide()}getTotalUploadPercent(e){return this._totalSize>0?Math.round(e/this._totalSize*100):100}}const l=o},1708:(e,t,s)=>{s.r(t),s.d(t,{default:()=>n});var i=s(93),a=s(1709);const n=class{constructor({handlerUrl:e,startUploadHandler:t,finishUploadHandler:s,progressUploadHandler:a}){(0,i.default)(this,"onCreate",(()=>{this._startUploadHandler()})),(0,i.default)(this,"onSuccess",(({responseText:e})=>{try{this._result=JSON.parse(e)}catch{this._result={status:"ERROR",message:"No upload response"}}this._finishUploadHandler()})),(0,i.default)(this,"onFailure",(({statusText:e})=>{this._result={status:"ERROR",message:e},this._finishUploadHandler()})),(0,i.default)(this,"onException",((e,t)=>{this._result={status:"ERROR",message:`Internal error: ${t}`},this._finishUploadHandler()})),this._handlerUrl=e,this._startUploadHandler=t,this._finishUploadHandler=s,this._progressUploadHandler=a}setHandlerUrl(e){this._handlerUrl=e}upload(e,t){const s=new FormData;e&&s.append(encodeURIComponent(e.name),e),s.append("forgery_protection_token",document.getElementById("forgery_protection_token").content),t&&$H(t).each((({key:e,value:t})=>{s.append(e,t)})),this._request=new a.default(this._handlerUrl,{method:"post",postBody:s,onCreate:this.onCreate,onSuccess:this.onSuccess,onFailure:this.onFailure,onException:this.onException,onProgress:this._progressUploadHandler})}createFolder(e){const t=new FormData;e&&$H(e).each((({key:e,value:s})=>{t.append(e,s)})),this._request=new a.default(this._handlerUrl,{method:"post",postBody:t,onCreate:this.onCreate,onSuccess:this.onSuccess,onFailure:this.onFailure,onException:this.onException,onProgress:this._progressUploadHandler})}isReady(){return!0}getResult(){return this._result}cancel(){this._request.abort(),this._finishUploadHandler()}}},1702:(e,t,s)=>{s.r(t),s.d(t,{default:()=>i});const i={_isMultipleFileSupported:null,_isUploadProgressSupported:null,isAdvancedUploadSupported(){return this.isMultipleFileSupported()&&this.isFormDataSupported()&&this.isFileApiSupported()},isMultipleFileSupported(){if(null===this._isMultipleFileSupported){const e=new Element("input",{type:"file"});this._isMultipleFileSupported="multiple"in e}return this._isMultipleFileSupported},isFormDataSupported:()=>"undefined"!=typeof FormData,isFileApiSupported:()=>"undefined"!=typeof File,isUploadProgressSupported(){if(null===this._isUploadProgressSupported){const e=Ajax.getTransport();this._isUploadProgressSupported=e&&void 0!==e.upload}return this._isUploadProgressSupported}}},3020:(e,t,s)=>{s.r(t),s.d(t,{default:()=>i});const i=s(1699).default},1701:(e,t,s)=>{s.r(t),s.d(t,{default:()=>a});const i=()=>{const e=document.querySelector(".objects-management-box");if(!e)return void window.removeEventListener("resize",i,!1);const t=Element.getLayout(e);let s=document.body.clientHeight-Element.cumulativeOffset(e)[1]-t.get("border-top")-t.get("border-bottom");const a=document.querySelector(".pul-layout__main-inner");a&&(s-=parseInt(Element.getStyle(a,"paddingBottom"))),document.querySelector(".pul-layout__footer")&&(s-=Element.getHeight(document.querySelector(".pul-layout__footer"))),s<200&&(s=200),document.getElementById("objects-details").style.height=`${s}px`,document.getElementById("objects-list-content-area").style.height=`${s}px`;const n=document.getElementById("objects-details").querySelector(".objects-content");n&&(s-=parseInt(Element.getStyle(n,"paddingTop"))||0,n.style.height=s-(Element.cumulativeOffset(n)[1]-Element.cumulativeOffset(e)[1])+"px")},a=i},1712:(e,t,s)=>{s.r(t),s.d(t,{atobUnicode:()=>a,btoaUnicode:()=>i});const i=e=>btoa((e=>{const t=new Uint16Array(e.length);for(let s=0;s<t.length;s++)t[s]=e.charCodeAt(s);return String.fromCharCode(...new Uint8Array(t.buffer))})(e)),a=e=>(e=>{const t=new Uint8Array(e.length);for(let s=0;s<t.length;s++)t[s]=e.charCodeAt(s);return String.fromCharCode(...new Uint16Array(t.buffer))})(atob(e))}}]); //# sourceMappingURL=explorer.js.map?d717379b49588662f0cf