| Server IP : 193.86.120.172 / Your IP : 216.73.216.215 Web Server : Apache/2.4.63 (Unix) System : Linux JServices 3.10.108 #86003 SMP Wed Oct 22 13:20:46 CST 2025 x86_64 User : kubec ( 1026) PHP Version : 8.2.28 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /volume1/@appstore/HyperBackupVault/ui/ |
Upload File : |
/* Copyright (c) 2026 Synology Inc. All rights reserved. */
Ext.define("SYNO.SDS.Backup.Server.Fuse.MountWindow",{version:1,extend:"SYNO.SDS.ModalWindow",constructor:function(e){var t=this.fillConfig(e);this.callParent([t]),this.panel=this.getComponent("formpanel"),this.defineBehaviors()},fillConfig:function(e){var t=[{xtype:"container",cls:"syno-sds-backup-fuse-mount-to",layout:"column",itemId:"mount_point_path_field",items:[{xtype:"syno_displayfield",cls:"syno-sds-backup-fuse-mount-to-label",width:195,height:28,value:SYNO.SDS.Backup.Server.Fuse.Utils.GetString("fuse","mp_label")+":"},{xtype:"syno_textfield",cls:"syno-sds-backup-fuse-mount-to-textfield selectabletext",name:"mount_point",width:350,height:30,readOnly:!0},{xtype:"syno_button",cls:"syno-sds-backup-fuse-mount-to-btn",width:107,text:SYNO.SDS.Backup.Server.Fuse.Utils.GetString("fuse","browse"),scope:this,handler:this.openFolderSelector}]},{xtype:"syno_textfield",name:"mount_point_real_path",hidden:!0},{xtype:"syno_textfield",name:"abs_path",hidden:!0},{xtype:"syno_textfield",name:"target_id",hidden:!0},{xtype:"container",cls:"syno-sds-backup-fuse-password",layout:"column",itemId:"manual_passwd",hidden:!0,hideLabel:!0,items:[{xtype:"syno_radio",cls:"syno-sds-backup-fuse-password-label",name:"decrypt_method",width:195,height:28,inputValue:"manual",boxLabel:SYNO.SDS.Backup.Server.Fuse.Utils.GetString("app","task_password_input"),checked:!0},{xtype:"syno_textfield",cls:"syno-sds-backup-fuse-password-textfield",textType:"password",name:"password",width:350,height:30,minLength:8,maxLength:64,allowBlank:!1}]},{xtype:"container",cls:"syno-sds-backup-fuse-keyfile",layout:"column",itemId:"keyfile_passwd",hidden:!0,hideLabel:!0,items:[{xtype:"syno_radio",cls:"syno-sds-backup-fuse-keyfile-label",name:"decrypt_method",width:195,height:28,inputValue:"keyfile",boxLabel:SYNO.SDS.Backup.Server.Fuse.Utils.GetString("app","task_private_input")},{xtype:"syno_filebutton",cls:"syno-sds-backup-fuse-keyfile-file-btn",height:30,allowBlank:!1,name:"private_key",buttonConfig:{width:107},textConfig:{width:334}}]},{xtype:"syno_displayfield",cls:"syno-sds-backup-fuse-notice-message",name:"notice_message",htmlEncode:!1,value:'<span class="red-status">'+SYNO.SDS.Backup.Server.Fuse.Utils.GetString("fuse","ro_warning")+"</span>"}],s=new SYNO.SDS.Utils.FormPanel({itemId:"formpanel",fileUpload:!0,webapi:{api:"SYNO.SDS.Backup.Server.Fuse.Target",method:"mount_by_private",version:1,scope:this},items:t,onApiSuccess:this.onActionComplete,onApiFailure:this.onFormFailed}),i={width:710,height:280,resizable:!1,title:SYNO.SDS.Backup.Server.Fuse.Utils.GetString("fuse","mount_window_title"),cls:SYNO.SDS.Backup.Server.Fuse.Utils.GetFuseCls()+" syno-sds-backup-fuse",layout:"fit",items:s,keys:[{key:Ext.EventObject.ENTER,scope:this,handler:this.onSubmit}],buttons:[{itemId:"cancel",text:_T("common","cancel"),scope:this,handler:this.close},{itemId:"apply",btnStyle:"blue",text:_T("common","ok"),scope:this,handler:this.onSubmit}]};return Ext.apply(i,e),i},defineBehaviors:function(){this.mon(this,"afterlayout",(function(e,t){var s=this.panel.getForm();new SYNO.ux.Utils.EnableRadioGroup(s,"decrypt_method",{manual:["password"],keyfile:["private_key"]})}),this,{single:!0})},getErrString:function(e){return e.errors&&e.errors.sec&&e.errors.key?SYNO.SDS.Backup.Server.Fuse.Utils.GetString(e.errors.sec,e.errors.key):SYNO.SDS.Backup.Server.Fuse.Utils.GetErrorString(e.code)},responseError:function(e){e.code!==SYNO.SDS.Backup.ERR_TARGET_EXIST?this.setStatusError({text:this.getErrString(e)}):this.getMsgBox().confirm(_T("leaf","backup"),SYNO.SDS.Backup.Server.Fuse.Utils.GetString("fuse","redirect_confirm"),(function(t){"yes"===t?(SYNO.SDS.AppLaunch("SYNO.SDS.App.FileStation3.Instance",{opendir:e.errors.mount_point},!0),this.close()):this.close()}),this)},onOpen:function(){this.setStatusBusy(),this.sendWebAPI({api:"SYNO.SDS.Backup.Server.Fuse.Target",version:1,method:"get_avail_mountpoint",params:{target_id:this.target_id,abs_path:this.repo_path},callback:function(e,t,s){if(!e)return this.clearStatusBusy(),void this.getMsgBox().alert(_T("leaf","backup"),this.getErrString(t),(function(){this.close()}),this);this.panel.getForm().setValues(t),this.data_enc=this.data_enc||t.is_enc,this.data_enc&&(this.panel.getComponent("manual_passwd").show(),this.panel.getComponent("keyfile_passwd").show(),this.panel.getForm().findField("password").focus(!1,100)),this.clearStatusBusy()},scope:this}),this.callParent(arguments)},onSubmit:function(){var e,t,s=this.panel.getForm();if(s.findField("abs_path").setValue(this.repo_path),s.findField("target_id").setValue(this.target_id),this.data_enc){if(!s.isValid())return;if("keyfile"===(e=s.findField("decrypt_method").getGroupValue())){if(!s.findField("private_key").getValue())return;return this.setStatusBusy({text:_T("common","msg_waiting")}),void this.get("formpanel").upload()}if(!(t=s.findField("password").getValue()))return}else s.findField("decrypt_method").disable();this.doSubmitEncryption(e,t)},doSubmitEncryption:function(e,t){var s={};Ext.copyTo(s,this.panel.getForm().getValues(),["mount_point_real_path","abs_path","target_id","password"]),this.setStatusBusy({text:_T("common","msg_waiting")}),this.sendWebAPI({api:"SYNO.SDS.Backup.Server.Fuse.Target",version:"1",method:"mount_by_password",encryption:this.data_enc?["password"]:void 0,params:s,scope:this,callback:function(e,t,s,i){if(!e)return this.clearStatusBusy(),void this.responseError(t);var n=this.callback;this.clearStatusBusy(),this.close(),Ext.isFunction(n)&&n(t)}})},onActionComplete:function(e,t,s){Ext.isFunction(this.ownerCt.callback)&&this.ownerCt.callback(t),this.ownerCt.clearStatusBusy(),this.ownerCt.close()},onFormFailed:function(e,t,s){return this.ownerCt.clearStatusBusy(),this.ownerCt.responseError(t),!1},openFolderSelector:function(){new SYNO.SDS.Utils.FileChooser.Chooser({title:_T("common","choose"),owner:this,folderToolbar:!0,enumColdStorage:!0,usage:{type:"chooseDir"},listeners:{scope:this,choose:this.onFolderSelected}}).show()},onFolderSelected:function(e,t){var s=t.fullpath;this.setStatusBusy(),this.sendWebAPI({api:"SYNO.SDS.Backup.Server.Fuse.Target",version:1,method:"get_avail_mountpoint",params:{target_id:this.target_id,abs_path:this.repo_path,mount_point_parent:s},callback:function(e,t,s){if(!e)return this.clearStatusBusy(),void this.responseError(t);this.panel.getForm().setValues(t),this.clearStatusBusy()},scope:this}),e.close()}}),Ext.ns("SYNO.SDS.Backup.Server.Fuse.Utils"),Ext.apply(SYNO.SDS.Backup.Server.Fuse.Utils,{isTarget:function(e,t){var s=e.split(".");if(1===s.length)return!1;var i=s[s.length-1].toLowerCase();if(t){if("hbk"!==i)return!1}else if("bkpi"!==i)return!1;return!0},isThisPkgNewer:function(){if(!SYNO.SDS.StatusNotifier.isAppEnabled("SYNO.SDS.BackupService.Instance"))return!1;if(!SYNO.SDS.StatusNotifier.isAppEnabled("SYNO.SDS.Backup.Application"))return!0;var e=0,t=SYNO.SDS.Backup.Server.Fuse.MountWindow.prototype.version;return SYNO.SDS.Backup.Client&&SYNO.SDS.Backup.Client.Fuse&&SYNO.SDS.Backup.Client.Fuse.MountWindow&&(e=SYNO.SDS.Backup.Client.Fuse.MountWindow.prototype.version),!(e>t)},bundleCheckFn:function(e,t){return!!_S("is_admin")&&(!!SYNO.SDS.Backup.Server.Fuse.Utils.isThisPkgNewer()&&!!SYNO.SDS.Backup.Server.Fuse.Utils.isTarget(t[0].get("filename"),t[0].get("isdir")))},bundleLaunchFn:function(e){var t=e[0].get("real_path").split("/"),s="",i="";e[0].get("isdir")?(s=t.slice(0,-1).join("/"),i=t[t.length-1]):(s=t.slice(0,-2).join("/"),i=t[t.length-2]),new SYNO.SDS.Backup.Server.Fuse.MountWindow({owner:this.owner,repo_path:s,target_id:i,callback:Ext.createDelegate((function(e){e&&e.mount_point?this.onChangeDir(e.mount_point):SYNO.Debug("unexpected data",e)}),this)}).open()},vtCheckFn:function(e,t){return!!_S("is_admin")&&(!!SYNO.SDS.Backup.Server.Fuse.Utils.isThisPkgNewer()&&!!SYNO.SDS.Backup.Server.Fuse.Utils.isVT(t[0].get("mountType")))},vtLaunchFn:function(e){var t=e[0].get("real_path"),s="/"+e[0].get("path").split("/")[1],i=function(e,t,i){if(!e)return this.owner.clearStatusBusy(),void this.owner.getMsgBox().alert(_T("leaf","backup"),SYNO.SDS.BackupServer.GetErrorString(t.code));this.refreshTreeNode([s],!0),this.refreshGrid(),this.owner.clearStatusBusy()};this.owner.getMsgBox().confirm(_T("tree","leaf_backup"),SYNO.SDS.BackupServer.String("fuse","umount_confirm"),(function(e){"yes"===e&&(this.owner.setStatusBusy(),this.sendWebAPI({api:"SYNO.SDS.Backup.Server.Fuse.Target",version:1,method:"umount",params:{mount_point_real_path:t},callback:i,scope:this}))}),this)},isVT:function(e){return"bkpfuse"===e},vtGetIconFn:function(e,t,s){return!!SYNO.SDS.Backup.Server.Fuse.Utils.isVT(t.get("mountType"))&&(SYNO.SDS.UIFeatures.test("isRetina")?"webman/3rdparty/HyperBackupVault/images/2x/mount_point_icon.png":"webman/3rdparty/HyperBackupVault/images/1x/mount_point_icon.png")},vtCheckThumbnailFn:function(e){return!!SYNO.SDS.Backup.Server.Fuse.Utils.isVT(e.mountType)},vtGetThumbnailFn:function(){return SYNO.SDS.UIFeatures.test("isRetina")?"webman/3rdparty/HyperBackupVault/images/2x/mount_point_thumb.png":"webman/3rdparty/HyperBackupVault/images/1x/mount_point_thumb.png"},GetErrorString:function(e,t){return SYNO.SDS.BackupServer.GetErrorString?SYNO.SDS.BackupServer.GetErrorString(e,t):""},GetString:function(e,t){return SYNO.SDS.BackupServer.String?SYNO.SDS.BackupServer.String(e,t):""},GetFuseCls:function(){return"syno-sds-backup-server-fuse"}});