File: /volume1/@appstore/HyperBackupVault/ui/util.js
/* Copyright (c) 2026 Synology Inc. All rights reserved. */
Ext.ns("SYNO.SDS.BackupServer.String"),Ext.ns("SYNO.SDS.BackupServer.Space.Utils"),Ext.ns("SYNO.SDS.BackupServer.Space.Config"),Ext.ns("SYNO.SDS.BackupServer.Utils.MultiVerLun"),SYNO.SDS.BackupServer.String=function(r,S){return _TT("SYNO.SDS.BackupServer.Extension.Instance",r,S)||_TT("SYNO.SDS.BackupService.Instance",r,S)||_TT("SYNO.SDS.Backup.Server.Explore.AppInstance",r,S)||_TT("SYNO.SDS.Backup.Server.JobTray.AppInstance",r,S)||_TT("SYNO.SDS.Backup.Server.Fuse.Utils.bundleLaunchFn",r,S)},SYNO.SDS.BackupServer.Space.Config={DEFAULT_COLOR:"#bfbfbf",COLORS:["#426FDB","#19A1C0","#64AA3C","#FFC214","#FF9032","#FF5122"]},SYNO.SDS.BackupServer.Utils.MultiVerLun.isLunType=function(r){return["BLUN","BLUN_THICK"].includes(r)},SYNO.SDS.BackupServer.Utils.MultiVerLun.isNamespaceType=function(r){return["THIN_NS","THICK_NS"].includes(r)},SYNO.SDS.BackupServer.Utils.MultiVerLun.isThickLunOrNS=function(r){return["BLUN_THICK","THICK_NS"].includes(r)},SYNO.SDS.BackupServer.Utils.MultiVerLun.isThinLunOrNS=function(r){return["BLUN","THIN_NS"].includes(r)},SYNO.SDS.BackupServer.Utils.MultiVerLun.GetMultiVerLunTypeDisplayName=function(r){return SYNO.SDS.BackupServer.Utils.MultiVerLun.isLunType(r)?SYNO.SDS.BackupServer.String("app","multi_ver_lun_lun_text"):SYNO.SDS.BackupServer.Utils.MultiVerLun.isNamespaceType(r)?SYNO.SDS.BackupServer.String("app","multi_ver_lun_namespace_text"):(SYNO.Debug("Unknown lunType: "+r),SYNO.SDS.BackupServer.String("app","unknown"))},SYNO.SDS.BackupServer.Utils.MultiVerLun.GetMultiVerLunSpaceAllocationDisplayName=function(r){return SYNO.SDS.BackupServer.Utils.MultiVerLun.isThickLunOrNS(r)?SYNO.SDS.BackupServer.String("app","multi_ver_lun_thick"):SYNO.SDS.BackupServer.Utils.MultiVerLun.isThinLunOrNS(r)?SYNO.SDS.BackupServer.String("app","multi_ver_lun_thin"):(SYNO.Debug("Unknown lunType: "+r),SYNO.SDS.BackupServer.String("app","unknown"))},Ext.namespace("SYNO.SDS.BackupServer"),function(r){var S={ERR_DISALLOW_DEMOSITE:[116,_T("common","error_demo")],ERR_PARAM:[4400,_T("common","error_system")],ERR_INTERNAL_ERROR:[4401,_T("common","error_system")],ERR_CLIENT_NO_SPACE:[4402,SYNO.SDS.BackupServer.String("error","client_no_space")],ERR_SERVER_NO_SPACE:[4403,SYNO.SDS.BackupServer.String("error","repo_no_space")],ERR_CLIENT_NO_QUOTA:[4404,SYNO.SDS.BackupServer.String("error","client_no_quota")],ERR_SERVER_NO_QUOTA:[4405,SYNO.SDS.BackupServer.String("error","server_no_quota")],ERR_NOT_OWNER:[4406,SYNO.SDS.BackupServer.String("error","backup_not_owner")],ERR_SNAPSHOT_RESTORING:[4407,SYNO.SDS.BackupServer.String("error","snapshot_restoring")],ERR_RESTORING:[4408,SYNO.SDS.BackupServer.String("error","is_restoring")],ERR_BACKING_UP_RESTORING:[4409,SYNO.SDS.BackupServer.String("error","is_backing_up_restoring")],ERR_CLIENT_PERM_DENIED:[4410,SYNO.SDS.BackupServer.String("error","client_perm_denied")],ERR_SERVER_PERM_DENIED:[4411,SYNO.SDS.BackupServer.String("error","server_deny")],ERR_PORT_NOT_VALID:[4412,SYNO.SDS.BackupServer.String("error","port_conflict")],ERR_NAME_NOT_VALID:[4413,SYNO.SDS.BackupServer.String("error","s3_bucket_name_invalid")],ERR_USER_PARAM:[4414,_T("common","forminvalid")],ERR_CONFIG_OPERATE_ADMIN:[4416,SYNO.SDS.BackupServer.String("error","confbkp_operating_user")],ERR_SERVICE_NO_VOLUME:[4418,SYNO.SDS.BackupServer.String("error","volume_not_found")],ERR_SERVICE_NO_SHARE:[4419,SYNO.SDS.BackupServer.String("error","create_service_share")],ERR_VOLUME_NOT_EXIST:[4420,SYNO.SDS.BackupServer.String("error","volume_not_found")],ERR_VOLUME_FS_NOT_SUPPORT:[4422,String.format(SYNO.SDS.BackupServer.String("error","volume_fs_not_support"),"EXT3/EXT4")],ERR_SHARE_NOT_EXIST:[4423,SYNO.SDS.BackupServer.String("error","share_not_exist")],ERR_SHARE_ENCRYPTION:[4425,SYNO.SDS.BackupServer.String("error","not_support_restore_to_encrypted_share")],ERR_CONFIG_VERSION_WRONG:[4428,SYNO.SDS.BackupServer.String("error","confbkp_failed_get_conf_file")],ERR_CONFIG_VERSION_FUTURE:[4429,SYNO.SDS.BackupServer.String("error","confbkp_error_version")],ERR_OFFLINE:[4430,SYNO.SDS.BackupServer.String("error","general_backup_destination_disconnect")],ERR_RESTORE_VOLUME_BUILDING:[4431,SYNO.SDS.BackupServer.String("error","is_creating_volume")],ERR_PROTOCOL_VERSION_CLIENT_TOO_OLD:[4432,SYNO.SDS.BackupServer.String("error","client_version_old")],ERR_PROTOCOL_VERSION_SERVER_TOO_OLD:[4433,SYNO.SDS.BackupServer.String("error","server_version_old")],ERR_BAD_ADDRESS:[4434,SYNO.SDS.BackupServer.String("error","dns_look_up_error")],ERR_CONFIG_RESTORING:[4435,SYNO.SDS.BackupServer.String("error","is_processing_conf")],ERR_CONFIG_NO_SPACE:[4436,SYNO.SDS.BackupServer.String("error","conf_no_space")],ERR_CONFIG_WRONG_FORMAT:[4437,SYNO.SDS.BackupServer.String("error","conf_format_error")],ERR_CONFIG_PORT_CONFLICT:[4438,SYNO.SDS.BackupServer.String("error","conf_port_conflict")],ERR_CONFIG_SERVICE_FAIL:[4439,SYNO.SDS.BackupServer.String("error","restore_import_fail")],ERR_NO_RESPONSE:[4440,SYNO.SDS.BackupServer.String("error","general_backup_destination_no_response")],ERR_CONNECTION_BLOCKED:[4441,SYNO.SDS.BackupServer.String("error","err_ip_denied")],ERR_SERVICE_DISABLE:[4442,SYNO.SDS.BackupServer.String("error","service_disable")],ERR_SSH_FAIL:[4443,SYNO.SDS.BackupServer.String("error","ssh_disconnected")],ERR_AUTH_FAIL:[4444,SYNO.SDS.BackupServer.String("error","auth_fail")],ERR_AUTH_DENIED:[4445,SYNO.SDS.BackupServer.String("error","no_app_privilege")],ERR_UNSTABLE_NETWORK:[4446,SYNO.SDS.BackupServer.String("error","network_unstable")],ERR_SSL_NOT_SUPPORT:[4447,SYNO.SDS.BackupServer.String("error","ssl_not_support")],ERR_SSL_VERIFY_FAIL:[4448,SYNO.SDS.BackupServer.String("error","ssl_verify_fail")],ERR_TIME_SKEWED:[4449,SYNO.SDS.BackupServer.String("error","time_skewed")],ERR_DEST_FILE_NOT_EXIST:[4453,SYNO.SDS.BackupServer.String("error","dest_file_not_exist")],ERR_REPOSITORY_NOT_EXIST:[4455,SYNO.SDS.BackupServer.String("error","repo_not_exist")],ERR_REPOSITORY_EXIST:[4456,SYNO.SDS.BackupServer.String("error","repo_already_exist")],ERR_REPOSITORY_BUSY:[4457,SYNO.SDS.BackupServer.String("error","repository_busy")],ERR_REPOSITORY_PERM_DENIED:[4459,SYNO.SDS.BackupServer.String("error","no_repo_permission_action")],ERR_TARGET_NOT_EXIST:[4460,SYNO.SDS.BackupServer.String("error","target_not_exist")],ERR_TARGET_EXIST:[4461,SYNO.SDS.BackupServer.String("error","target_already_exist")],ERR_TARGET_BUSY:[4462,SYNO.SDS.BackupServer.String("error","target_busy")],ERR_TARGET_BUSY_ROLLBACK:[4463,SYNO.SDS.BackupServer.String("error","target_busy_rollback")],ERR_TARGET_BUSY_BACKUP:[4464,SYNO.SDS.BackupServer.String("error","target_busy_backup")],ERR_TARGET_BUSY_RESTORE:[4465,SYNO.SDS.BackupServer.String("error","target_busy_restore")],ERR_TARGET_BUSY_CHECKING:[4466,SYNO.SDS.BackupServer.String("error","target_busy_checking")],ERR_TARGET_BROKEN:[4467,SYNO.SDS.BackupServer.String("error","target_broken")],ERR_TARGET_NEED_ROLLBACK:[4468,SYNO.SDS.BackupServer.String("error","target_busy_protect_rollback")],ERR_TARGET_PERM_DENIED:[4471,SYNO.SDS.BackupServer.String("error","no_target_permission_action")],ERR_VERSION_NOT_EXIST:[4472,SYNO.SDS.BackupServer.String("error","version_not_exist")],ERR_VERSION_LOCKED:[4475,SYNO.SDS.BackupServer.String("error","version_lock_delete_fail")],ERR_NO_AVAILABLE_VERSION:[4476,SYNO.SDS.BackupServer.String("error","no_available_restore_version")],ERR_MP_NOT_EMPTY:[4477,SYNO.SDS.BackupServer.String("error","mp_not_empty")],ERR_USER_EXCEED_MAX:[4478,SYNO.SDS.BackupServer.String("error","user_exceed_max")],ERR_GROUP_EXCEED_MAX:[4479,SYNO.SDS.BackupServer.String("error","group_exceed_max")],ERR_APP_VERSION_INVALID:[4480,SYNO.SDS.BackupServer.String("error","app_version_invalid")],ERR_UMOUNT_FAIL:[4481,SYNO.SDS.BackupServer.String("error","umount_fail")],ERR_APP_MYSQL_PWD_WRONG:[4482,SYNO.SDS.BackupServer.String("error","maria_db_auth_fail")],ERR_APP_SURVEILLANCE_ENABLE:[4483,SYNO.SDS.BackupServer.String("error","stop_surveillance_first")],ERR_APP_MYSQL_ENABLE:[4484,SYNO.SDS.BackupServer.String("error","maria_db_no_enable")],ERR_APP_MYSQL_VOLUME_CRASH:[4485,SYNO.SDS.BackupServer.String("error","maria_db_volume_crash")],ERR_APP_VOLUME:[4486,String.format(SYNO.SDS.BackupServer.String("error","app_no_volume"),"EXT3/EXT4")],ERR_APP_OCCUPIED:[4487,SYNO.SDS.BackupServer.String("error","app_occupied")],ERR_APP_NO_SPACE:[4488,SYNO.SDS.BackupServer.String("error","client_no_space")],ERR_APP_NETWORK:[4489,SYNO.SDS.BackupServer.String("error","app_network_disconnected")],CUSTOMIZED_WEBAPI_ERROR_CODE:[4490,_T("common","error_system")],CUSTOMIZED_WEBAPI_ERROR_CODE_CONTAINER_INVALID_NAME:[4491,SYNO.SDS.BackupServer.String("error","s3_bucket_name_invalid")],CUSTOMIZED_WEBAPI_ERROR_CODE_CONTAINER_EXIST:[4492,SYNO.SDS.BackupServer.String("error","s3_bucket_existed")],CUSTOMIZED_WEBAPI_ERROR_CODE_CONTAINER_TOO_MANY:[4493,SYNO.SDS.BackupServer.String("error","s3_bucket_number_limit")],ERR_BACKUP_CONF_FAIL:[4494,SYNO.SDS.BackupServer.String("error","status_backup_conf_fail")],ERR_BACKUP_APP_FAIL:[4495,SYNO.SDS.BackupServer.String("error","status_backup_app_fail")],ERR_ENCRYPT_VERIFY_FAIL:[4496,SYNO.SDS.BackupServer.String("error","task_password_invalid")],ERR_SHARE_ENCRYPTED:[4497,SYNO.SDS.BackupServer.String("error","restore_share_encrypted")],ERR_SESSION_EXPIRED:[4498,SYNO.SDS.BackupServer.String("error","task_session_expired")],ERR_SERVER_NOT_READY:[4499,SYNO.SDS.BackupServer.String("error","image_backup_scan_not_ready")],ERR_CANCEL_JOB_NOT_EXIST:[4500,SYNO.SDS.BackupServer.String("error","cancel_job_not_exist")],WEBAPI_RESTORE_ERR_RESTORE_ABB_CONFLICT:[4522,SYNO.SDS.BackupServer.String("error","restore_abb_data_conflict")],WEBAPI_BACKUP_ERR_BAD_PASSWORD:[4528,SYNO.SDS.BackupServer.String("error","task_password_invalid")],WEBAPI_BACKUP_ERR_BAD_PASSWORD_FILE:[4529,SYNO.SDS.BackupServer.String("error","task_private_invalid")],WEBAPI_BACKUP_ERR_MULTI_VER_LUN_HBK_NOT_MOUNTABLE:[4533,SYNO.SDS.BackupServer.String("error","multiver_lun_task_not_mountable")],WEBAPI_BACKUP_ERR_ENCRYPT_SHARE_MOUNT_POINT_NOT_EXIST:[4536,SYNO.SDS.BackupServer.String("error","encrypted_share_not_mounted_when_backup")]};function e(r){var _=null;return Ext.isObject(r)&&r.code?e(r.code):(Ext.iterate(S,(function(S,e){if(r===e[0])return _=e[1],Ext.isObject(_)&&(!_.text&&_.text_param&&(_.text=_.text_param),_.text||(_.text=_T("common","error_system"))),!1})),_)}Ext.iterate(S,(function(S,e){r[S]=e[0]})),r.GetErrorString=function(S,_){if(Ext.isObject(S)&&S.code)return r.GetErrorString(S.code,S.errors);var t=e(S);return t?Ext.isString(t)?t:function(r,S){var e=[],_=!1,t=r.text_param||r.text;return S?Ext.isArray(S)&&S.length>0?String.format.apply(String,[t].concat(S)):Ext.isObject(S)&&(_=!0,Ext.each(r.replace_keys,(function(r){if(!S.hasOwnProperty(r))return _=!1,!1;e.push(S[r])})),_)?String.format.apply(String,[t].concat(e)):r.text:r.text}(t,_):_T("common","error_system")},r.GetErrorStringArg=function(S,e){var _=r.GetErrorString(S);if(!Ext.isString(_))return _T("common","error_system");Ext.isArray(e)||(e=new Array(e));var t=e.slice();return t.unshift(_),String.format.apply(this,t)},r.GetErrorStringEx=function(S){if(Ext.isEmpty(S)||Ext.isEmpty(S.code))return _T("common","error_system");switch(S.code){case r.ERR_SERVER_NOT_DOWNLOADABLE:case r.WEBAPI_RESTORE_ERR_RESTORE_ABB_CONFLICT:if(!Ext.isEmpty(S.errors)&&!Ext.isEmpty(S.errors.error_msg))return r.GetErrorStringArg(S.code,S.errors.error_msg)}return r.GetErrorString(S.code)}}(SYNO.SDS.BackupServer);