403Webshell
Server IP : 193.86.120.172  /  Your IP : 216.73.216.67
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 :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /volume1/@appstore/HyperBackupVault/ui/backup_server.js
/* Copyright (c) 2026 Synology Inc. All rights reserved. */

Ext.define("SYNO.SDS.BackupServer.OverviewPanel",{extend:"SYNO.ux.Panel",constructor:function(t){this.hasTarget=null,this.emptyPanel=new SYNO.SDS.BackupServer.EmptyPanel({owner:this,appWin:t.appWin,hidden:!0}),this.infoPanel=new SYNO.SDS.BackupServer.InfoPanel({owner:this,appWin:t.appWin,hiddene:!0,layout:"fit"});var e={layout:"fit",cls:"syno-backup-server-overview-panel",items:[this.emptyPanel,this.infoPanel]};Ext.apply(e,t),this.callParent([e])},initEvents:function(){this.callParent(arguments),this.on("activate",(function(){this.appWin.last_target_list&&(this.loadTargetList(this.appWin.last_target_list),this.infoPanel.targetView.updateFleXcroll())})),this.on("resize",this.resizePanel)},displayPanel:function(t){this.hasTarget!==t&&(this.hasTarget=t,this.hasTarget?(this.infoPanel.show(),this.emptyPanel.hide()):(this.emptyPanel.show(),this.infoPanel.hide()))},loadTargetList:function(t){this.infoPanel.loadData(t),this.displayPanel(t.length>0)},stopUpdateData:function(){this.infoPanel.stopUpdateDuration()},resizePanel:function(){this.infoPanel.resizePanel()}}),Ext.define("SYNO.SDS.BackupServer.InfoPanel",{extend:"SYNO.ux.Panel",constructor:function(t){this.hasTarget=null,this.spaceContainer=new SYNO.SDS.BackupServer.SpaceContainer({owner:this,appWin:t.appWin}),this.spacePanel=new Ext.Panel({owner:this,appWin:t.appWin,title:SYNO.SDS.BackupServer.String("app","target_usage"),autoHeight:!0,autoWidth:!0,cls:"syno-backup-server-subpanel",items:this.spaceContainer}),this.emptyRunningPanel=new SYNO.SDS.BackupServer.EmptyRunningPanel({owner:this,appWin:t.appWin,hidden:!0}),this.targetView=new SYNO.SDS.BackupServer.TargetView({owner:this,appWin:t.appWin,store:this.getStore(),autoFlexcroll:!0,trackResetOnLoad:!1,displayProgress:!0,hidden:!0}),this.targetPanel=new Ext.Panel({owner:this,appWin:t.appWin,title:SYNO.SDS.BackupServer.String("app","running_task"),autoHeight:!0,autoWidth:!0,cls:"syno-backup-server-subpanel",items:[this.emptyRunningPanel,this.targetView]});var e={items:[this.spacePanel,this.targetPanel]};Ext.apply(e,t),this.callParent([e])},getStore:function(){return this.store||(this.store=new Ext.data.JsonStore({id:"target_id",fields:["target_id","share","target_name","target_path","used_size","computing_size","status","client_ip","start_time","duration","browser_webapi_time","last_backup_start_time","last_backup_duration","is_resumable","is_enc","uni_key","progress"]})),this.store},loadData:function(t){if(this._lastData!==Ext.encode(t)){this._lastData=Ext.encode(t),this.spaceContainer.loadData(t);var e=this.getRunningTargetList(t);this.updateStore(e),this.displayPanel(e.length>0)}},getRunningTargetList:function(t){var e=this.filterAndSortTargetList(t,["backuping","suspending"]),i=this.filterAndSortTargetList(t,["waiting"]),a=this.filterAndSortTargetList(t,["version_deleting"]);return e.concat(i,a)},filterAndSortTargetList:function(t,e){var i=[];return Ext.each(t,(function(t){Ext.each(e,(function(e){t.status===e&&i.push(t)}),this)}),this),i=i.sort((function(t,e){return t.start_time-e.start_time}))},updateStore:function(t){this.target_list=t.slice(),this.isInAction(t)?this.startUpdateDuration():(this.stopUpdateDuration(),this.getStore().loadData(t))},displayPanel:function(t){this.hasTarget!==t&&(this.hasTarget=t,this.hasTarget?(this.targetView.show(),this.emptyRunningPanel.hide()):(this.emptyRunningPanel.show(),this.targetView.hide()))},getUpdateDurationTask:function(){return this.updateTask=this.updateTask||this.addTask({id:"task_update_duration",interval:1e3,immediate:!0,run:this.updateDuration,scope:this}),this.updateTask},startUpdateDuration:function(){this.isPolling||(this.getUpdateDurationTask().start(),this.isPolling=!0)},stopUpdateDuration:function(){this.isPolling&&(this.getUpdateDurationTask().stop(),this.isPolling=!1,this._lastData=null)},updateDuration:function(){this.getStore().loadData(this.target_list)},isInAction:function(t){var e=!1;return Ext.each(t,(function(t){if("backuping"===t.status||"version_deleting"==t.status)return e=!0,!1}),this),e},resizePanel:function(){if(this.spacePanel.getResizeEl()&&this.targetView.getResizeEl()){var t=this.ownerCt.getSize(),e=this.spacePanel.getSize();this.emptyRunningPanel.setSize(t.width-60,t.height-e.height-112),this.targetView.setSize(t.width-60,t.height-e.height-112),this.targetView.updateFleXcroll(),this.spaceContainer.setWidth(t.width-40)}},onShow:function(){this.callParent(arguments),this.resizePanel()}}),Ext.define("SYNO.SDS.BackupServer.EmptyRunningPanel",{extend:"SYNO.ux.Panel",initComponent:function(){this.callParent(arguments),this.addClass("syno-backup-server-empty-running-page"),this.emptyMessage=new Ext.Container({width:330,cls:"syno-backup-server-empty-running-page-container",items:[{xtype:"container",height:120,width:120,cls:"syno-backup-server-empty-running-icon"},{xtype:"container",html:SYNO.SDS.BackupServer.String("app","empty_running_task_desc"),cls:"syno-backup-server-empty-running-desc"}]}),this.add(this.emptyMessage)}}),Ext.define("SYNO.SDS.BackupServer.EmptyPanel",{extend:"SYNO.ux.Panel",initComponent:function(){this.callParent(arguments),this.addClass("syno-backup-server-empty-page"),this.emptyMessage=new Ext.Container({width:330,cls:"syno-backup-server-empty-page-container",items:[{xtype:"container",height:120,width:120,cls:"syno-backup-server-empty-icon"},{xtype:"container",html:SYNO.SDS.BackupServer.String("app","empty_desc"),cls:"syno-backup-server-empty-desc"}]}),this.add(this.emptyMessage)}}),Ext.define("SYNO.SDS.BackupServer.TaskPanel",{extend:"SYNO.ux.Panel",constructor:function(t){this.isFirst=!0,this.hasTarget=null,this.emptyPanel=new SYNO.SDS.BackupServer.EmptyPanel({owner:this,appWin:t.appWin,hidden:!0}),this.targetView=new SYNO.SDS.BackupServer.TargetView({owner:this,appWin:t.appWin,hidden:!0,store:this.getStore(),autoFlexcroll:!0,trackResetOnLoad:!1,displayProgress:!1});var e={layout:"fit",cls:"syno-backup-server-task-panel",items:[this.emptyPanel,this.targetView]};Ext.apply(e,t),this.callParent([e])},initEvents:function(){this.callParent(arguments),this.on("activate",(function(){this.appWin.last_target_list&&(this.loadTargetList(this.appWin.last_target_list),this.targetView.updateFleXcroll())})),this.on("resize",this.resizePanel)},displayPanel:function(t){this.hasTarget!==t&&(this.hasTarget=t,this.hasTarget?(this.targetView.show(),this.emptyPanel.hide()):(this.emptyPanel.show(),this.targetView.hide()))},loadTargetList:function(t){this.loadData(t),this.displayPanel(t.length>0)},stopUpdateData:function(){this.stopUpdateDuration()},getStore:function(){if(!this.store){this.store=new Ext.data.JsonStore({id:"target_id",fields:["target_id","share","target_name",{name:"target_path",sortType:function(t){var e=t.indexOf("/",1);return t.substring(e).toLocaleLowerCase()}},"used_size","computing_size","status","client_ip","start_time","duration","browser_webapi_time","last_backup_start_time","last_backup_duration","is_resumable","is_enc","uni_key","progress"],sortInfo:{field:"target_path",direction:"ASC"}})}return this.store},loadData:function(t){this._lastData!==Ext.encode(t)&&(this._lastData=Ext.encode(t),this.updateStore(t))},updateStore:function(t){this.target_list=t.slice(),this.isInAction(t)?this.startUpdateDuration():(this.stopUpdateDuration(),this.getStore().loadData(t))},getUpdateDurationTask:function(){return this.updateTask=this.updateTask||this.addTask({id:"task_update_duration",interval:1e3,immediate:!0,run:this.updateDuration,scope:this}),this.updateTask},startUpdateDuration:function(){this.isPolling||(this.getUpdateDurationTask().start(),this.isPolling=!0)},stopUpdateDuration:function(){this.isPolling&&(this.getUpdateDurationTask().stop(),this.isPolling=!1,this._lastData=null)},updateDuration:function(){this.getStore().loadData(this.target_list)},isInAction:function(t){var e=!1;return Ext.each(t,(function(t){if("backuping"===t.status||"version_deleting"==t.status)return e=!0,!1}),this),e},resizePanel:function(){var t=this.ownerCt.getSize();this.targetView.setSize(t.width-32,t.height-28),this.isFirst?this.isFirst=!1:this.targetView.updateFleXcroll()},onShow:function(){this.callParent(arguments),this.resizePanel()}}),Ext.define("SYNO.SDS.BackupServer.SettingPanel",{extend:"SYNO.ux.FormPanel",constructor:function(t){var e=Ext.apply({border:!1,trackResetOnLoad:!0,useDefaultBtn:!0,labelWidth:230,cls:"syno-backup-server-setting-panel",items:[{xtype:"syno_displayfield",name:"parallel_setting_description",value:SYNO.SDS.BackupServer.String("app","parallel_task_description")},{xtype:"syno_numberfield",name:"parallel_setting_value",fieldLabel:SYNO.SDS.BackupServer.String("app","parallel_task_key"),allowBlank:!1,allowDecimals:!1,width:145,minValue:1,maxValue:32,autoCreate:{tag:"input",type:"text",autocomplete:"off",maxlength:"2"}}]},t);return this.callParent([e])},getFormValue:function(t){return this.getForm().findField(t).getValue()},loadSettingData:function(t){this.getForm().findField("parallel_setting_value").setValue(t.parallel_backup_limit)},applyHandler:function(){this.setStatusBusy(),this.sendWebAPI({api:"SYNO.Backup.Service.VersionBackup.Config",version:1,method:"set",params:{parallel_backup_limit:this.getFormValue("parallel_setting_value")},scope:this,callback:this.onApplyDone})},onApplyDone:function(t,e,i){t?(this.getForm().setValues([{id:"parallel_setting_value",value:this.getFormValue("parallel_setting_value")}]),this.setStatusOK()):e.code?this.setStatusError({text:SYNO.SDS.BackupServer.GetErrorString(e.code),clear:!0}):this.setStatusError()}}),Ext.define("SYNO.SDS.BackupServer.TargetView",{extend:"SYNO.ux.ExpandableListView",displayProgress:!1,constructor:function(t){Ext.isEmpty(t.displayProgress)||(this.displayProgress=t.displayProgress),this.callParent(arguments),this.addClass("syno-backup-server-target-listview")},onMouseOver:function(t){var e=t.getTarget(this.itemSelector,this.getTemplateTarget());e&&e!==this.lastItem&&(this.forceHoverIndex&&(Ext.fly(this.getNode(this.forceHoverIndex)).removeClass(this.overClass),this.forceHoverIndex=null),this.lastItem=e,Ext.fly(e).addClass(this.overClass),this.fireEvent("mouseenter",this,this.indexOf(e),e,t))},createTpl:function(){var t=null;return t=this.displayProgress?'<div class="target-statusinfo"><div class="{status_cls}"><div class="target-statusinfo-progress-wrapper" style="display:{progress_display}"><div class="target-statusinfo-progress" style="visibility:{progress_visibility}"><div class="target-statusinfo-bar" style="width:{progress_percentage}"></div></div><div class="syno-backup-text info-line target-statusinfo-bar-text" style="visibility:{progress_visibility}">{progress_percentage}</div></div></div></div>':'<div class="target-button"><div class="target-button-layout"><div class="x-btn x-btn-icon target-button-default target-button-tag-statistics" ext:qtip="{statistics_tip}"><div class="target-button-icon target-button-icon-statistics target-button-tag-statistics" ext:qtip="{statistics_tip}"></div></div><div class="x-btn x-btn-icon target-button-default target-button-tag-details" ext:qtip="{details_tip}"><div class="target-button-icon target-button-icon-details target-button-tag-details" ext:qtip="{details_tip}"></div></div><div class="x-btn x-btn-icon target-button-default target-button-tag-version-list" ext:qtip="{version_list_tip}"><div class="target-button-icon target-button-icon-version-list target-button-tag-version-list" ext:qtip="{version_list_tip}"></div></div><div class="x-btn x-btn-icon target-button-default target-button-tag-log" ext:qtip="{log_tip}"><div class="target-button-icon target-button-icon-log target-button-tag-log" ext:qtip="{log_tip}"></div></div></div></div>',new Ext.XTemplate('<tpl for=".">','<div class="item-wrap {hover_status}">','<div class="item-summary">','<div class="item-icon target-status-icon {status_icon_cls}"></div>','<div class="target-basicinfo">','<div class="syno-backup-text info-line basicinfo-text basicinfo-title"><span class="filestation-launcher" ext:qtip="{share:htmlEncode}/{target_name:htmlEncode}">{share:htmlEncode}/{target_name:htmlEncode}</span></div>','<span class="syno-backup-text basicinfo-text {status_cls}" ext:qtip="{status_duration_string}">{status_duration_string}</span>',"</div>",t,'<div class="full-height"></div>',"</div>","</div>","</tpl>",'<div class="x-clear"></div>')},getStatusDurationText:function(t,e,i){return e?t+"&nbsp&nbsp&nbsp"+("duration"===i?SYNO.SDS.BackupServer.String("app","duration"):SYNO.SDS.BackupServer.String("app","elapsed"))+":&nbsp"+this.toDDHHMMSS(e):t},prepareData:function(t,e,i){var a=new Date;if(t.duration=a.getTime()/1e3-t.browser_webapi_time+t.duration,t.statistics_tip=SYNO.SDS.BackupServer.String("app","storage_statistics"),t.details_tip=_T("schedule","task_settings"),t.version_list_tip=SYNO.SDS.BackupServer.String("app","version_list"),t.log_tip=SYNO.SDS.BackupServer.String("app","log_name"),t.progress_visibility="hidden",t.progress_display="none",t.progress_percentage="0%",t.duration_string="","backuping"===t.status)if(t.status_icon_cls="target-status-icon-backuping",t.status_cls="status-running",this.displayProgress)if(Ext.isEmpty(t.progress))t.status_duration_string=this.getStatusDurationText(_T("netbackup","netbkp_backuping"),t.duration);else{var s=this.convertProgressData(t.progress);t.status_string=s.status,t.progress_visibility=s.visibility,t.progress_display="visible"===s.visibility?"block":"none",t.progress_percentage=s.percentage,t.status_duration_string=this.getStatusDurationText(_T("netbackup","netbkp_backuping"))}else t.status_duration_string=this.getStatusDurationText(_T("netbackup","netbkp_backuping"),t.duration);else if("version_deleting"===t.status)t.status_duration_string=this.getStatusDurationText(SYNO.SDS.BackupServer.String("app","task_status_deleting_version"),t.duration),t.status_cls="status-running",t.status_icon_cls="target-status-icon-version_deleting";else if("suspending"===t.status)t.status_duration_string=this.getStatusDurationText(SYNO.SDS.BackupServer.String("app","task_status_suspending"),t.duration),t.status_cls="status-running",t.status_icon_cls="target-status-icon-backuping";else if("waiting"===t.status)t.status_duration_string=this.getStatusDurationText(SYNO.SDS.BackupServer.String("app","task_status_waiting")),t.status_cls="status-idle",t.status_icon_cls="target-status-icon-waiting";else if("idle"===t.status){var n=new Date(1e3*t.last_backup_start_time),r=SYNO.SDS.BackupServer.String("app","last_backup_time")+": "+SYNO.SDS.Backup.Server.Common.Utils.DateTimeFormatter(n,{type:"datetimesec"});t.status_duration_string=this.getStatusDurationText(r,t.last_backup_duration,"duration"),t.status_cls="status-idle",t.is_resumable?t.status_icon_cls="target-status-icon-suspend":t.status_icon_cls="target-status-icon-idle"}else if("init"===t.status){var o=SYNO.SDS.BackupServer.String("app","last_backup_time")+": "+SYNO.SDS.BackupServer.String("app","no_backup");t.status_duration_string=this.getStatusDurationText(o),t.status_cls="status-idle",t.status_icon_cls="target-status-icon-idle"}return this.lastItem&&e===this.indexOf(this.lastItem)?(this.forceHoverIndex=e,t.hover_status="item-over"):t.hover_status="",t},convertProgressData:function(t){var e={status:_T("netbackup","netbkp_backuping"),visibility:"hidden",percentage:"0%"};switch(t.step){case"data_backup":e.status=_T("netbackup","netbkp_backuping"),e.visibility="visible",e.percentage=t.progress.toString()+"%";break;case"app_backup":Ext.isEmpty(t.current_app)?e.status=_T("backup","bkpstatus_app"):(e.status=String.format(SYNO.SDS.BackupServer.String("app","backing_up_something"),t.current_app),Ext.isEmpty(t.current_app_stage)||(e.status+=": "+t.current_app_stage)),e.visibility="visible",e.percentage=t.current_app_percent.toString()+"%"}return e},toDDHHMMSS:function(t){var e=Math.floor(t/86400),i=Math.floor((t-86400*e)/3600),a=Math.floor((t-86400*e-3600*i)/60),s=Math.floor(t-86400*e-3600*i-60*a);return e>0?e+"day "+i+"hour "+a+"min "+s+"sec":i>0?i+"hour "+a+"min "+s+"sec":a>0?a+"min "+s+"sec":s+"sec"},onClick:function(t,e,i){this.callParent(arguments);var a=this.getSelectedRecords();if(1===a.length){var s=Ext.fly(e);s&&s.hasClass("target-button-tag-statistics")?this.onStatisticBrowse(a[0]):s&&s.hasClass("target-button-tag-version-list")?this.onVersionBrowse(a[0]):s&&s.hasClass("target-button-tag-log")?this.onOpenLogWindow(a[0]):s&&s.hasClass("target-button-tag-details")?this.onOpenTargetDetailWindow(a[0]):s&&s.hasClass("filestation-launcher")&&this.onOpenFileStation(a[0])}},onStatisticBrowse:function(t){var e=t.get("target_id"),i=new SYNO.SDS.Backup.Server.Common.Statistic.MainWindow({title:SYNO.SDS.BackupServer.String("statistics","storage_statistics_title"),taskId:e,readOnly:!0,appWin:this.appWin,owner:this.appWin,supportTargetStatistic:!0});this.appWin.openWindow(i)},onVersionBrowse:function(t){if(t.get("is_enc")){var e=t.get("target_path"),i=t.get("target_name"),a={target_type:"image",transfer_type:"browse_local",abs_path:e.substring(0,e.length-i.length),target_id:i,uni_key:t.get("uni_key")};new SYNO.SDS.Backup.Server.Common.Password.Window({owner:this.appWin,verify_params:a,setter:Ext.createDelegate(this.setSession,this),callback:Ext.createDelegate((function(){this.openVersionWindow(t)}),this)}).open()}else this.openVersionWindow(t)},setSession:function(t){this.sess_id=t.sess_id,this.sess_key=t.sess_key},openVersionWindow:function(t){var e=t.get("target_path"),i=t.get("target_name"),a=new SYNO.SDS.Backup.Server.Common.Version.MainWindow({taskId:t.get("target_id"),repoId:e.substring(0,e.length-i.length),targetId:i,targetType:"image",transferType:"image_remote",isDiscard:!1,sessId:this.sess_id,sessKey:this.sess_key,taskState:"none",appWin:this.appWin,owner:this.appWin,hideVersionDelete:!0,hideVersionLock:!1,accountMeta:null});this.appWin.openWindow(a)},onOpenLogWindow:function(t){var e=t.get("target_id"),i=new SYNO.SDS.Backup.Server.Common.Log.LogsWindow({appWin:this.appWin,owner:this.appWin,filterParams:{filter_target_id:e}});this.appWin.openWindow(i)},onOpenTargetDetailWindow:function(t){var e=t.get("target_id"),i=new SYNO.SDS.BackupServer.TargetDetailWindow({appWin:this.appWin,owner:this.appWin,target_id:e});this.appWin.openWindow(i)},onOpenFileStation:function(t){var e=t.get("share"),i=t.get("target_name");SYNO.SDS.AppLaunch("SYNO.SDS.App.FileStation3.Instance",{openfile:"/"+e+"/"+i},!0)}}),Ext.define("SYNO.SDS.BackupServer.QuickTip",{extend:Ext.QuickTip,tagConfig:{namespace:"",attribute:"synotcqtip",width:"qwidth",target:"target",title:"qtitle",hide:"hide",cls:"qclass",align:"qalign",anchor:"anchor"}}),SYNO.SDS.BackupServer.QuickTips=function(){var t,e=!1;return{init:function(i){if(!t){if(!Ext.isReady)return void Ext.onReady((function(){SYNO.SDS.BackupServer.QuickTips.init(i)}));t=new SYNO.SDS.BackupServer.QuickTip({elements:"header,body",disabled:e}),!1!==i&&t.render(Ext.getBody())}},ddDisable:function(){t&&!e&&t.disable()},ddEnable:function(){t&&!e&&t.enable()},enable:function(){t&&t.enable(),e=!1},disable:function(){t&&t.disable(),e=!0},isEnabled:function(){return void 0!==t&&!t.disabled},getQuickTip:function(){return t},register:function(){t.register.apply(t,arguments)},unregister:function(){t.unregister.apply(t,arguments)},tips:function(){t.register.apply(t,arguments)}}}(),Ext.define("SYNO.SDS.BackupServer.SpaceContainer",{extend:"Ext.Container",constructor:function(t){t=this.fillConfig(t),this.callParent([t])},fillConfig:function(t){return this.spaceInfo=new SYNO.SDS.BackupServer.Space.SpaceInfo({owner:this,appWin:t.appWin}),Ext.apply({autoWidth:!0,items:[this.spaceInfo]},t)},loadData:function(t){var e=t.slice(),i=this.getTotalSize(e);this.processData(e,i),e.sort((function(t,e){return e.used_size-t.used_size})),this.spaceInfo.loadData(e,i)},getTotalSize:function(t){let e=0;return Ext.each(t,(function(t){let i=Ext.isNumber(t.used_size)?t.used_size:0;e+=i}),this),e},processData:function(t,e){Ext.each(t,(function(t){if(t.show_name=t.share+" / "+t.target_name,void 0===t.computing_size||void 0===t.used_size)t.sizeDisplay=_T("error","error_error"),t.sizeTips=_T("error","error_error"),t.used_size=.001;else if(t.computing_size)t.sizeDisplay=SYNO.SDS.BackupServer.String("app","calculating"),t.sizeTips=SYNO.SDS.BackupServer.String("app","calculating");else{var i=SYNO.SDS.Backup.Server.Common.Utils.getConvertSize(t.used_size),a=SYNO.SDS.Backup.Server.Common.Utils.getUnit(t.used_size);t.sizeDisplay=SYNO.SDS.Backup.Server.Common.Utils.getPercentage(t.used_size,e),t.sizeTips=String.format("{0} {1}",i,a)}}),this)}}),Ext.define("SYNO.SDS.BackupServer.Space.SpaceInfo",{extend:"Ext.BoxComponent",constructor:function(t){Ext.apply(this,t),this.callParent(arguments)},initComponent:function(){this.callParent(arguments),this.pieChart=new SYNO.SDS.BackupServer.Space.PieChart({owner:this,appWin:this.appWin,totalSize:this.totalSize}),this.legend=new SYNO.SDS.BackupServer.Space.Legend({owner:this,appWin:this.appWin,totalSize:this.totalSize})},onRender:function(){this.autoEl={cls:"syno-backup-server-space",cn:[{tag:"div",cls:"block pie-chart"},{tag:"div",cls:"block legend"}]},this.callParent(arguments),this.pieChartEl=this.el.select("div.pie-chart").first(),this.pieChart.render(this.pieChartEl),this.legendEl=this.el.select("div.legend").first(),this.legend.render(this.legendEl)},loadData:function(t,e){var i=this.mergeData(t,e);this.pieChart.loadData(t,i,e),this.legend.loadData(t,i.length>5?i.slice(0,5):i,e)},mergeData:function(t,e){if(5>=t.length)return t;var i=[],a={show_name:"others",used_size:0,computing_size:!1,sizeDisplay:"0%",sizeTips:"0 KB"};Ext.each(t,(function(t,e){e>=5?a.used_size+=t.used_size:i.push(t)}),this);var s=SYNO.SDS.Backup.Server.Common.Utils.getConvertSize(a.used_size),n=SYNO.SDS.Backup.Server.Common.Utils.getUnit(a.used_size);return a.sizeDisplay=SYNO.SDS.Backup.Server.Common.Utils.getPercentage(a.used_size,e),a.sizeTips=String.format("{0} {1}",s,n),i.push(a),i},destroy:function(){this.pieChart&&(this.pieChart.destroy(),this.pieChart=null),this.legend&&(this.legend.destroy(),this.legend=null),this.callParent(arguments)}}),Ext.define("SYNO.SDS.BackupServer.Space.Chart",{extend:"Ext.BoxComponent",constructor:function(t){SYNO.SDS.BackupServer.QuickTips.init();var e=this.svgConfig||{width:this.width,height:this.height};this.cls=t.cls||"chart",this.svgWidth=Ext.isNumber(e.width)?e.width:"100%",this.svgHeight=Ext.isNumber(e.height)?e.height:"100%",this.svgMargins=this.svgConfig&&this.svgConfig.margin?this.svgConfig.margin:{top:0,bottom:0,left:0,right:0},this.callParent(t),this.colorArray=SYNO.SDS.BackupServer.Space.Config.COLORS,this.d3=SYNO.SDS.DataDrivenDocuments.DrawHelper},innerFormatValue:function(t){return Ext.isNumber(t)?t:0},onRender:function(t,e){var i=this.d3;this.callParent(arguments),this.svg=i.select("#"+this.id).attr("class",this.cls).append("svg").attr("width",this.svgWidth).attr("height",this.svgHeight);var a=this.innerFormatValue(this.svgMargins.left),s=this.innerFormatValue(this.svgMargins.top);this.svgGraphics=this.svg.append("g").attr("transform","translate("+a+","+s+")")},afterRender:function(){this.callParent(arguments),this.loadData()},onResize:function(t,e,i,a){this.callParent(arguments),this.draw()},ladData:Ext.emptyFn,draw:Ext.emptyFn}),Ext.define("SYNO.SDS.BackupServer.Space.PieChart",{extend:"SYNO.SDS.BackupServer.Space.Chart",svgConfig:{margin:{top:0,left:0,right:0,bottom:0},border:2,shadow:1,width:166,height:166,radius:80},constructor:function(t){Ext.apply(this,t),this.callParent(arguments),this.data=[]},loadData:function(t,e,i){Ext.isDefined(t)&&(this.data=t,this.totalSize=i,this.draw(e))},initShadowEffect:function(){var t=this.svg.append("defs");this.shadowId="shadow"+Ext.id();var e=t.append("filter").attr("id",this.shadowId);e.append("feGaussianBlur").attr("in","SourceAlpha").attr("stdDeviation",2).attr("result","blur"),e.append("feOffset").attr("in","blur").attr("dx",0).attr("dy",0).attr("result","offsetBlur");var i=e.append("feMerge");i.append("feMergeNode").attr("in","offsetBlur"),i.append("feMergeNode").attr("in","SourceGraphic"),this.svgShadow=t},draw:function(t){if(t){var e=this.d3,i=this.svgConfig.width,a=this.svgConfig.height,s=this.svgConfig.radius,n=this.svgConfig.border,r=s+this.svgConfig.margin.left+this.svgConfig.border+this.svgConfig.shadow,o=s+this.svgConfig.margin.top+this.svgConfig.border+this.svgConfig.shadow,p=this.colorArray;if(this.svgGraphics&&(this.svgGraphics.remove(),this.svgGraphics=null),this.svgShadow||this.initShadowEffect(),this.svgEle=this.svg.data([t]).attr("width",i).attr("height",a),this.svgGraphics=this.svgEle.append("svg:g").attr("transform","translate("+r+","+o+")"),!Ext.isEmpty(t)){var l=SYNO.SDS.Backup.Server.Common.Utils.getConvertSize(this.totalSize),u=SYNO.SDS.Backup.Server.Common.Utils.getUnit(this.totalSize),c=SYNO.SDS.BackupServer.String("app","total_usage"),S=this.svgGraphics.append("g");S.append("text").attr("y",(function(t){return-18})).attr("text-anchor","middle").classed("svg_space_total",!0).text(c);var h=Ext.id(),d=Ext.id();S.append("text").attr("y",(function(t){return 11})).attr("id",h).classed("svg_space_number",!0).text(l);var g=Ext.getDom(h).getBBox().width;S.append("text").attr("y",(function(t){return 11})).attr("id",d).classed("svg_space_unit",!0).text(u);var _=Ext.getDom(d).getBBox().width,v=-Math.round(_/2);S.select("#"+h).attr("transform","translate("+v+" 0)").attr("text-anchor","middle"),S.select("#"+d).attr("transform","translate("+(v+Math.round(g/2)+2)+" 0)").attr("text-anchor","start")}var m=e.svg.arc().outerRadius(s).innerRadius(58),f=e.layout.pie().value((function(t){return t.used_size})).sort(null),k=this.svgGraphics.selectAll("g.slice").data(f).enter().append("svg:g").attr("class","slice"),x="url(#"+this.shadowId+")";k.append("svg:path").attr("fill",(function(t,e){return t.color||p[Math.min(e,9)]})).attr("stroke","#FFFFFF").attr("stroke-width","0px").attr("d",m).attr("synotcqtip",(function(t,e){var i=SYNO.SDS.BackupServer.String("app","space_usage")+": "+t.data.sizeTips;return String.format("{0}<br/>{1}",t.data.show_name,i)})).on("mouseover",(function(t,i,a){this.parentNode.parentNode.appendChild(this.parentNode),e.select(this).transition().duration(300).attr("stroke-width",n+"px").attr("filter",x)})).on("mouseout",(function(t,i,a){e.select(this).transition().duration(300).attr("stroke-width","0px").attr("filter","")}))}}}),Ext.define("SYNO.SDS.BackupServer.Space.ListDiaglog",{extend:"SYNO.SDS.ModalWindow",constructor:function(t){this.data=t.data,this.totalSize=t.totalSize,this.listGrid=new SYNO.SDS.BackupServer.Space.ListGrid({owner:this,appWin:t.appWin,totalSize:this.totalSize});var e={width:640,height:420,layout:"fit",useStatusBar:!1,onEsc:function(){this.close()},items:[this.listGrid]};Ext.apply(e,t),this.callParent([e])},onShow:function(){var t=this.data.slice();Ext.each(t,(function(t){void 0===t.computing_size||void 0===t.used_size?t.used_size=-2:t.computing_size&&(t.used_size=-1)}),this),this.listGrid.store.loadData(t)}}),Ext.define("SYNO.SDS.BackupServer.Space.ListGrid",{extend:"SYNO.ux.GridPanel",constructor:function(t){this.totalSize=t.totalSize;var e={enableColumnMove:!1,store:this.createStore(),border:!1,colModel:this.createColumn(),sm:this.createSelModel(),loadMask:!0,stripeRows:!0};Ext.apply(e,t),this.callParent([e])},createStore:function(){return new Ext.data.JsonStore({idProperty:"show_name",sortInfo:{field:"used_size",direction:"DESC"},id:"show_name",fields:["show_name","used_size"]})},createColumn:function(){var t=[{header:SYNO.SDS.BackupServer.String("app","share_target"),dataIndex:"show_name",id:"show_name",width:140,renderer:function(t,e,i){return e.attr+=String.format('ext:qtip="{0}"',t),t}},{header:SYNO.SDS.BackupServer.String("app","space_usage"),dataIndex:"used_size",id:"used_size",width:120,renderer:function(t,e,i){return Ext.isNumber(t)?-1===t?SYNO.SDS.BackupServer.String("app","calculating"):-2===t?_T("error","error_error"):SYNO.SDS.Backup.Server.Common.Utils.getConvertSize(t)+" "+SYNO.SDS.Backup.Server.Common.Utils.getUnit(t):t}},{header:SYNO.SDS.BackupServer.String("app","space_title_percent"),dataIndex:"used_size",id:"percent",width:100,renderer:{scope:this,fn:function(t,e,i){return-1===t?SYNO.SDS.BackupServer.String("app","calculating"):-2===t?_T("error","error_error"):SYNO.SDS.Backup.Server.Common.Utils.getPercentage(t,this.totalSize)}}}];return new Ext.grid.ColumnModel({defaults:{sortable:!0},columns:t})},createSelModel:function(){return new Ext.grid.RowSelectionModel({singleSelect:!1,moveEditorOnEnter:!1})}}),Ext.define("SYNO.SDS.BackupServer.Space.Legend",{extend:"Ext.BoxComponent",constructor:function(t){var e={autoFlexcroll:!1};Ext.apply(e,t),this.callParent([e])},loadData:function(t,e,i){this.data=t,this.totalSize=i,this.update(e)},onRender:function(){this.callParent(arguments),this.tpl=new Ext.XTemplate("",'<tpl for=".">','<div class="legend-w">','<span class="rect" ',' style="background-color:{[this.getColor(xindex, values)]};"></span>','<span class="syno-backup-text name" ext:qtip="{show_name}">',"{show_name}","</span>",'<span class="syno-backup-text desc" ext:qtip="{sizeTips}">',"{sizeDisplay}","</span>","</div>","</tpl>",'<tpl if="values">','<div class="legend-w view-more-legend">','<span class="syno-backup-text view-more">','{[SYNO.SDS.BackupServer.String("app", "view_more")]}',"</span>","</div>","</tpl>","",{getColor:function(t,e){return SYNO.SDS.BackupServer.Space.Config.COLORS[t-1]||SYNO.SDS.BackupServer.Space.Config.DEFAULT_COLOR}})},afterRender:function(){this.callParent(arguments),this.getEl().on("click",(function(){this.showList()}),this,{delegate:".view-more"})},showList:function(){var t=new SYNO.SDS.BackupServer.Space.ListDiaglog({owner:this.appWin,totalSize:this.totalSize,title:SYNO.SDS.BackupServer.String("app","all_used_size"),data:this.data});this.appWin.openWindow(t)}}),Ext.define("SYNO.SDS.BackupServer.TargetDetailWindow",{extend:"SYNO.SDS.ModalWindow",rotate_customize_retention:[],filter_params:{},constructor:function(t){var e={title:_T("schedule","task_settings"),width:668,height:544,minWidth:668,minHeight:544,padding:"9px 20px 48px 20px",resizable:!0,useStatusBar:!1,items:new Ext.DataView({store:this.detailStore=new Ext.data.JsonStore({autoDestroy:!0,fields:["key","keytip","text","tip"],listeners:{scope:this,load:function(){var t=Ext.fly("syno-backup-server-customized-window");t&&t.on("click",this.openCustomizedRotationWindow,this),(t=Ext.fly("syno-backup-server-filter-setting"))&&t.on("click",this.openFilterSettingWindow,this)}}}),itemSelector:"table",tpl:new Ext.XTemplate('<tpl for=".">','<table style="width:100%;border-spacing: 0px 3px;table-layout:fixed;">',"<tr>",'<td style="width:268px; height:28px; valign:middle"><div ext:qtip="{keytip:htmlEncode}">{key}:</div></td>','<td style="width:16px"></td>','<td style="width:344px; valign:middle"><div ext:qtip="{tip:htmlEncode}">{text}</div></td>',"</tr>","</table>","</tpl>")})};Ext.apply(t,e),this.target_id=t.target_id,this.callParent(arguments)},onOpen:function(){return this.setStatusBusy(),this.sendWebAPI({api:"SYNO.Backup.Service.VersionBackup.Target",version:1,method:"detail",params:{target_id:this.target_id},scope:this,callback:this.onOpenDone}),this.callParent(arguments)},onOpenDone:function(t,e,i){if(!t)return this.clearStatusBusy(),this.owner.getMsgBox().alert(_T("leaf","backup"),SYNO.SDS.BackupServer.GetErrorString(e.code)),void this.close();this.detailStore.loadData(this.parseDetailParam(e.target_detail)),this.clearStatusBusy()},parseDetailParam:function(t){var e=[],i=SYNO.SDS.BackupServer.String("app","on"),a=SYNO.SDS.BackupServer.String("app","off"),s=SYNO.SDS.BackupServer.String("app","unknown"),n=SYNO.SDS.BackupServer.String("app","unknown");Ext.isEmpty(t.task_name)||(n=t.task_name),e.push({key:_T("backup","task_name"),text:"<b>"+Ext.util.Format.htmlEncode(n)+"</b>"}),n=s,Ext.isEmpty(t.target_name)||(n=t.target_name),e.push({key:_T("netbackup","netbkp_target"),text:Ext.util.Format.htmlEncode(n)});let r="entire_dsm"===t.backup_data_type,o="multi_ver_lun"===t.backup_data_type,p=SYNO.SDS.BackupServer.String("app","backup_type_data");return r?p=SYNO.SDS.BackupServer.String("app","backup_type_entire_dsm"):o&&(p=SYNO.SDS.BackupServer.String("app","backup_type_multi_ver_lun")),e.push({key:SYNO.SDS.BackupServer.String("app","backup_type"),text:p}),r||o||(n=_T("common","none"),Ext.isEmpty(t.backup_volumes)||(n=t.backup_volumes.join(", ")),e.push({key:SYNO.SDS.BackupServer.String("app","volume"),text:Ext.util.Format.htmlEncode(n)}),n=_T("common","none"),Ext.isEmpty(t.backup_folders)||(n=t.backup_folders.join(", ")),e.push({key:_T("tree","leaf_sharefolder"),text:Ext.util.Format.htmlEncode(n)}),this.addFilterData(t.backup_filter,e),n=_T("common","none"),Ext.isEmpty(t.app_name_list)||(n=t.app_name_list.join(", ")),e.push({key:SYNO.SDS.BackupServer.String("app","application"),text:Ext.util.Format.htmlEncode(n)})),o&&(e.push({key:SYNO.SDS.BackupServer.String("app","multi_ver_lun_name"),text:Ext.isEmpty(t.multi_ver_lun_name)?_T("common","none"):t.multi_ver_lun_name}),e.push({key:SYNO.SDS.BackupServer.String("app","multi_ver_lun_type"),text:SYNO.SDS.BackupServer.Utils.MultiVerLun.GetMultiVerLunTypeDisplayName(t.multi_ver_lun_type)}),e.push({key:SYNO.SDS.BackupServer.String("app","multi_ver_lun_space_allocation"),text:SYNO.SDS.BackupServer.Utils.MultiVerLun.GetMultiVerLunSpaceAllocationDisplayName(t.multi_ver_lun_type)}),e.push({key:SYNO.SDS.BackupServer.String("app","multi_ver_lun_uuid"),text:Ext.isEmpty(t.multi_ver_lun_uuid)?_T("common","none"):t.multi_ver_lun_uuid})),n=SYNO.SDS.BackupServer.String("app","unknown"),Ext.isEmpty(t.schedule)||(n=SYNO.SDS.Backup.Server.Common.Utils.getScheduleStr(t.schedule)),e.push({key:SYNO.SDS.BackupServer.String("app","backup_schedule_title"),text:Ext.util.Format.htmlEncode(n)}),n=s,Ext.isEmpty(t.incheck_schedule)||(n=SYNO.SDS.Backup.Server.Common.Utils.getScheduleStr(t.incheck_schedule)),e.push({key:SYNO.SDS.BackupServer.String("app","detect_schedule_title"),text:Ext.util.Format.htmlEncode(n)}),n=_T("common","none"),Ext.isEmpty(t.enable_data_compress)||(n=t.enable_data_compress?i:a),e.push({key:SYNO.SDS.BackupServer.String("app","enable_data_compress"),text:Ext.util.Format.htmlEncode(n)}),n=_T("common","none"),Ext.isEmpty(t.enable_data_encrypt)||(n=t.enable_data_encrypt?i:a),e.push({key:SYNO.SDS.BackupServer.String("app","enable_data_encrypt"),text:Ext.util.Format.htmlEncode(n)}),n=s,Ext.isEmpty(t.enable_notify)||(n=t.enable_notify?i:a),e.push({key:SYNO.SDS.BackupServer.String("app","enable_notify_option"),text:Ext.util.Format.htmlEncode(n)}),n=_T("common","none"),Ext.isEmpty(t.rotate_params)?e.push({key:SYNO.SDS.BackupServer.String("app","rotation"),text:Ext.util.Format.htmlEncode(n)}):this.addRotationData(t.rotate_params,e),e},addFilterData:function(t,e){var i=_T("common","none");Ext.isEmpty(t)||(0<t.whitelist.length||0<t.exclude_list.length?(i=SYNO.SDS.BackupServer.String("app","on")+' <a class="syno-sds-backup-server-hyperlink" id="syno-backup-server-filter-setting">'+SYNO.SDS.BackupServer.String("app","version_detail")+"</a>",this.filter_params=t):i=SYNO.SDS.BackupServer.String("app","off")),e.push({key:SYNO.SDS.BackupServer.String("app","file_filter_title"),text:i})},addRotationData:function(t,e){var i={};if(i.key=SYNO.SDS.BackupServer.String("app","rotation"),!t.enable_rotate)return i.text=_T("common","disabled"),void e.push(i);switch(t.rotate_option){case"rotate_earliest":i.text=_T("backup","rotate_action_earliest");break;case"rotate_smart_recycle":i.text=_T("backup","rotate_action_smart_recycle"),i.tip=_T("backup","rotate_action_smart_recycle_description")+"<br/><br/><b>"+_T("backup","rotate_action_smart_recycle_hourly")+"</b><br/>"+_T("backup","rotate_action_smart_recycle_hourly_hint")+"<br/><br/><b>"+_T("backup","rotate_action_smart_recycle_daily")+"</b><br/>"+_T("backup","rotate_action_smart_recycle_daily_hint")+"<br/><br/><b>"+_T("backup","rotate_action_smart_recycle_weekly")+"</b><br/>"+_T("backup","rotate_action_smart_recycle_weekly_hint")+"<br/>";break;case"rotate_customize_retention":i.text=SYNO.SDS.BackupServer.String("app","customized_retention")+' <a class="syno-sds-backup-server-hyperlink" id="syno-backup-server-customized-window">'+SYNO.SDS.BackupServer.String("app","version_detail")+"</a>",this.rotate_customize_retention=t.rotate_customized_rules}e.push(i);var a={};a.key=SYNO.SDS.BackupServer.String("app","rotate_maximum_versions"),a.keytip=SYNO.SDS.BackupServer.String("app","rotate_condition_desc"),a.text=t.rotate_condition[1],e.push(a)},openCustomizedRotationWindow:function(t,e,i){var a=[];a=a.concat(this.rotate_customize_retention),new SYNO.SDS.Backup.Server.Common.RetentionSetting.CustomizedWindow({title:SYNO.SDS.BackupServer.String("app","customized_retention_title"),owner:this,appWin:this.appWin,read_only:!0,retention_rules:a}).open()},openFilterSettingWindow:function(t,e,i){new SYNO.SDS.Backup.Server.Common.FilterSettingWindow({owner:this.owner,backupFilter:this.filter_params,disable_modified_source:!0}).open()}}),Ext.define("SYNO.SDS.BackupService.Instance",{extend:"SYNO.SDS.AppInstance",appWindowName:"SYNO.SDS.BackupServer.MainWindow"}),Ext.define("SYNO.SDS.BackupServer.MainWindow",{extend:"SYNO.SDS.PageListAppWindow",activePage:"SYNO.SDS.BackupServer.OverviewPanel",constructor:function(t){this.isFirst=!0,this.pollingID=null;var e={resizable:!0,maximizable:!0,minimizable:!0,width:1032,height:578,minWidth:1032,minHeight:578,border:!0,cls:"syno-backup-server-mainwindow",listItems:[{iconCls:"icon-overview",text:SYNO.SDS.BackupServer.String("app","page_overview"),fn:"SYNO.SDS.BackupServer.OverviewPanel"},{iconCls:"icon-task",text:SYNO.SDS.BackupServer.String("app","page_task"),fn:"SYNO.SDS.BackupServer.TaskPanel"},{iconCls:"icon-setting",text:SYNO.SDS.BackupServer.String("app","page_setting"),fn:"SYNO.SDS.BackupServer.SettingPanel"}]};Ext.apply(e,t),this.callParent([e])},getPageCt:function(){return this.pageCt||(this.pageCt=new Ext.Panel({layout:"card",padding:"0",border:!1,frame:!1,hideMode:"offsets",region:"center"})),this.pageCt},onOpen:function(){this.callParent(arguments),this.setStatusBusy(),this.sendWebAPI({compound:{stopwhenerror:!1,mode:"parallel",params:[{api:"SYNO.Backup.Service.VersionBackup.Target",version:1,method:"list"},{api:"SYNO.Backup.Service.VersionBackup.Config",version:1,method:"get"}]},scope:this,callback:this.onOpenDone})},initEvents:function(){this.callParent(arguments),this.on("show",(function(){Ext.isEmpty(this.modalWin)&&this.startPolling()})),this.on("hide",this.stopPolling)},onOpenDone:function(t,e,i){if(!t)return this.clearStatusBusy(),void this.getMsgBox().alert(_T("leaf","backup"),_T("common","error_system"),(function(){this.close()}),this);var a=!0;if(Ext.each(e.result,(function(t){if(!t.success)return this.clearStatusBusy(),this.getMsgBox().alert(_T("leaf","backup"),SYNO.SDS.BackupServer.GetErrorString(t.error.code),(function(){this.close()}),this),a=!1,!1}),this),a){this.targetListCB(e.result[0].success,e.result[0].data,i);var s=e.result[1].data;this.getSettingPanel().loadSettingData(s),this.clearStatusBusy(),this.isFirst=!1}},startPolling:function(){this.pollingID||(this.pollingID=this.pollReg({webapi:{api:"SYNO.Backup.Service.VersionBackup.Target",version:1,method:"list"},interval:3,immediate:!this.isFirst,scope:this,status_callback:this.targetListCB}))},stopPolling:function(){this.pollingID&&(this.pollUnreg(this.pollingID),this.pollingID=null,this.getActivePage().stopUpdateData&&this.getActivePage().stopUpdateData())},targetListCB:function(t,e,i){if(t){this.last_target_list=e.target_list;var a=(new Date).getTime()/1e3;Ext.each(this.last_target_list,(function(t){t.browser_webapi_time=a,t.used_size*=1024}),this),this.getActivePage().loadTargetList&&this.getActivePage().loadTargetList(e.target_list)}},openWindow:function(t){this.stopPolling(),t.on("close",this.startPolling,this),t.open()},getSettingPanel:function(){var t=this.getPageCt().getComponent("SYNO.SDS.BackupServer.SettingPanel");return t||(t=this.createPage("SYNO.SDS.BackupServer.SettingPanel"),this.getPageCt().add(t)),t}}),Ext.define("SYNO.SDS.BackupServer.Extension.Instance",{extend:"SYNO.SDS.AppInstance",constructor:function(t){this.callParent(arguments)},initInstance:function(){SYNO.SDS.StatusNotifier.setAppPrivilege("SYNO.SDS.BackupService.Instance",_S("is_admin"))}});

Youez - 2016 - github.com/yon3zu
LinuXploit