HEX
Server: Apache/2.2.34 (Unix) mod_fastcgi/mod_fastcgi-SNAP-0910052141
System: Linux Kou-Etsu-Dou 4.4.59+ #25556 SMP PREEMPT Thu Mar 4 18:03:46 CST 2021 x86_64
User: hosam (1026)
PHP: 7.2.29
Disabled: NONE
Upload Files
File: /volume1/@appstore/StorageAnalyzer/ui/storageanalyzer.js
/* Copyright (c) 2021 Synology Inc. All rights reserved. */

Ext.ns("SYNO.SDS.StorageAnalyzer.UsageReport");SYNO.SDS.StorageAnalyzer.UsageReport.SYNO_SCHEDULE_SUN=0;SYNO.SDS.StorageAnalyzer.UsageReport.SYNO_SCHEDULE_MON=1;SYNO.SDS.StorageAnalyzer.UsageReport.SYNO_SCHEDULE_TUE=2;SYNO.SDS.StorageAnalyzer.UsageReport.SYNO_SCHEDULE_WED=3;SYNO.SDS.StorageAnalyzer.UsageReport.SYNO_SCHEDULE_THU=4;SYNO.SDS.StorageAnalyzer.UsageReport.SYNO_SCHEDULE_FRI=5;SYNO.SDS.StorageAnalyzer.UsageReport.SYNO_SCHEDULE_SAT=6;SYNO.SDS.StorageAnalyzer.UsageReport.WEEK_VALUE=[_T("schedule","schedule_sun"),_T("schedule","schedule_mon"),_T("schedule","schedule_tue"),_T("schedule","schedule_wed"),_T("schedule","schedule_thu"),_T("schedule","schedule_fri"),_T("schedule","schedule_sat")];Ext.define("SYNO.SDS.StorageAnalyzer.UsageReport.StepWelcome",{extend:"SYNO.SDS.Wizard.WelcomeStep",constructor:function(b){var a={itemId:"welcome",nextId:"profile",headline:SYNO.SDS.StorageAnalyzer._T("report","wizard_welcome"),description:SYNO.SDS.StorageAnalyzer._T("report","wizard_welcome_desc"),headLineHeight:60};Ext.apply(a,b);this.callParent([a])},summary:function(a){return}});Ext.define("SYNO.SDS.StorageAnalyzer.UsageReport.StepProfile",{extend:"Ext.form.FormPanel",param:{},constructor:function(b){if(b.profile_name){this.profile_name=b.profile_name}this.editMode=b.editMode;var c=new Ext.data.SimpleStore({fields:["mail"]});var a={itemId:"profile",nextId:"reportType",headline:SYNO.SDS.StorageAnalyzer._T("report","wizard_profile"),description:SYNO.SDS.StorageAnalyzer._T("report","wizard_profile_desc"),layout:"form",labelWidth:200,defaults:{anchor:"95%"},items:[{name:"profile",fieldLabel:SYNO.SDS.StorageAnalyzer._T("report","title_profile"),xtype:"syno_textfield",maxLength:127,allowBlank:false,vtype:"darProfile"},{xtype:"syno_displayfield",value:""},{name:"email",fieldLabel:SYNO.SDS.StorageAnalyzer._T("report","title_mail"),xtype:"syno_superboxselect",vtype:"email",store:c,mode:"local",emptyText:"admin@example.com",allowAddNewData:true,addNewDataOnBlur:true,renderFieldBtns:false,htmlEncode:true,displayField:"mail",valueField:"mail",grow:true,resizable:true,itemMaxWidth:200,listeners:{scope:this,newitem:this.onAddNewitem}},{xtype:"syno_displayfield",id:this.notificationLink,value:'<a class="link-font" href="#">'+Ext.util.Format.htmlEncode(_T("schedule","msg_check_config"))+"</a>",name:"msg_config",hidden:true,htmlEncode:false,isDirty:function(){return false},listeners:{scope:this,single:true,buffer:80,render:function(e){var d=e.el.child("a");if(d){this.mon(d,"click",function(){SYNO.SDS.AppLaunch("SYNO.SDS.AdminCenter.Application",Ext.apply({},{fn:"SYNO.SDS.AdminCenter.Notification.Main"}))},this)}}}},{xtype:"syno_fieldset",title:SYNO.SDS.StorageAnalyzer._T("report","category_report_rotation"),items:[{xtype:"syno_compositefield",name:"rotation_composite",hideLabel:true,items:[{xtype:"syno_checkbox",name:"enable_rotation",boxLabel:SYNO.SDS.StorageAnalyzer._T("report","report_max_number_kept"),value:false,listeners:{check:{fn:function(e,d){this.getForm().findField("max_reports").setDisabled(!d)},scope:this}}},{xtype:"syno_numberfield",name:"max_reports",indent:1,width:60,maxlength:4,vtype:"number",allowBlank:false,maxValue:5000,value:100,disabled:true}]}]}],listeners:{scope:this,activate:this.addTip,afterrender:function(){this.sendWebAPI({api:"SYNO.Core.Notification.Mail.Conf",method:"get",version:1,scope:this,callback:function(f,e,d){if(f&&!Ext.isEmpty(e)){this.getForm().findField("msg_config").setVisible(!e.enable_mail)}}})}}};Ext.apply(a,b);this.callParent([a])},onAddNewitem:function(b,a,c){a=a.trim();if(a){b.addItem({mail:a})}},updateDialog:function(a,b){this.getForm().findField("profile").setValue(a.profile_name);this.getForm().findField("profile").initValue();if(a.mail){Ext.each(a.mail,function(c){this.getForm().findField("email").addItem({mail:c})},this);this.getForm().findField("email").initValue()}this.getForm().findField("enable_rotation").setValue(!!a.enable_rotation);this.getForm().findField("enable_rotation").initValue();if(a.max_reports){this.getForm().findField("max_reports").setValue(Math.min(5000,a.max_reports));this.getForm().findField("max_reports").initValue()}if(b&&typeof(b)==="function"){b()}return},summary:function(a){a.append(SYNO.SDS.StorageAnalyzer._T("report","title_profile"),this.param.profile_name);if(this.param.mail.length!==0){a.append(SYNO.SDS.StorageAnalyzer._T("report","title_mail"),this.param.mail.join(","))}if(this.param.enable_rotation){a.append(SYNO.SDS.StorageAnalyzer._T("report","category_report_rotation"),""+this.param.max_reports)}return},addTip:function(){var a=SYNO.SDS.Utils.AddTip(this.getForm().findField("max_reports").getEl(),String.format(_JSLIBSTR("extlang","maxnumber"),"5000"));Ext.get(a).alignTo(this.getForm().findField("max_reports").getEl(),"r")},checkExistReport:function(){var a=this.getForm().findField("profile");this.sendWebAPI({api:"SYNO.Core.Report",method:"get",version:1,params:{id:a.getValue()},scope:this,callback:function(d,c,b){if(d){this.onGetReportExist()}else{this.onGetReportNotExist()}}})},onGetReportExist:function(){this.getForm().findField("profile").markInvalid(_T("error","error_file_exist"));this.owner.setStatusError({text:_T("common","forminvalid"),clear:true})},onGetReportNotExist:function(){this.param.profile_name=this.getForm().findField("profile").getValue();this.param.mail=this.getForm().findField("email").getValue().split(",");this.owner.goNext(this.nextId)},getNext:function(){if(!this.getForm().isValid()){this.owner.setStatusError({text:_T("common","forminvalid"),clear:true});return false}if(this.getForm().findField("enable_rotation").getValue()){this.param.enable_rotation=true;this.param.max_reports=this.getForm().findField("max_reports").getValue()}else{this.param.enable_rotation=false}if(this.editMode===true){this.param.profile_name=this.getForm().findField("profile").getValue();this.param.mail=this.getForm().findField("email").getValue().split(",");return this.nextId}this.checkExistReport();return false}});Ext.define("SYNO.SDS.StorageAnalyzer.UsageReport.StepReportType",{extend:"Ext.form.FormPanel",param:{},constructor:function(b){this.enableColumn=new SYNO.ux.EnableColumn({name:"report_types",header:_T("common","enabled"),dataIndex:"choose",menuDisabled:true,sortable:false,width:25,align:"center"});this.typeStore=new Ext.data.JsonStore({fields:["report","value"],data:[{report:SYNO.SDS.StorageAnalyzer._T("report","report_quota_usage"),value:"quota_usage"},{report:SYNO.SDS.StorageAnalyzer._T("report","report_file_owner"),value:"file_owner"},{report:SYNO.SDS.StorageAnalyzer._T("report","report_volume_usage"),value:"volume_usage"},{report:SYNO.SDS.StorageAnalyzer._T("report","report_share_list"),value:"share_list"},{report:SYNO.SDS.StorageAnalyzer._T("report","report_file_group"),value:"file_group"},{report:SYNO.SDS.StorageAnalyzer._T("report","report_duplicate_file"),value:"duplicate_file"},{report:SYNO.SDS.StorageAnalyzer._T("report","report_large_file"),value:"large_file"},{report:SYNO.SDS.StorageAnalyzer._T("report","report_lrm"),value:"least_modify"},{report:SYNO.SDS.StorageAnalyzer._T("report","report_mrm"),value:"most_modify"}]});if(!this.editMode){var c,d=this.typeStore.getTotalCount();for(c=0;c<d;c++){var e=this.typeStore.getAt(c);e.data.choose=true;e.commit(true)}}this.cm=new Ext.grid.ColumnModel({columns:[this.enableColumn,{header:SYNO.SDS.StorageAnalyzer._T("report","title_report_type"),dataIndex:"report"}]});this.grid=new SYNO.ux.GridPanel({width:"100%",height:520,store:this.typeStore,colModel:this.cm,plugins:[this.enableColumn],mode:"local"});var a={itemId:"reportType",nextId:"schedule",headline:SYNO.SDS.StorageAnalyzer._T("report","wizard_report"),description:SYNO.SDS.StorageAnalyzer._T("report","wizard_report_desc"),items:[{xtype:"syno_fieldset",title:SYNO.SDS.StorageAnalyzer._T("report","category_items_in_report"),items:[this.grid]}]};Ext.apply(a,b);this.callParent([a])},updateDialog:function(e,g){var c=e.report_type;var d=0,b=0,a=0;if(c.length>0){d=this.typeStore.getTotalCount();for(b=0;b<d;b++){var f=this.typeStore.getAt(b);f.data.choose=false;for(a=0;a<c.length;a++){if(c[a]===f.data.value){f.data.choose=true;break}}f.commit(true)}}this.enableColumn.checkSelectAll(this.typeStore);if(g&&typeof(g)==="function"){g()}return},summary:function(b){var a=this.getCheckList(false);if(a.length>0){b.append(SYNO.SDS.StorageAnalyzer._T("report","title_report_type"),a.join(","))}return},getNext:function(){var a=this.getCheckList(true);if(a.length===0){this.param.report_type=[];this.owner.setStatusError({text:_T("error","error_select_at_least_one"),clear:true});return false}else{this.param.report_type=a}return this.nextId},getCheckList:function(f){var c,b=0;var a=[];var d=0;d=this.typeStore.getTotalCount();for(c=0;c<d;c++){var e=this.typeStore.getAt(c);if(e.data.choose){if(f){a[b]=e.data.value}else{a[b]=e.data.report}b++}}return a}});Ext.define("SYNO.SDS.StorageAnalyzer.UsageReport.StepSchedule",{extend:"Ext.form.FormPanel",param:{},constructor:function(b){this.enable_schedule=new SYNO.ux.Checkbox({name:"enable_schedule",boxLabel:SYNO.SDS.StorageAnalyzer._T("report","form_schedule_time"),listeners:{check:{fn:this.updateButton,scope:this}}});var a={itemId:"schedule",nextId:"share",headline:SYNO.SDS.StorageAnalyzer._T("report","wizard_schedule"),description:SYNO.SDS.StorageAnalyzer._T("report","wizard_schedule_desc"),labelWidth:200,items:[this.enable_schedule,{name:"week_day",xtype:"syno_schedulefield",fieldLabel:_T("time","time_day"),allowBlank:false,editable:false,width:200,value:"0,1,2,3,4,5,6",disabled:true,indent:2},{name:"hour",xtype:"syno_combobox",fieldLabel:_T("time","time_hour"),store:this.createTimeItemStore("hour"),displayField:"display",valueField:"display",disabled:true,value:"00",width:200,indent:2},{name:"minute",xtype:"syno_combobox",fieldLabel:_T("time","time_minute"),store:this.createTimeItemStore("min"),displayField:"display",valueField:"display",disabled:true,value:"00",width:200,indent:2}]};if(b.profile_name===undefined){a.items[a.items.length]={xtype:"syno_displayfield",height:10,value:""};a.items[a.items.length]={name:"immediate_check",xtype:"syno_checkbox",boxLabel:SYNO.SDS.StorageAnalyzer._T("report","form_create_now")}}Ext.apply(a,b);this.callParent([a])},createTimeItemStore:function(e){var a=[];var c={hour:24,min:60,sec:60};if(e in c){for(var d=0;d<c[e];d++){a.push([d,String.leftPad(String(d),2,"0")])}var b=new Ext.data.SimpleStore({id:0,fields:["value","display"],data:a});return b}return null},updateButton:function(b,a){if(a){this.getForm().findField("week_day").setDisabled(false);this.getForm().findField("hour").setDisabled(false);this.getForm().findField("minute").setDisabled(false)}else{this.getForm().findField("week_day").setDisabled(true);this.getForm().findField("hour").setDisabled(true);this.getForm().findField("minute").setDisabled(true)}},updateDialog:function(d,e){var b=0,a="",c;if(d.week_day!==undefined){c=d.week_day;for(b=0;b<7;b++){if(c.charAt(b)==="1"){a+=b+","}}this.getForm().findField("week_day").setValue(a)}else{this.getForm().findField("week_day").setValue("0,1,2,3,4,5,6")}if(d.hour){this.getForm().findField("hour").setValue(String.leftPad(d.hour,2,"0"))}else{this.getForm().findField("hour").setValue("00")}if(d.minute){this.getForm().findField("minute").setValue(String.leftPad(d.minute,2,"0"))}else{this.getForm().findField("minute").setValue("00")}this.getForm().findField("week_day").initValue();this.getForm().findField("hour").initValue();this.getForm().findField("minute").initValue();if(d.enable_schedule){this.getForm().findField("enable_schedule").setValue(true);this.updateButton("",true)}else{this.updateButton("",false)}this.getForm().findField("enable_schedule").initValue();if(e&&typeof(e)==="function"){e()}return},getNext:function(){if(this.getForm().findField("enable_schedule").getValue()){this.param.week_day=this.dayToArray(this.getForm().findField("week_day").getValue());this.param.hour=this.getForm().findField("hour").getValue();this.param.minute=this.getForm().findField("minute").getValue();if(this.param.week_day===""||this.param.hour===""||this.param.minute===""){this.owner.setStatusError({text:_T("common","forminvalid"),clear:true});return false}this.param.enable_schedule=true}else{this.param.enable_schedule=false}if(!this.editMode&&this.getForm().findField("immediate_check")){this.param.create_now=this.getForm().findField("immediate_check").getValue()}else{this.param.create_now=false}return this.nextId},dayToArray:function(d){var a=d.split(",");var b=["0","0","0","0","0","0","0"];for(var c=0;c<a.length;c++){if(a[c]<=6||a[c]>=0){b[a[c]]="1"}}return b.join("")},summary:function(d){var a,c,b;c=this.getForm().findField("week_day").getValue();a="";if(c){c=c.split(",");for(b=0;b<c.length;b++){a+=SYNO.SDS.StorageAnalyzer.UsageReport.WEEK_VALUE[c[b]]+" "}}if(this.getForm().findField("enable_schedule").checked){d.append(SYNO.SDS.StorageAnalyzer._T("report","summary_enable_schedule"),_T("common","yes"));d.append(SYNO.SDS.StorageAnalyzer._T("report","form_schedule_time"),a+" "+this.param.hour+":"+this.param.minute)}else{d.append(SYNO.SDS.StorageAnalyzer._T("report","summary_enable_schedule"),_T("common","no"))}if(this.param.create_now){d.append(SYNO.SDS.StorageAnalyzer._T("report","summary_enable_create_now"),_T("common","yes"))}else{d.append(SYNO.SDS.StorageAnalyzer._T("report","summary_enable_create_now"),_T("common","no"))}return}});Ext.define("SYNO.SDS.StorageAnalyzer.UsageReport.StepShare",{extend:"SYNO.ux.FormPanel",param:{},constructor:function(b){var c=206;this.owner=b.owner;this.editMode=b.editMode;this.enableColumn=new SYNO.ux.EnableColumn({name:"share_select",header:_T("common","choose"),dataIndex:"choose",menuDisabled:true,sortable:false,width:30,align:"center"});this.enableColumn.onCellClick=this.enableColumn.onCellClick.createSequence(function(g,d,f){var e=g.store.getAt(d).get("choose")===true;if(e){this.allcheckbox.setValue(!e)}},this);this.enableColumn.onSelectAll=this.enableColumn.onSelectAll.createSequence(function(){var e=this.enableColumn,d=e.box_el.hasClass("syno-ux-cb-grayed")||e.box_el.hasClass("syno-ux-cb-checked");if(d){this.allcheckbox.setValue(!d)}},this);this.shareStore=new SYNO.API.JsonStore({api:"SYNO.Core.File",method:"list",version:1,baseParams:{folder_path:"/",superuser:true,filetype:"dir"},appWindow:this,fields:["text"]});this.shareStoreLoadComplete=false;this.shareStore.load({scope:this,callback:function(){this.shareStoreLoadComplete=true;var d=this.shareStore.findExact("text","home");if(-1!==d){this.shareStore.removeAt(d)}}});this.cm=new Ext.grid.ColumnModel({columns:[this.enableColumn,{header:SYNO.SDS.StorageAnalyzer._T("report","title_share"),dataIndex:"text"}]});if(this.editMode){c=c+140}this.grid=new SYNO.ux.GridPanel({hideLabel:true,height:c,viewConfig:{forceFit:true},store:this.shareStore,colModel:this.cm,plugins:[this.enableColumn],mode:"remote",cls:"without-dirty-red-grid",title:SYNO.SDS.StorageAnalyzer._T("report","form_specify_share"),header:true,bbar:{xtype:"syno_toolbar",items:[this.allcheckbox=new SYNO.ux.Checkbox({boxLabel:SYNO.SDS.StorageAnalyzer._T("report","include_newshare"),checked:!this.editMode,listeners:{check:function(e,f){if(f===true){var d=this.grid.store;d.suspendEvents(true);d.data.items.each(function(g,h){if(g.get("choose",true)){this.enableColumn.toggleRec(d.getAt(h))}},this);d.resumeEvents();this.enableColumn.checkSelectAll(d)}},scope:this}})]}});var a={itemId:"share",nextId:"option",headline:SYNO.SDS.StorageAnalyzer._T("report","title_share"),description:SYNO.SDS.StorageAnalyzer._T("report","wizard_option_desc"),layout:"form",listeners:{activate:{fn:function(){this.grid.view.updateScroller()}}},items:[this.grid]};Ext.apply(a,b);this.callParent([a])},updateDialog:function(a,b){this.response=a;this.updateDialogCallback=b;this.shareStoreTask=this.addTask({id:Ext.id(),interval:500,run:this.updateTaskCallBack,scope:this});this.shareStoreTask.start(false)},updateTaskCallBack:function(){var e=this.response;var c=0,b=0,a=0;var d=e.shares;var f;var g=0;if(this.shareStoreLoadComplete===false){return}this.shareStoreTask.stop();if(d.length>0){c=this.shareStore.getCount();for(b=0;b<c;b++){f=this.shareStore.getAt(b);f.data.choose=false;for(a=0;a<d.length;a++){if(d[a]===f.data.text){f.data.choose=true;g++;break}}f.commit(false)}}if(d.length===0||g===0){this.allcheckbox.setValue(true)}else{this.allcheckbox.setValue(false)}this.allcheckbox.initValue();this.enableColumn.checkSelectAll(this.shareStore);this.updateDialogCallback();return},getNext:function(a){var b=this.getCheckList();if(this.allcheckbox.checked!==true&&b.length>0){this.param.shares=b}else{this.param.shares=[]}if(!this.getForm().isValid()){this.owner.setStatusError({text:_T("common","forminvalid"),clear:true});return false}if(!a&&0===this.param.shares.length&&this.allcheckbox.checked!==true){this.owner.getMsgBox().confirm(SYNO.SDS.StorageAnalyzer._T("report","report_name"),SYNO.SDS.StorageAnalyzer._T("report","confirm_select_no_share"),function(c){if(c==="yes"){if(this.editMode){this.owner.onOk.call(this.owner,true)}else{this.owner.goNext.call(this.owner,this.nextId);this.allcheckbox.setValue(true)}}},this);return false}return this.nextId},summary:function(b){var a=this.getCheckList();if(a.length>0){b.append(SYNO.SDS.StorageAnalyzer._T("report","form_specify_share"),this.param.shares.join(","))}else{b.append(SYNO.SDS.StorageAnalyzer._T("report","form_specify_share"),SYNO.SDS.StorageAnalyzer._T("report","form_specify_all_share"))}return},getCheckList:function(){var c,b=0;var a=[];var d=0;d=this.shareStore.getCount();for(c=0;c<d;c++){var e=this.shareStore.getAt(c);if(e.data.choose){a[b]=e.data.text;b++}}return a}});Ext.define("SYNO.SDS.StorageAnalyzer.UsageReport.StepOption",{extend:"SYNO.ux.FormPanel",param:{},constructor:function(b){this.owner=b.owner;this.userStore=new Ext.data.ArrayStore({fields:["user"]});var a={itemId:"option",nextId:"summary",headline:SYNO.SDS.StorageAnalyzer._T("report","wizard_option"),description:SYNO.SDS.StorageAnalyzer._T("report","wizard_option_desc"),layout:"form",items:[{xtype:"syno_fieldset",title:SYNO.SDS.StorageAnalyzer._T("report","category_duplicate_files"),items:[{xtype:"syno_checkbox",boxLabel:SYNO.SDS.StorageAnalyzer._T("report","form_find_duplicate_file"),id:this.duplicate_dupfind=Ext.id(),checked:true,listeners:{check:function(d,c){Ext.getCmp(this.duplicate_filename).setDisabled(!c);Ext.getCmp(this.duplicate_mtime).setDisabled(!c);Ext.getCmp(this.duplicate_number).setDisabled(!c)},scope:this}},{xtype:"syno_checkbox",boxLabel:SYNO.SDS.StorageAnalyzer._T("report","form_duplicate_compare_filename"),id:this.duplicate_filename=Ext.id(),checked:false,indent:1},{xtype:"syno_checkbox",boxLabel:SYNO.SDS.StorageAnalyzer._T("report","form_specify_duplicate_file_full_mach")+" ("+SYNO.SDS.StorageAnalyzer._T("report","msg_cost_more_time")+")",id:this.duplicate_compare=Ext.id(),hidden:true,checked:true},{xtype:"syno_checkbox",boxLabel:SYNO.SDS.StorageAnalyzer._T("report","form_duplicate_compare_mtime"),id:this.duplicate_mtime=Ext.id(),checked:true,indent:1},{name:"duplicate_number",xtype:"syno_numberfield",fieldLabel:SYNO.SDS.StorageAnalyzer._T("report","form_duplicate_limit_number"),labelWidth:400,width:60,id:this.duplicate_number=Ext.id(),maxlength:4,maxValue:5000,vtype:"number",allowBlank:false,value:200,indent:1}]},{xtype:"syno_fieldset",title:SYNO.SDS.StorageAnalyzer._T("report","category_file_listing_by_user"),items:[{xtype:"syno_displayfield",value:SYNO.SDS.StorageAnalyzer._T("report","form_specify_user")+":"},{name:"owners",xtype:"syno_superboxselect",id:this.owners=Ext.id(),hideLabel:true,emptyText:"guest",store:this.userStore,mode:"local",allowAddNewData:true,addNewDataOnBlur:true,renderFieldBtns:false,displayField:"user",valueField:"user",grow:true,resizable:true,listeners:{scope:this,newitem:this.onAddNewitem}}]}]};Ext.apply(a,b);this.callParent([a]);this.on("afterlayout",this.addTip,this,{single:true})},addTip:function(){SYNO.SDS.Utils.AddTip(this.getForm().findField("duplicate_number").getEl(),String.format(_JSLIBSTR("extlang","maxnumber"),"5000"))},onAddNewitem:function(b,a,c){a=a.trim();if(a){b.addItem({user:Ext.util.Format.htmlEncode(a)})}},updateDialog:function(b,c){var a=b.owners;Ext.getCmp(this.duplicate_dupfind).setValue(b.duplicate_dupfind);Ext.getCmp(this.duplicate_dupfind).initValue();Ext.getCmp(this.duplicate_compare).setValue(b.duplicate_compare);Ext.getCmp(this.duplicate_compare).initValue();Ext.getCmp(this.duplicate_mtime).setValue(b.duplicate_mtime);Ext.getCmp(this.duplicate_mtime).initValue();Ext.getCmp(this.duplicate_filename).setValue(b.duplicate_filename);Ext.getCmp(this.duplicate_filename).initValue();if(b.duplicate_number){Ext.getCmp(this.duplicate_number).setValue(Math.min(5000,b.duplicate_number))}Ext.getCmp(this.duplicate_number).initValue();Ext.each(a,function(d){if(d!==""){Ext.getCmp(this.owners).addItem({user:d})}},this);Ext.getCmp(this.owners).initValue();if(c&&typeof(c)==="function"){c()}return},getNext:function(){var a=Ext.util.Format.htmlDecode(this.getForm().findField("owners").getValue());if(a===""){this.param.owners=[]}else{this.param.owners=a.split(",")}this.param.duplicate_dupfind=Ext.getCmp(this.duplicate_dupfind).getValue();this.param.duplicate_compare=Ext.getCmp(this.duplicate_compare).getValue();this.param.duplicate_mtime=Ext.getCmp(this.duplicate_mtime).getValue();this.param.duplicate_filename=Ext.getCmp(this.duplicate_filename).getValue();this.param.duplicate_number=Ext.getCmp(this.duplicate_number).getValue();if(!this.getForm().isValid()){this.owner.setStatusError({text:_T("common","forminvalid"),clear:true});return false}return this.nextId},summary:function(a){if(0!==this.param.owners.length){a.append(SYNO.SDS.StorageAnalyzer._T("report","form_specify_user"),this.param.owners.join(","))}if(this.param.duplicate_compare){a.append(SYNO.SDS.StorageAnalyzer._T("report","form_specify_duplicate_file_full_mach"),_T("common","yes"))}else{a.append(SYNO.SDS.StorageAnalyzer._T("report","form_specify_duplicate_file_full_mach"),_T("common","no"))}if(this.param.duplicate_mtime){a.append(SYNO.SDS.StorageAnalyzer._T("report","form_duplicate_compare_mtime"),_T("common","yes"))}else{a.append(SYNO.SDS.StorageAnalyzer._T("report","form_duplicate_compare_mtime"),_T("common","no"))}if(this.param.duplicate_filename){a.append(SYNO.SDS.StorageAnalyzer._T("report","form_duplicate_compare_filename"),_T("common","yes"))}else{a.append(SYNO.SDS.StorageAnalyzer._T("report","form_duplicate_compare_filename"),_T("common","no"))}if(this.param.duplicate_dupfind){a.append(SYNO.SDS.StorageAnalyzer._T("report","form_find_duplicate_file"),_T("common","yes"))}else{a.append(SYNO.SDS.StorageAnalyzer._T("report","form_find_duplicate_file"),_T("common","no"))}a.append(SYNO.SDS.StorageAnalyzer._T("report","form_duplicate_limit_number"),""+this.param.duplicate_number);return}});Ext.define("SYNO.SDS.StorageAnalyzer.UsageReport.StepSummary",{extend:"Ext.form.FormPanel",param:{},constructor:function(b){var a={autoScroll:true,headline:_T("wizcommon","summary"),description:_T("wizcommon","summary_descr"),itemId:"summary",nextId:null,border:false,items:[this.grid=new SYNO.SDS.Wizard.SummaryStep({width:530,autoHeight:true,viewConfig:{autoFlexcroll:false}})]};Ext.apply(a,b);this.callParent([a])},getNext:function(){var a=this.owner.stepStack;var c=null;for(var b=0;b<a.length;b++){c=this.owner.getStep(a[b]);for(var d in c.param){if(c.param.hasOwnProperty(d)){this.param[d]=c.param[d]}}}this.owner.setStatusBusy({text:_T("common","saving")});this.sendWebAPI({api:"SYNO.Core.Report",method:"create",version:1,scope:this,params:this.param,callback:function(h,f,e){this.owner.clearStatusBusy();if(h){}else{if(f.errors){var g=SYNO.SDS.StorageAnalyzer.Utils.getErrorString(f.code);if(4902===f.code){g=g+"("+f.errors.user+")"}this.owner.getMsgBox().alert(SYNO.SDS.StorageAnalyzer._T("report","report_name"),g)}return}this.owner.close();this.outPanel.addMask({text:_T("common","loading")})}});return false},activate:function(){var a=this.owner.stepStack;var c=null;this.grid.getStore().removeAll(true);for(var b=0;b<a.length;b++){c=this.owner.getStep(a[b]);if(Ext.isFunction(c.summary)){c.summary(this.grid.getStore())}}this.grid.getView().refresh()}});Ext.define("SYNO.SDS.StorageAnalyzer.UsageReport.ProfileWizard",{extend:"SYNO.SDS.Wizard.ModalWindow",constructor:function(c){this.outPanel=c.outPanel;this.owner=c.owner;var g=new SYNO.SDS.StorageAnalyzer.UsageReport.StepWelcome({owner:this});var e=new SYNO.SDS.StorageAnalyzer.UsageReport.StepProfile({editMode:false,owner:this});var d=new SYNO.SDS.StorageAnalyzer.UsageReport.StepReportType({owner:this});var f=new SYNO.SDS.StorageAnalyzer.UsageReport.StepSchedule({owner:this});var h=new SYNO.SDS.StorageAnalyzer.UsageReport.StepShare({owner:this});var a=new SYNO.SDS.StorageAnalyzer.UsageReport.StepOption({owner:this});var b=new SYNO.SDS.StorageAnalyzer.UsageReport.StepSummary({outPanel:c.outPanel,owner:this});this.callParent([{owner:c.owner,title:SYNO.SDS.StorageAnalyzer._T("report","wizard_title"),width:650,height:550,banner:true,bannerDescHeight:60,activeStep:0,steps:[g,e,d,f,h,a,b]}])}});Ext.define("SYNO.SDS.StorageAnalyzer.UsageReport.SettingBasic",{extend:"Ext.form.FormPanel",constructor:function(b){this.owner=b.owner.owner;this.enable_schedule=new SYNO.ux.Checkbox({name:"enable_schedule",boxLabel:SYNO.SDS.StorageAnalyzer._T("report","form_schedule_time_volume_history"),listeners:{check:{fn:this.updateButton,scope:this}}});var a={layout:"form",border:false,labelWidth:150,defaults:{anchor:"90%",allowBlank:false},items:[{xtype:"syno_compositefield",fieldLabel:SYNO.SDS.StorageAnalyzer._T("report","title_location"),hideLabel:false,items:[{xtype:"syno_textfield",width:180,name:"report_location",allowBlank:false,readOnly:true,tabIndex:2},{xtype:"syno_button",text:_T("common","choose"),scope:this,handler:this.choosedestHandler}]},{xtype:"syno_displayfield",height:10,value:""},this.enable_schedule,{id:this.week_day=Ext.id(),name:"week_day",xtype:"syno_schedulefield",fieldLabel:_T("time","time_day"),allowBlank:false,editable:false,width:200,value:"0,1,2,3,4,5,6",disabled:true,indent:2},{id:this.hour=Ext.id(),name:"hour",xtype:"syno_combobox",fieldLabel:_T("time","time_hour"),store:this.createTimeItemStore("hour"),displayField:"display",valueField:"display",disabled:true,value:"00",width:200,indent:2},{id:this.minute=Ext.id(),name:"minute",xtype:"syno_combobox",fieldLabel:_T("time","time_minute"),store:this.createTimeItemStore("min"),displayField:"display",valueField:"display",disabled:true,value:"00",width:200,indent:2}]};Ext.apply(a,b);this.callParent([a])},createTimeItemStore:function(e){var a=[];var c={hour:24,min:60,sec:60};if(e in c){for(var d=0;d<c[e];d++){a.push([d,String.leftPad(String(d),2,"0")])}var b=new Ext.data.SimpleStore({id:0,fields:["value","display"],data:a});return b}return null},updateButton:function(b,a){if(a){Ext.getCmp(this.week_day).setDisabled(false);Ext.getCmp(this.hour).setDisabled(false);Ext.getCmp(this.minute).setDisabled(false)}else{Ext.getCmp(this.week_day).setDisabled(true);Ext.getCmp(this.hour).setDisabled(true);Ext.getCmp(this.minute).setDisabled(true)}},updateDialogSchedule:function(d){var b=0,a="",c;if(d.week_day!==undefined){c=d.week_day;for(b=0;b<7;b++){if(c.charAt(b)==="1"){a+=b+","}}this.getForm().findField("week_day").setValue(a)}else{this.getForm().findField("week_day").setValue("0,1,2,3,4,5,6")}this.getForm().findField("week_day").initValue();if(d.hour){this.getForm().findField("hour").setValue(String.leftPad(d.hour,2,"0"))}else{this.getForm().findField("hour").setValue("00")}this.getForm().findField("hour").initValue();if(d.minute){this.getForm().findField("minute").setValue(String.leftPad(d.minute,2,"0"))}else{this.getForm().findField("minute").setValue("00")}this.getForm().findField("minute").initValue();if(d.enable_schedule!==false){this.getForm().findField("enable_schedule").setValue(true);this.updateButton("",true)}else{this.updateButton("",false)}this.getForm().findField("enable_schedule").initValue();return},updateDialog:function(a,b){this.getForm().findField("report_location").setValue(a.report_location);this.getForm().findField("report_location").initValue();this.updateDialogSchedule(a);if(b&&typeof(b)==="function"){b()}},dayToArray:function(d){var a=d.split(",");var b=["0","0","0","0","0","0","0"];for(var c=0;c<a.length;c++){if(a[c]<=6||a[c]>=0){b[a[c]]="1"}}return b.join("")},choosedestHandler:function(c,a){var b;b=new SYNO.SDS.Utils.FileChooser.Chooser({owner:this.owner,usage:{type:"chooseDir"},superuser:true,treeFilter:function(e,d){if(d&&(d.spath==="/home"||d.spath==="/surveillance")){return false}return true},title:_T("common","choose"),folderToolbar:true,superUser:true,enumCluster:true,enumColdStorage:true,listeners:{scope:this,choose:this.onChooserSelect}}).show()},onChooserSelect:function(c,b){var a=b.path.substr(1);this.getForm().findField("report_location").setValue(a);c.close()},fillWebAPIParam:function(a){a.report_location=this.getForm().findField("report_location").getValue();if(a.report_location===undefined||a.report_location===""){this.owner.setStatusError({text:_T("common","forminvalid"),clear:true});return false}if(this.enable_schedule.getValue()){a.enable_schedule=true;a.week_day=this.dayToArray(Ext.getCmp(this.week_day).getValue());a.hour=Ext.getCmp(this.hour).getValue();a.minute=Ext.getCmp(this.minute).getValue()}else{a.enable_schedule=false}return true}});Ext.define("SYNO.SDS.StorageAnalyzer.UsageReport.SettingExtName",{extend:"Ext.form.FormPanel",names:["zip","image","video","audio","document","web","iso","exe"],constructor:function(b){this.owner=b.owner.owner;var c=[];Ext.each(this.names,function(d){c.push(this.createItem(d))},this);var a={autoScroll:true,layout:"form",border:false,defaults:{allowBlank:false},items:c};Ext.apply(a,b);this.callParent([a])},ckeckExtName:function(a){var b=new RegExp("^[a-z0-9-]+$");var d;if(!b.test(a)){d=SYNO.SDS.StorageAnalyzer._T("setting","ext_charset_not_fit");this.owner.getMsgBox().alert(SYNO.SDS.StorageAnalyzer._T("report","report_name"),d);return false}var c=true;Ext.each(this.names,function(f){var g=Ext.getCmp(this["reportUI_file_type_"+f+"_id"]);var e=Ext.getCmp(this["default_"+f+"_id"]).getValue().split(/[ ,]+/);if(g.hasValue(a)){c=false;d=String.format(SYNO.SDS.StorageAnalyzer._T("setting","ext_exist_customized"),a,SYNO.SDS.StorageAnalyzer._T("report","reportUI_file_type_"+f));this.owner.getMsgBox().alert(SYNO.SDS.StorageAnalyzer._T("report","report_name"),d);return}if(-1<e.indexOf(a)){c=false;d=String.format(SYNO.SDS.StorageAnalyzer._T("setting","ext_exist_system_default"),a,SYNO.SDS.StorageAnalyzer._T("report","reportUI_file_type_"+f));this.owner.getMsgBox().alert(SYNO.SDS.StorageAnalyzer._T("report","report_name"),d);return}},this);return c},onAddNewitem:function(b,a){a=a.trim().toLowerCase();var c=this.ckeckExtName(a);if(c&&a){b.addItem({ext:Ext.util.Format.htmlEncode(a)})}},onBeforeAddItem:function(b,a){a=a.trim().toLowerCase();return this.ckeckExtName(a)},createItem:function(a){this["default_"+a+"_id"]=Ext.id();this["reportUI_file_type_"+a+"_id"]=Ext.id();this[a+"Store"]=new Ext.data.ArrayStore({fields:["ext"]});var b={xtype:"syno_fieldset",title:SYNO.SDS.StorageAnalyzer._T("report","reportUI_file_type_"+a),width:590,collapsible:true,collapsed:true,items:[{xtype:"syno_displayfield",value:"",id:this["default_"+a+"_id"]},{xtype:"syno_displayfield",value:_T("common","customization")+" :"},{xtype:"syno_superboxselect",id:this["reportUI_file_type_"+a+"_id"],hideLabel:true,store:this[a+"Store"],mode:"local",width:570,allowAddNewData:true,addNewDataOnBlur:true,renderFieldBtns:false,displayField:"ext",valueField:"ext",grow:true,resizable:true,listeners:{scope:this,newitem:this.onAddNewitem,beforeadditem:this.onBeforeAddItem}}]};return b},updateDialog:function(a,b){Ext.each(this.names,function(d){var f="reportUI_file_type_"+d;if(a[f]){var e=a[f].split(",");var c=[];Ext.each(e,function(g){if(g!==""){c.push({ext:Ext.util.Format.htmlEncode(g)})}},this);Ext.getCmp(this[f+"_id"]).setValueEx(c)}f="default_"+d;if(a[f]){Ext.getCmp(this[f+"_id"]).setValue(_T("common","default")+" : "+a[f])}},this);if(b&&typeof(b)==="function"){b()}},fillWebAPIParam:function(a){Ext.each(this.names,function(b){var c="reportUI_file_type_"+b;a[c]=Ext.getCmp(this[c+"_id"]).getValue()},this);return true}});Ext.define("SYNO.SDS.StorageAnalyzer.UsageReport.SettingDialog",{extend:"SYNO.SDS.ModalWindow",constructor:function(b){this.outPanel=b.outPanel;this.owner=b.owner;this.PanelBasic=new SYNO.SDS.StorageAnalyzer.UsageReport.SettingBasic({owner:this,title:SYNO.SDS.StorageAnalyzer._T("report","edit_tab_basic"),editMode:true});this.PanelExtName=new SYNO.SDS.StorageAnalyzer.UsageReport.SettingExtName({owner:this,title:SYNO.SDS.StorageAnalyzer._T("report","reportUI_title_file_type"),editMode:true});this.SettingTabPanel=new SYNO.ux.TabPanel({title:SYNO.SDS.StorageAnalyzer._T("report","title_edit"),flex:1,activeTab:0,plain:true,items:[this.PanelBasic,this.PanelExtName]});var a={width:650,height:440,layout:"fit",resizable:false,title:SYNO.SDS.StorageAnalyzer._T("report","title_global_setting"),closable:true,items:[this.SettingTabPanel],buttons:[{xtype:"syno_button",btnStyle:"blue",text:_T("common","apply"),itemId:"apply",handler:this.onApply,scope:this},{xtype:"syno_button",btnStyle:"grey",text:_T("common","cancel"),itemId:"cancel",handler:this.onCancel,scope:this}],listeners:{scope:this,afterrender:function(){this.setStatusBusy({text:_T("common","loading")});this.sendWebAPI({api:"SYNO.Core.Report.Config",method:"get",version:1,scope:this,callback:function(e,d,c){if(e){this.updateDialog(d)}else{this.owner.getMsgBox().alert(SYNO.SDS.StorageAnalyzer._T("report","report_name"),_T("error","error_error_system"));this.close()}}})}}};Ext.apply(a,b);this.callParent([a])},updateDialog:function(c){var b=this.SettingTabPanel.items.getCount();var a;this.report_location_org=c.report_location;this.numOfUpdateFinish=0;for(a=b-1;a>=0;a--){this.SettingTabPanel.getItem(a).show();this.SettingTabPanel.getItem(a).updateDialog(c,this.updateDialogCallback.bind(this))}},updateDialogCallback:function(){this.numOfUpdateFinish=this.numOfUpdateFinish+1;if(this.numOfUpdateFinish===this.SettingTabPanel.items.getCount()){this.clearStatusBusy()}},setConfig:function(a){this.setStatusBusy({text:_T("common","saving")});this.sendWebAPI({api:"SYNO.Core.Report.Config",method:"set",version:1,params:a,scope:this,callback:function(e,c,b){this.clearStatusBusy();if(e){this.close();this.outPanel.addMask({text:_T("common","loading")})}else{var d=SYNO.SDS.StorageAnalyzer.Utils.getErrorString(c.code);this.getMsgBox().alert(SYNO.SDS.StorageAnalyzer._T("report","report_name"),d)}}})},onApply:function(){var d=this.SettingTabPanel.items.getCount();var c;var e={};var b;for(c=d-1;c>=0;c--){b=this.SettingTabPanel.items.get(c);var a={};if(!b.fillWebAPIParam(a)){return}Ext.apply(e,a)}if(typeof this.report_location_org==="string"&&this.report_location_org!==e.report_location){this.getMsgBox().confirm(SYNO.SDS.StorageAnalyzer._T("report","report_name"),SYNO.SDS.StorageAnalyzer._T("report","confirm_move_old_report"),function(f){if(f==="cancel"){}else{if(f==="yes"){e.move_report=true}this.setConfig(e)}},this,Ext.MessageBox.YESNOCANCEL)}else{this.setConfig(e)}},onCancel:function(){this.close()}});Ext.define("SYNO.SDS.StorageAnalyzer.UsageReport.HistoryDialog",{extend:"SYNO.SDS.ModalWindow",profile_id:null,profile_name:null,param:{},constructor:function(b){this.outPanel=b.outPanel;this.profile_id=b.profile_id;this.profile_name=b.profile_name;this.owner=b.owner;this.reportStore=new SYNO.API.JsonStore({api:"SYNO.Core.Report.History",method:"get",version:1,appWindow:this,baseParams:{id:this.profile_id},root:"histories",idProperty:"",fields:["profile_name","consumed_time","time","link"],sortInfo:{field:"time",direction:"DESC"}});this.reportList=new SYNO.ux.GridPanel({store:this.reportStore,columns:[{header:SYNO.SDS.StorageAnalyzer._T("report","title_profile"),sortable:true,dataIndex:"profile_name"},{header:SYNO.SDS.StorageAnalyzer._T("report","consumed_time"),sortable:true,dataIndex:"consumed_time",scope:this,renderer:this.consumedTimeRender},{header:SYNO.SDS.StorageAnalyzer._T("report","title_report"),sortable:true,dataIndex:"link",scope:this,renderer:this.getLink}],disableSelection:true,listeners:{scope:this,rowclick:this.onRowClick}});var a={width:600,height:520,layout:"fit",closable:true,title:SYNO.SDS.StorageAnalyzer._T("report","button_report_old_get"),items:this.reportList,buttons:[{xtype:"syno_button",btnStyle:"blue",text:_T("common","apply"),itemId:"apply",handler:function(){this.hide()},scope:this}]};Ext.apply(a,b);this.callParent([a]);this.setStatusBusy({text:_T("common","loading")});this.reportStore.load();this.clearStatusBusy()},onRowClick:function(a,c,d){var b=SYNO.SDS.StorageAnalyzer.UsageReport.Utils.CheckRelay(a.store.getAt(c).get("link"),this.outPanel);window.open(Ext.urlAppend(b),"_blank")},getLink:function(g){var f=g.split("/");var b=f[3].split("_");var a=b[0].replace(/-/g,"/");var e="";if(b[1]){e=b[1].replace(/-/g,":")}var h=String.format("{0} {1}",a,e);var d=Date.parseDate(h,"Y/n/j G:i:s");var c=SYNO.SDS.DateTimeFormatter?SYNO.SDS.DateTimeFormatter(d,{type:"datetimesec"}):h;return String.format("<a>{0}</a>",c)},consumedTimeRender:function(f){if(f===-1){return"-"}var a="";var c=0;var b=[{val:1,limit:60,str:_T("common","time_less_min")},{val:0,limit:60,str:" "+_T("common","time_minute"),strs:" "+_T("common","time_minutes")},{val:0,str:" "+_T("common","time_hour"),strs:" "+_T("common","time_hours")}];for(var e=0;e<b.length;++e){if(0<f){if(b[e].limit){b[e].val=f%b[e].limit;f/=b[e].limit;f=parseInt(f,10);c=e}else{b[e].val=f;c=e;break}}}if(c===0){a=b[c].str}else{var g=true;for(var d=c;d>0;--d){if(!g){a+=" "}g=false;if(b[d].val>1){a+=b[d].val+b[d].strs+" "}else{a+=b[d].val+b[d].str+" "}}}return a}});Ext.define("SYNO.SDS.StorageAnalyzer.UsageReport.EditDialog",{extend:"SYNO.SDS.ModalWindow",PanelProfile:null,PanelReportType:null,PanelSchedule:null,PanelShare:null,PanelOption:null,profile_name:null,param:{},constructor:function(b){this.outPanel=b.outPanel;this.profile_name=b.profile_name;this.id=b.id;this.owner=b.owner;this.record=b.record;this.PanelProfile=new SYNO.SDS.StorageAnalyzer.UsageReport.StepProfile({owner:this,title:SYNO.SDS.StorageAnalyzer._T("report","edit_tab_basic"),editMode:true,profile_name:this.profile_name});this.PanelReportType=new SYNO.SDS.StorageAnalyzer.UsageReport.StepReportType({owner:this,editMode:true,title:SYNO.SDS.StorageAnalyzer._T("report","edit_tab_report"),profile_name:this.profile_name});this.PanelSchedule=new SYNO.SDS.StorageAnalyzer.UsageReport.StepSchedule({owner:this,editMode:true,title:SYNO.SDS.StorageAnalyzer._T("report","edit_tab_schedule"),profile_name:this.profile_name});this.PanelShare=new SYNO.SDS.StorageAnalyzer.UsageReport.StepShare({owner:this,editMode:true,title:SYNO.SDS.StorageAnalyzer._T("report","title_share"),profile_name:this.profile_name});this.PanelOption=new SYNO.SDS.StorageAnalyzer.UsageReport.StepOption({owner:this,title:SYNO.SDS.StorageAnalyzer._T("report","edit_tab_options"),editMode:true,profile_name:this.profile_name});this.EditTabPanel=new SYNO.ux.TabPanel({title:SYNO.SDS.StorageAnalyzer._T("report","title_edit"),flex:1,activeTab:0,plain:true,items:[this.PanelProfile,this.PanelReportType,this.PanelSchedule,this.PanelShare,this.PanelOption]});var a={width:650,height:500,layout:"fit",title:SYNO.SDS.StorageAnalyzer._T("report","button_profile_edit"),closable:true,items:[this.EditTabPanel],buttons:[{xtype:"syno_button",btnStyle:"blue",text:_T("common","apply"),itemId:"apply",handler:this.onOk,scope:this},{xtype:"syno_button",btnStyle:"grey",text:_T("common","cancel"),itemId:"cancel",handler:this.onCancel,scope:this}],listeners:{scope:this,afterrender:function(){this.setStatusBusy({text:_T("common","loading")});this.sendWebAPI({api:"SYNO.Core.Report",method:"get",version:1,scope:this,params:{id:this.id},callback:function(e,d,c){if(e){this.updateDialog(d)}else{this.owner.getMsgBox().alert(SYNO.SDS.StorageAnalyzer._T("report","report_name"),_T("error","error_error_system"));this.hide()}}})}}};Ext.apply(a,b);this.callParent([a])},updateDialog:function(c){var b=this.EditTabPanel.items.getCount();var a;this.numOfUpdateFinish=0;for(a=b-1;a>=0;a--){this.EditTabPanel.getItem(a).show();this.EditTabPanel.getItem(a).updateDialog(c,this.updateDialogCallback.bind(this))}},updateDialogCallback:function(){this.numOfUpdateFinish=this.numOfUpdateFinish+1;if(this.numOfUpdateFinish===this.EditTabPanel.items.getCount()){this.clearStatusBusy()}},onOk:function(e){var b;var d=this.EditTabPanel.items.getCount();var a;var c=e===true?true:false;var f=false;for(a=0;a<d;a++){b=this.EditTabPanel.items.get(a);if(b.getForm().isDirty()){f=true}if(b.typeStore&&b.typeStore.getModifiedRecords().length>0){f=true}if(b.shareStore&&b.shareStore.getModifiedRecords().length>0){f=true}if(b.allcheckbox&&b.allcheckbox.isDirty()===true){f=true}if(b.getNext(c)===false){return false}for(var g in b.param){if(b.param.hasOwnProperty(g)){this.param[g]=b.param[g]}}}if(f===false){this.setStatusError({text:_T("error","nochange_subject")});return}this.param.id=this.id;if(this.record&&this.param.id!=this.param.profile_name){this.record.id=this.param.profile_name;this.record.set("id",this.record.id)}this.setStatusBusy({text:_T("common","saving")});this.sendWebAPI({api:"SYNO.Core.Report",method:"set",version:1,scope:this,params:this.param,callback:function(k,i,h){this.clearStatusBusy();if(k){}else{if(i.errors){var j=SYNO.SDS.StorageAnalyzer.Utils.getErrorString(i.code);if(4902===i.code){j=j+"("+i.errors.user+")"}this.getMsgBox().alert(SYNO.SDS.StorageAnalyzer._T("report","report_name"),j)}return}this.close();if(this.outPanel.addMask){this.outPanel.addMask({text:_T("common","loading")})}}})},onCancel:function(){this.close()}});Ext.define("SYNO.SDS.StorageAnalyzer.UsageReport.CtxMenu",{extend:"SYNO.ux.Menu",constructor:function(a){Ext.apply(this,a||{});var b=a.scope;this.itemEdit=new Ext.menu.Item({text:SYNO.SDS.StorageAnalyzer._T("report","button_profile_edit"),handler:b.onEdit,disabled:_S("demo_mode"),scope:b});this.itemDelete=new Ext.menu.Item({text:SYNO.SDS.StorageAnalyzer._T("report","button_profile_delete"),handler:b.onDelete,disabled:_S("demo_mode"),scope:b});this.itemGenerate=new Ext.menu.Item({text:SYNO.SDS.StorageAnalyzer._T("report","button_report_create_now"),handler:b.onGenerateReport,disabled:_S("demo_mode"),scope:b});this.itemHistory=new Ext.menu.Item({text:SYNO.SDS.StorageAnalyzer._T("report","button_report_old_get"),handler:b.onGetOldReport,scope:b});this.callParent([Ext.apply(a,{items:[this.itemEdit,this.itemDelete,"-",this.itemGenerate,this.itemHistory]})])},setMenuStatus:function(a){if(a==="collect_data"){this.itemEdit.setDisabled(true);this.itemGenerate.setDisabled(true)}else{this.itemEdit.setDisabled(false);this.itemGenerate.setDisabled(false)}},setEditMenuDisabled:function(a){this.itemEdit.setDisabled(a)},setGenerateMenuDisabled:function(a){this.itemGenerate.setDisabled(a)}});Ext.define("SYNO.SDS.StorageAnalyzer.UsageReport.Utils",{statics:{CheckRelay:function(g,c){var d=null;var b=0;var a=0;if(!Ext.isDefined(c)){return g}try{d=c.findAppWindow().openConfig.cms_ds_data}catch(f){return g}if(d){b=d.http_port;a=d.https_port;if(a===0){g="http://"+d.host+":"+b+g}else{g="https://"+d.host+":"+a+g}}return g}}});Ext.ns("SYNO.SDS.StorageAnalyzer");window.SYNO.SDS.StorageAnalyzer._T=function(c,a){try{return _TT("SYNO.SDS.StorageAnalyzer.Application",c,a)||_T(c,a)}catch(b){return _T(c,a)}};window.SYNO.SDS.StorageAnalyzer.ErrorString={4900:_T("error","error_invalid"),4901:_T("error","error_error_system"),4902:_T("user","no_such_user"),4903:SYNO.SDS.StorageAnalyzer._T("report","err_dest_share_not_exist"),4904:_T("error","error_file_exist"),4905:_T("error","error_space_not_enough"),4907:SYNO.SDS.StorageAnalyzer._T("report","err_folder_already_exist")};Ext.define("SYNO.SDS.StorageAnalyzer.Utils",{statics:{getErrorString:function(a){if(!Ext.isNumber(a)){return _T("error","error_error")}if(a<400){return SYNO.API.getErrorString(a)}if(a in SYNO.SDS.StorageAnalyzer.ErrorString){return SYNO.SDS.StorageAnalyzer.ErrorString[a]}else{return _T("error","error_error")}},OpenGlobalSetting:function(a,c,b){this.OpenDialog(SYNO.SDS.StorageAnalyzer.UsageReport.SettingDialog,a,c,b)},OpenProfileWizard:function(a,c,b){this.OpenDialog(SYNO.SDS.StorageAnalyzer.UsageReport.ProfileWizard,a,c,b)},OpenEditDialog:function(a,c,b){this.OpenDialog(SYNO.SDS.StorageAnalyzer.UsageReport.EditDialog,a,c,b)},OpenHistoryDialog:function(a,c,b){this.OpenDialog(SYNO.SDS.StorageAnalyzer.UsageReport.HistoryDialog,a,c,b)},OpenDialog:function(b,a,f,d){var e=b;var c=new e(a);if(Ext.isDefined(f)){c.on("hide",f,d||this)}c.open();c=null},CreateFileRangeStore:function(a){return new Ext.data.SimpleStore({autoDestroy:true,fields:["value","display"],data:[["any",SYNO.SDS.StorageAnalyzer._T("report","search_any")],[(a!==undefined)?a+"_gt":"size_gt",SYNO.SDS.StorageAnalyzer._T("report","size_greater")],[(a!==undefined)?a+"_lt":"size_lt",SYNO.SDS.StorageAnalyzer._T("report","size_less")]]})},CreateUnitStore:function(){return new Ext.data.SimpleStore({autoDestroy:true,fields:["value","display"],data:[["MB","MB"],["GB","GB"],["TB","TB"]]})},CreateRangeFilter:function(a){return new SYNO.ux.ComboBox(Ext.apply({editable:false,mode:"local",store:(a.filterPrefix!==undefined)?this.CreateFileRangeStore(a.filterPrefix):this.CreateFileRangeStore(),displayField:"display",valueField:"value",triggerAction:"all",value:"any",tpl:'<tpl for="."><div class="x-combo-list-item" ext:qtip="{display}">{display}</div></tpl>',width:175},a))},CreateUnitFilter:function(a){return new SYNO.ux.ComboBox(Ext.apply({width:58,displayField:"display",valueField:"value",value:"MB",store:this.CreateUnitStore(),disabled:true},a))},ColorArray:["#0086E5","#32B7F9","#FA575D","#FA9200","#FABB00","#1CA600","#99CC00","#B06DF2","#1DBF89","#BF9E7C"],fileSizeRenderer:function(c,b){var a=Ext.util.Format.htmlEncode(Ext.util.Format.fileSize(c));b.attr='ext:qtip="'+Ext.util.Format.htmlEncode(a)+'"';return a},timeRenderer:function(d,c){var e=new Date(d*1000);var b=SYNO.SDS.DateTimeFormatter?SYNO.SDS.DateTimeFormatter(e,{type:"datetimesec"}):e.toLocaleString();var a=Ext.util.Format.htmlEncode(b);c.attr='ext:qtip="'+Ext.util.Format.htmlEncode(a)+'"';return a}}});Ext.define("SYNO.SDS.StorageAnalyzer.QuickTip",{extend:Ext.QuickTip,tagConfig:{namespace:"",attribute:"synoqtip",width:"qwidth",target:"target",title:"qtitle",hide:"hide",cls:"qclass",align:"qalign",anchor:"anchor"}});SYNO.SDS.StorageAnalyzer.QuickTips=function(){var b,a=false;return{init:function(c){if(!b){if(!Ext.isReady){Ext.onReady(function(){SYNO.SDS.StorageAnalyzer.QuickTips.init(c)});return}b=new SYNO.SDS.StorageAnalyzer.QuickTip({elements:"header,body",disabled:a});if(c!==false){b.render(Ext.getBody())}}},ddDisable:function(){if(b&&!a){b.disable()}},ddEnable:function(){if(b&&!a){b.enable()}},enable:function(){if(b){b.enable()}a=false},disable:function(){if(b){b.disable()}a=true},isEnabled:function(){return b!==undefined&&!b.disabled},getQuickTip:function(){return b},register:function(){b.register.apply(b,arguments)},unregister:function(){b.unregister.apply(b,arguments)},tips:function(){b.register.apply(b,arguments)}}}();Ext.define("SYNO.SDS.StorageAnalyzer.Chart",{extend:"Ext.BoxComponent",d3:SYNO.SDS.DataDrivenDocuments.DrawHelper,constructor:function(){var b=this,a=b.svgConfig||{width:b.width,height:b.height};b.svgWidth=Ext.isNumber(a.width)?a.width:"100%";b.svgHeight=Ext.isNumber(a.height)?a.height:"100%";b.svgMargins=b.svgConfig&&b.svgConfig.margin?b.svgConfig.margin:{top:18,bottom:26,left:35,right:20};b.callParent(arguments)},innerFormatValue:function(a){return Ext.isNumber(a)?a:0},onRender:function(b,a){var d=this,c=this.d3;d.callParent(arguments);d.svg=c.select("#"+d.id).append("svg").attr("width",d.svgWidth).attr("height",d.svgHeight);d.svgGraphic=d.svg.append("g").attr("transform","translate("+d.innerFormatValue(d.svgMargins.left)+","+d.innerFormatValue(d.svgMargins.top)+")")},afterRender:function(){var a=this;a.callParent(arguments);a.loadData()},onResize:function(e,c,a,d){var b=this;b.callParent(arguments);b.draw()},loadData:Ext.emptyFn,draw:Ext.emptyFn});Ext.define("SYNO.SDS.StorageAnalyzer.VolumeUsage.BarChart",{extend:"SYNO.SDS.StorageAnalyzer.Chart",paddingX:4,cls:"volume-usage-bar-chart",svgConfig:{margin:{top:18,bottom:26,left:70,right:25}},loadData:function(b){if(!Ext.isDefined(b)){return}var a=this;a.innerData=b.analyses&&b.analyses.length>0?b.analyses[b.analyses.length-1].volumes:[];a.draw(a.innerData)},draw:function(s){var r=this,q=this.d3,j,h=r.svgMargins,k=r.getWidth()-r.innerFormatValue(h.left)-r.innerFormatValue(h.right),i=r.getHeight()-r.innerFormatValue(h.top)-r.innerFormatValue(h.bottom);s=s||r.innerData;if(!s){return}if(r.svgGraphic){r.svgGraphic.remove()}r.svgGraphic=r.svg.append("g").attr("transform","translate("+r.innerFormatValue(r.svgMargins.left)+","+r.innerFormatValue(r.svgMargins.top)+")");j=r.svgGraphic;var g=q.scale.linear().range([0+r.paddingX,k]);var f=q.scale.ordinal().rangeRoundBands([0,i],0.1);var c=["#0086E5","#FABB00","#1CA600","#FA575D","#32B7F9","#FA9200","#99CC00","#B06DF2","#1DBF89","#BF9E7C"];var l=q.scale.ordinal().range(c);var n=q.max(s,function(t){return t.size_used}),p=1024*1024*1024,o=Math.max(Math.floor(n/p/4),1)*p||n;var e=q.svg.axis().innerTickSize([4]).tickPadding([4]).outerTickSize([0]).tickFormat(function(u,t){if(t===0){return"0"}return Ext.util.Format.fileSize(u)}).scale(g).orient("bottom").tickValues(q.range(0,n,o));var a=q.svg.axis().innerTickSize([0]).outerTickSize([0]).tickPadding([5]).scale(f).orient("left").tickFormat(function(u,t){return SYNO.SDS.Utils.StorageUtils.VolumeNameRenderer(u)});l.domain(s.map(function(t){return t.name}));g.domain([0,q.max(s,function(t){return t.size_used})]);f.domain(s.map(function(t){return t.name}));j.append("g").attr("class","x axis").attr("transform","translate(0,"+i+")").call(e);j.append("g").attr("class","y axis").call(a);r.drawGrid(j,{width:k,height:i,x:g,y:f,maxUsed:n,interval:o});if(!this.tooltip){this.tooltip=r.el.createChild({cls:"tooltip"})}var b=this.tooltip;var d=Math.min(40,f.rangeBand()),m=(f.rangeBand()-d)/2;j.selectAll(".bar").data(s).enter().append("rect").attr("class","bar").attr("x",r.paddingX).attr("y",function(t){return f(t.name)+m}).attr("height",d).attr("fill",function(t){return l(t.name)}).attr("width",function(t){return Math.abs(g(t.size_used)-g(0))});j.selectAll(".bar").on("mouseover",function(t){b.update(Ext.util.Format.fileSize(t.size_used)).addClass("show").setStyle({left:(r.innerFormatValue(h.left)+8)+"px",top:(r.innerFormatValue(h.top)+f(t.name)+m+d/2-24/2)+"px"})}).on("mouseout",function(t){b.removeClass("show")});j.select(".y.axis").selectAll(".tick").data(s).on("mouseover",function(t){b.update(t.description).addClass("show").setStyle({left:(r.innerFormatValue(h.left)+8)+"px",top:(r.innerFormatValue(h.top)+f(t.name)+m+d/2-24/2)+"px"})}).on("mouseout",function(t){b.removeClass("show")})},drawGrid:function(a,b){var d=this,c=d.d3,e=c.svg.axis().scale(b.x).orient("bottom");a.append("g").attr("class","grid").attr("transform","translate(0,"+b.height+")").call(e.innerTickSize([-b.height]).tickPadding([0]).outerTickSize([0]).tickFormat("").tickValues(c.range(0,b.maxUsed,b.interval)))},destroy:function(){var a=this;if(a.tooltip){Ext.destroy(a.tooltip)}a.callParent(arguments)}});Ext.define("SYNO.SDS.StorageAnalyzer.VolumeUsage.InfoPanel",{extend:"Ext.BoxComponent",constructor:function(a){var b=this;a=Ext.apply(a,{baseCls:"volume-usage-info"});b.callParent(arguments)},onRender:function(c,a){var d=this,b=new Ext.Template('<div class="{cls}">','<div><span class="color"></span><div class="title selectabletext"></div></div>','<div class="x-clear"></div>','<div class="wrap">','<div class="chart"></div>','<div class="content selectabletext">','<div class="name"></div>','<div class="description"></div>','<div class="used"></div>','<div class="available"></div>','<div class="capacity"></div>',"</div>",'<div class="x-clear"></div>',"</div>","</div>");var e={width:96,height:96,radius:48,gradientWidth:16,canvasConfig:{height:96,width:96}};d.el=a?b.insertBefore(a,{cls:d.baseCls},true):b.append(c,{cls:d.baseCls},true);if(d.id){d.el.dom.id=d.id}d.chart=d.el.child("div.chart");d.chart=new SYNO.SDS.Utils.canvas.ColorCircleGradient(Ext.apply(e,{renderTo:d.chart,value:0}));d.titleComponent=d.el.child("div.title");d.colorComponent=d.el.child("span.color");d.nameComponent=d.el.child("div.name");d.descComponent=d.el.child("div.description");d.usedComponent=d.el.child("div.used");d.availableComponent=d.el.child("div.available");d.capacityComponent=d.el.child("div.capacity");d.callParent(arguments)},getTotalSizeDispalyString:function(a){return String.format("{0}{1} {2}",_T("volume","volume_totalsize"),_T("common","colon"),a||0)},getFreeSizeDispalyString:function(a){return String.format("{0}{1} {2}",_T("volume","volume_freesize"),_T("common","colon"),a||0)},getUsedSizeDispalyString:function(a){return String.format("{0}{1} {2}",_T("volume","volume_usedsize"),_T("common","colon"),a||0)},afterRender:function(){var a=this;a.callParent(arguments);a.titleComponent.update("Date");a.nameComponent.update("");a.descComponent.update("");a.usedComponent.update(a.getUsedSizeDispalyString(0));a.availableComponent.update(a.getFreeSizeDispalyString(0));a.capacityComponent.update(a.getTotalSizeDispalyString(0))},loadData:function(b){var a=this;a.chart.draw(Ext.isNumber(b.percentage)?b.percentage:parseFloat(b.percentage));a.colorComponent.setStyle({background:b.color});a.titleComponent.update(b.date);a.nameComponent.update(b.name||"");a.descComponent.update(b.description||"");a.usedComponent.update(a.getUsedSizeDispalyString(b.used));a.availableComponent.update(a.getFreeSizeDispalyString(b.available));a.capacityComponent.update(a.getTotalSizeDispalyString(b.total))},showAt:function(b){var a=this;b=a.el.adjustForConstraints(b);a.el.setXY(b);if(a.runHideTask){a.runHideTask.cancel()}a.el.show();a.el.addClass("show")},hideByOpacity:function(){var a=this;a.el.removeClass("show");a.runTask("runHideTask",a.delayedHide,300)},delayedHide:function(){this.el.hide()},destroy:function(){this.removeDelayedTask("runHideTask");this.callParent(arguments)}});Ext.define("SYNO.SDS.StorageAnalyzer.VolumeUsage.LineChart",{extend:"SYNO.SDS.StorageAnalyzer.Chart",cls:"volume-usage-line-chart",paddingX:4,pointerOffset:[20,20],svgConfig:{margin:{top:18,bottom:26,left:40,right:25}},loadData:function(e){if(!Ext.isDefined(e)){return}var c=this,b=this.d3,f=b.time.format("%Y%m%d%H%M").parse,d="",a=[];c.innerData=e.analyses;Ext.each(c.innerData,function(g){g.date=f(new Date(g.time*1000).format("YmdHi"));Ext.each(g.volumes,function(h){d=h.name.replace("/","");g[d]={percentage:(h.size_used/h.size_total).toFixed(5),size_used:h.size_used,size_total:h.size_total,description:h.description};if(a.indexOf(d)===-1){a.push(d)}},c)},c);c.innerData.volumeNames=a;c.draw(c.innerData)},getVolumeDataArray:function(c,a){var b=[];Ext.each(c,function(e){if(Ext.isDefined(e[a])){b.push({date:e.date,name:a,description:e[a].description,percentage:e[a].percentage,size_used:e[a].size_used,size_total:e[a].size_total})}},this);return b},draw:function(w){var v=this,u=this.d3,k,i=v.svgMargins,l=v.getWidth()-v.innerFormatValue(i.left)-v.innerFormatValue(i.right),j=v.getHeight()-v.innerFormatValue(i.top)-v.innerFormatValue(i.bottom);w=w||v.innerData;if(!w){return}if(v.svgGraphic){v.svgGraphic.remove()}v.svgGraphic=v.svg.append("g").attr("transform","translate("+v.innerFormatValue(v.svgMargins.left)+","+v.innerFormatValue(v.svgMargins.top)+")");k=v.svgGraphic;var f=u.time.scale().range([0+v.paddingX,l]);var d=u.scale.linear().range([j,0]);var b=SYNO.SDS.StorageAnalyzer.Utils.ColorArray;var m=u.scale.ordinal().range(b);var c=u.svg.axis().innerTickSize([4]).tickPadding([4]).outerTickSize([0]).tickFormat(function(y,x){return new Date(y).format("m/d")}).scale(f).orient("bottom").ticks(u.time.day,1);var g=u.svg.line().x(function(x){return f(x.date)}).y(function(x){return d(x.percentage)});m.domain(w.volumeNames);var p=m.domain().map(function(x){return{name:x,values:v.getVolumeDataArray(w,x)}});f.domain(u.extent(w,function(x){return x.date}));var e=u.min(p,function(x){return u.min(x.values,function(y){return y.percentage})}),s=u.max(p,function(x){return u.max(x.values,function(y){return y.percentage})}),t=Math.floor((s-e)*100/4)/100||Math.ceil(s*100/5)*5/100,r=(e===s)?0:Math.floor(e/t)*t,q=Math.min(Math.ceil(s/t)*t,1)+0.00001;var o=function(y){return Math.ceil(y*100)+"%"};var a=u.svg.axis().innerTickSize([0]).outerTickSize([0]).tickPadding([5]).tickFormat(o).scale(d).orient("left").tickValues(u.range(r,q,t));d.domain([r,q]);k.append("g").attr("class","x axis").attr("transform","translate(0,"+j+")").call(c);k.append("g").attr("class","y axis").call(a);v.drawGrid(k,{width:l,height:j,x:f,y:d,minY:r,maxPercentage:q,interval:t});v.createCircle(k,{volumes:p,color:m});var h=function(){var x=f.invert(u.mouse(this)[0]);v.circles.attr("transform",function(C){var z,A,y,B=0;Ext.each(C.values,function(E,D){var F=Math.abs(x-E.date);if(!Ext.isDefined(A)||(A>=F)){z=E.date;A=F;y=D}});this.volumeData=Ext.isDefined(y)?C.values[y]:{};B=Ext.isDefined(y)?d(C.values[y].percentage):999999;return"translate("+f(z)+","+B+")"})};var n=k.selectAll(".volume").data(p).enter().insert("g",".focus").attr("class","volume");n.append("path").attr("class","line").attr("d",function(x){return g(x.values)}).style("stroke",function(x){return m(x.name)});v.overlay=n.append("rect").attr("class","overlay").attr("transform","translate(-5, -5)").attr("width",l+10).attr("height",j+10).on("mouseover",v.onMouseOver.createDelegate(v)).on("mouseout",v.onMouseOut.createDelegate(v)).on("mousemove",h)},createCircle:function(e,a){var g=this,d=g.appWin,b=a.color,h=a.volumes,i=this.getInfoPanel(),j=e.append("g").attr("class","focus"),c=g.pointerOffset;var f=function(){var n=Ext.fly(this).getXY(),k=this.volumeData,l=d.getEl().getZIndex();if(!Ext.isObject(k)){return}var m={percentage:k.percentage,total:Ext.util.Format.fileSize(k.size_total),name:SYNO.SDS.Utils.StorageUtils.VolumeNameRenderer(k.name),description:Ext.util.Format.htmlEncode(k.description),available:Ext.util.Format.fileSize(k.size_total-k.size_used),date:new Date(k.date).format("Y-m-d H:i"),used:Ext.util.Format.fileSize(k.size_used),color:Ext.fly(this).getAttribute("fill")};i.getEl().setStyle("z-index",Ext.isNumber(l)?l+5:2147483647);i.loadData(m);i.showAt([n[0]+c[0],n[1]+c[1]]);this.volumeData=null};g.focus=j;g.circles=j.selectAll("circle").data(h).enter().append("circle");g.circles.attr("class","circle").attr("r",4).attr("fill",function(k){return b(k.name)}).on("mouseover",f).on("mouseout",g.onMouseOutDot.createDelegate(g))},getInfoPanel:function(){var a=this;if(!a.infoPanel){a.infoPanel=new SYNO.SDS.StorageAnalyzer.VolumeUsage.InfoPanel({renderTo:Ext.getBody()});a.infoPanel.getEl().hide()}return a.infoPanel},drawGrid:function(b,c){var e=this,d=e.d3,a=d.svg.axis().scale(c.y).orient("left");b.append("g").attr("class","grid").attr("transform","translate("+e.paddingX+", 0)").call(a.tickSize(-c.width+e.paddingX,0,0).tickFormat("").tickValues(d.range(c.minY,c.maxPercentage,c.interval)))},onMouseOutDot:function(){this.getInfoPanel().hideByOpacity()},onMouseOut:function(){this.focus.classed("show",false)},onMouseOver:function(){this.focus.classed("show",true)},destroy:function(){var a=this;if(a.infoPanel){a.infoPanel.destroy();a.infoPanel=null}a.callParent(arguments)}});Ext.define("SYNO.SDS.StorageAnalyzer.UsageReport.VolumeUsage.Grid",{extend:"SYNO.ux.GridPanel",constructor:function(a){var b=this;b.callParent([b.fillConfig(a)])},fillConfig:function(a){var c=this;var b={cls:"volume-usage-grid",store:c.createStore(),colModel:c.getCM(),disableSelection:true,view:new SYNO.ux.FleXcroll.grid.BufferView({trackResetOnLoad:false,cacheSize:20,scrollDelay:false}),listeners:{scope:this,activate:{fn:function(){this.getView().updateScroller()}}}};Ext.apply(b,a);return b},createStore:function(){return new Ext.data.Store({proxy:new Ext.data.MemoryProxy([]),reader:new Ext.data.JsonReader({root:"volumes",id:"name"},["name","size_total","size_used","description"]),autoDestroy:true,remoteSort:false})},getCM:function(){if(this.cm){return this.cm}var a=new Ext.grid.ColumnModel({columns:[{header:SYNO.SDS.StorageAnalyzer._T("report","reportUI_title_volume"),dataIndex:"name",width:50,align:"left",renderer:this.volumeNameRenderer},{header:_T("share","share_comment"),dataIndex:"description",width:50,align:"left",renderer:this.volumeDescRenderer},{header:_T("status","status_disk_total_size"),dataIndex:"size_total",width:50,renderer:this.fileSizeRender},{header:SYNO.SDS.StorageAnalyzer._T("report","reportUI_title_used"),dataIndex:"size_used",width:50,renderer:this.fileSizeRender},{header:SYNO.SDS.StorageAnalyzer._T("report","reportUI_title_percent"),width:100,renderer:this.percentageRender}],defaults:{sortable:true,menuDisabled:true}});this.cm=a;return a},volumeNameRenderer:function(f,e,a,g,d,b){var c=Ext.util.Format.htmlEncode(SYNO.SDS.Utils.StorageUtils.VolumeNameRenderer(f));e.attr='ext:qtip="'+Ext.util.Format.htmlEncode(c)+'"';return c},volumeDescRenderer:function(f,e,a,g,d,b){var c=Ext.util.Format.htmlEncode(f);e.attr='ext:qtip="'+Ext.util.Format.htmlEncode(c)+'"';return c},fileSizeRender:function(f,e,a,g,d,b){var c=Ext.util.Format.htmlEncode(Ext.util.Format.fileSize(f));e.attr='ext:qtip="'+Ext.util.Format.htmlEncode(c)+'"';return c},percentageRender:function(e,c,b,d,h,g){var i=b.get("size_total")===0?"-":(Math.min(b.get("size_used")/b.get("size_total"),1)*100).toFixed(2)+"%",f=Ext.util.Format.htmlEncode(i),a=Ext.util.Format.htmlEncode(f);c.attr='ext:qtip="'+a+'"';return String.format('<div class="percentage-wrapper" ext:qtip="{1}"><div class="percentage-outer" ext:qtip="{1}"><div class="percentage-inner" ext:qtip="{1}" style="width:{0}"></div></div><span class="blue-status" ext:qtip="{1}">{0}</span></div>',f,a)},loadData:function(c){var b=this,a=c.analyses||[];b.getStore().loadData(a.length>0?a[0]:{volumes:[]})}});Ext.ns("SYNO.SDS.StorageAnalyzer");SYNO.SDS.StorageAnalyzer.PathBar=Ext.extend(Ext.util.Observable,{constructor:function(a){this.init(a.webfm);SYNO.SDS.StorageAnalyzer.PathBar.superclass.constructor.apply(this,arguments);this.addEvents("updatepath")},init:function(a){this.webfm=a;this.tbPanel=new SYNO.SDS.StorageAnalyzer.PathButtonsPanel({cls:"ux-pathtoolbar",webfm:this.webfm});return this},addPathButton:function(f,e,b,c,d,a){return this.tbPanel.addButton(f,e,b,c,d,a,this.webfm)},updatePathButton:function(e,d,b,c,a){return this.tbPanel.updateButton(e,d,b,c,a)},addPathButtons:function(c){var b=Math.max(this.tbPanel.items.length,c.length);var d=c.length-1;for(var a=0;a<b;a++){if(a<this.tbPanel.items.length&&a<c.length){this.updatePathButton(a,c[a].text,c[a].tooltip,c[a].path,a===d)}else{if(a<c.length){this.addPathButton(this.tbPanel.items.length,c[a].text,c[a].tooltip,c[a].path,a===0,a===d)}else{this.removePathButtons(a,b);break}}}this.tbPanel.setActiveButton(this.tbPanel.items[this.tbPanel.items.length-1]);this.fireEvent("updatepath",this)},removePathButtons:function(b,a){this.tbPanel.removeButtons(b,a)},setWidth:function(a){this.tbPanel.setWidth(a)}});SYNO.SDS.StorageAnalyzer.PathButtonsPanel=Ext.extend(Ext.BoxComponent,{activeButton:null,enableScroll:true,scrollRepeatInterval:400,scrollDuration:0.35,buttonWidthSet:false,allowDomMove:false,onRender:function(){SYNO.SDS.StorageAnalyzer.PathButtonsPanel.superclass.onRender.call(this,arguments);this.mon(this,"resize",this.delegateUpdates);this.items=[];this.selMenu=new SYNO.ux.Menu({items:[],listeners:{click:{fn:function(b,a){if(undefined!==a.path){this.webfm.onGoToPathWithDir(a.path)}},scope:this}}});this.stripWrap=Ext.get(this.el).createChild({cls:"ux-pathbuttons-strip-wrap",cn:{tag:"ul",cls:"ux-pathbuttons-strip"}});this.stripSpacer=Ext.get(this.el).createChild({cls:"ux-pathbuttons-strip-spacer"});this.strip=new Ext.Element(this.stripWrap.dom.firstChild);this.edge=this.strip.createChild({tag:"li",cls:"ux-pathbuttons-edge"});this.strip.createChild({cls:"x-clear"})},addButton:function(d,f,i,h,c,g,b){var e=this.strip.createChild({tag:"li"},this.edge);var a=new SYNO.SDS.StorageAnalyzer.PathBar.PathButton(e,d,f,i,h,c,g,b);this.items.push(a);if(!this.buttonWidthSet){this.lastButtonWidth=a.container.getWidth()}this.addManagedComponent(a);return a},updateButton:function(f,e,c,d,b){var a=this.items[f];a.updateButton(e,c,d,b)},removeButtons:function(f,e){var a;var c;for(var b=f;b<e;b++){c=this.items[b];a=document.getElementById(c.container.id);this.removeManagedComponent(c);c.destroy();a.parentNode.removeChild(a)}var d=[];for(b=0;b<f;b++){d.push(this.items[b])}this.items=d;this.delegateUpdates()},setActiveButton:function(a){this.activeButton=a;this.delegateUpdates()},delegateUpdates:function(){if(this.enableScroll&&this.rendered){this.autoScroll()}},autoScroll:function(){var f=this.items.length;var c=this.el.dom.clientWidth;var d=this.stripWrap;var b=d.dom.offsetWidth;var g=this.getScrollPos();var a=this.edge.getOffsetsTo(this.stripWrap)[0]+g;if(!this.enableScroll||f<1||b<20){return}d.setWidth(c);var e=(this.items.length==1);if(a<=c||e){d.dom.scrollLeft=0;if(this.showSelBtn){this.showSelBtn=false;this.el.removeClass("x-pathbuttons-selection-btn-displayed");this.menuBtn.hide()}}else{if(!this.showSelBtn){this.el.addClass("x-pathbuttons-selection-btn-displayed")}c-=d.getMargins("lr");d.setWidth(c>20?c:20);if(!this.showSelBtn){if(!this.menuBtn){this.createMenuBtn()}else{this.menuBtn.show()}}this.showSelBtn=true;this.updateScrollandSelMenu()}},createMenuBtn:function(){var b=this.el.dom.offsetHeight;var a=this.el.insertFirst({cls:"ux-pathbuttons-selection-btn"});a.setHeight(b);a.addClassOnOver("ux-pathbuttons-selection-btn-over");a.addClassOnClick("ux-pathbuttons-selection-btn-click");this.leftRepeater=new Ext.util.ClickRepeater(a,{interval:this.scrollRepeatInterval,handler:this.onShowMenu,scope:this});this.menuBtn=a},onShowMenu:function(){var c=this.menuBtn.getXY();var a=-5,b=28;if(this.selMenu.isVisible()){this.selMenu.hide()}else{this.selMenu.showAt([c[0]+a,c[1]+b])}},getScrollPos:function(){return parseInt(this.stripWrap.dom.scrollLeft,10)||0},updateScrollandSelMenu:function(){var c=6+8;var l=this.items.length;var a=l-1;var d=0;var m=this.stripWrap.getWidth();var b;for(var f=a;f>=0;f--){b=this.items[f].el.child(".ux-pathbutton-center");d+=b.getWidth()+c;if(d>m){break}}if(f==a){f-=1}this.selMenu.removeAll();for(var e=0;e<=f;e++){this.selMenu.addItem({path:this.items[e].path,text:Ext.util.Format.htmlDecode(this.items[e].text),cls:(e===0)?"storage-report-dataview-first-menu-item":""})}var k=this.items[f+1];var g=this.stripWrap.dom.scrollLeft;var h=k.el.getOffsetsTo(this.stripWrap)[0]+g;this.stripWrap.scrollTo("left",h-c)}});SYNO.SDS.StorageAnalyzer.PathBar.PathButton=function(a,e,f,j,i,d,g,c){this.webfm=c;var b=d?this.firstBtnCls:"";var h=g?this.lastBtnCls:"";SYNO.SDS.StorageAnalyzer.PathBar.PathButton.superclass.constructor.call(this,{text:f,itemId:e,renderTo:a,tooltip:j,clickEvent:"mousedown",tabIndex:-1,listeners:{click:{fn:function(){var k=this.getPath();if(undefined!==k){this.webfm.onGoToPathWithDir(k)}},scope:this}},template:new Ext.Template('<table cellspacing="0" class="x-btn '+b+" "+h+' {3}"><tbody><tr>','<td class="ux-pathbutton-left"></td>','<td class="ux-pathbutton-center"><em class="{5} unselectable="on">','<button class="x-btn-text {2}" type="{1}" style="height:18px;">{0}</button>',"</em></td>",'<td class="ux-pathbutton-right"></td>',"</tr></tbody></table>")});this.setPath(i)};Ext.extend(SYNO.SDS.StorageAnalyzer.PathBar.PathButton,Ext.Button,{firstBtnCls:"x-first-btn",lastBtnCls:"x-last-btn",setPath:function(a){this.path=a},getPath:function(){return this.path},updateButton:function(d,b,c,a){this.setPath(c);this.setText(d);this.setTooltip(b);if(a){this.addClass(this.lastBtnCls)}else{this.removeClass(this.lastBtnCls)}}});Ext.define("SYNO.SDS.StorageAnalyzer.DetailView.Panel",{extend:"SYNO.ux.Panel",constructor:function(a){var b={tbar:this.createTopToolBar(a.tbarConfig),listeners:{activate:this.onActivate,deactivate:this.onDeactivate,afterlayout:function(){if(this.pathBar){var c=this.pathBar.tbPanel.getEl();c.setStyle("overflow","hidden")}},scope:this}};Ext.apply(b,a);this.callParent([b])},getTimeVersion:function(a){return this.appWin.detailView.timeVersion[a]},getTimeLine:function(){return this.appWin.detailView.timeLine},getRecord:function(){return this.appWin.detailView.record},createTopToolBar:function(b){if(!b){return null}var a=[];if(b.pathBar===true){this.pathBar=new SYNO.SDS.StorageAnalyzer.PathBar({webfm:this});this.pathBar.setWidth(600);a.push(this.pathBar.tbPanel)}if(b.optFilter){if(Ext.isObject(b.optFilter)){a.push(b.optFilter)}else{if(Ext.isArray(b.optFilter)){a.concat(b.optFilter)}}}if(b.fileSizeFilter){if(Ext.isArray(b.fileSizeFilter)){a.concat(b.fileSizeFilter)}else{if(Ext.isBoolean(b.fileSizeFilter)){this.rangeField=SYNO.SDS.StorageAnalyzer.Utils.CreateRangeFilter({filterPrefix:b.rangeFiltePrefix,listeners:{select:function(d){var c=d.getValue()==="any";if(c){this.numField.reset()}this.numField.setDisabled(c);this.quotaUnitField.setDisabled(c);this.filterResult()},scope:this}});this.numField=new SYNO.ux.NumberField({width:45,vtype:"number",enableKeyEvents:true,disabled:true,maxValue:Math.pow(2,13),validationEvent:"keyup",listeners:{keyup:{buffer:300,fn:function(){if(this.numField.getValue()<=this.numField.maxValue){this.filterResult()}},scope:this}}});this.quotaUnitField=SYNO.SDS.StorageAnalyzer.Utils.CreateUnitFilter({listeners:{select:function(){this.filterResult()},scope:this}});a.push(this.rangeField);a.push(this.numField);a.push(this.quotaUnitField)}}}if(b.shareFilter){if(Ext.isObject(b.shareFilter)){this.shareField=b.shareFilter}else{if(Ext.isBoolean(b.shareFilter)){this.shareField=new SYNO.ux.ComboBox({width:175,displayField:"display",valueField:"value",value:"all_shares",tpl:'<tpl for="."><div class="x-combo-list-item" ext:qtip="{display}">{display}</div></tpl>',store:new Ext.data.ArrayStore({fields:["value","display","sortable"],data:[["all_shares",_T("common","show_all"),0]]}),listeners:{select:function(){this.filterResult()},scope:this}})}}a.push(this.shareField)}if(b.recycleFilter===true){this.recycleFilter=new Ext.menu.CheckItem({text:SYNO.SDS.StorageAnalyzer._T("report","exclude_recycle"),checked:false,hideOnClick:false,getValue:function(){return this.checked},checkHandler:this.filterResult.createDelegate(this)});this.toolBtn=new SYNO.ux.Button({text:"",cls:"storage-report-toolbtn",menu:new SYNO.ux.Menu({hideOnClick:false,cls:"syno-ux-groupcheck-menu",items:this.recycleFilter})});a.push(this.toolBtn)}if(Ext.isObject(b.customItem)){a.push(b.customItem)}if(a.length===0){return null}return{xtype:"syno_toolbar",cls:"toolbar-with-no-border",items:[{xtype:"syno_compositefield",hideLabel:true,defaultMargins:"0 8 0 0",itemId:"filter_options",items:a}]}},sortShareField:function(){this.shareField.store.multiSort([{field:"sortable",direction:"ASC"},{field:"display",direction:"ASC"}])},adjustToFileSize:function(a){a=a||0;switch(this.quotaUnitField.getValue()){case"MB":a=a*1024*1024;break;case"GB":a=a*1024*1024*1024;break;case"TB":a=a*1024*1024*1024*1024;break}return a},resetAllFields:function(){var a=this.tbarConfig;if(a.optFilter){if(Ext.isObject(a.optFilter)){a.optFilter.reset()}else{if(Ext.isArray(a.optFilter)){a.optFilter.each(function(b){b.reset()})}}}if(a.fileSizeFilter){if(a.fileSizeFilter===true){this.rangeField.reset();this.numField.reset();this.quotaUnitField.reset();this.numField.disable();this.quotaUnitField.disable()}else{if(Ext.isArray(a.fileSizeFilter)){a.fileSizeFilter.each(function(b){b.reset()})}}}if(a.shareFilter){this.shareField.reset()}if(a.recycleFilter){this.recycleFilter.enable();this.recycleFilter.setChecked(false)}},onActivate:function(){var b=this.getTimeLine();var a=this.getRecord();if(b&&a.time){this.resetAllFields();this.loadProfile()}},refreshData:function(a){this.filterResult()},onDataChanged:function(a){if(a.data.items.length<=0){this.body.mask(SYNO.SDS.StorageAnalyzer._T("report","no_report_found"))}else{this.body.unmask()}},onDeactivate:Ext.emptyFn,loadProfile:Ext.emptyFn,getRecordTime:function(){return this.getRecord().time},getCurFilter:function(){var f=this.tbarConfig,e=true,b=true,g=false,d={},c,a;if(f.shareFilter===true){c=this.shareField.getValue();e=(c!=="all_shares")}if(f.fileSizeFilter===true){a=this.rangeField.getValue();b=(a!=="any")}if(f.recycleFilter===true){g=true}if(!e&&!b&&!g){return null}if(e){d[this.shareAttr||"path"]=this.shareField.getValue()}if(b){d[a]=this.adjustToFileSize(this.numField.getValue())}if(g){d.recycle=true}return d},filterByWebapi:function(){var a=this.getCurFilter();this.loadProfile({filter:a})},filterByStoreFilter:function(){this.infoGrid.store.filterBy(function(b,a){var e=this.tbarConfig,d=b.get("size"),f=true,i=true,c=true;if(Ext.isObject(e.optFilter)&&e.optFilter.cmpFn){c=e.optFilter.cmpFn(b)}if(e.fileSizeFilter===true){var h=this.adjustToFileSize(this.numField.getValue());if(this.rangeField.getValue()==="size_gt"){f=d>h}else{if(this.rangeField.getValue()==="size_lt"){f=d<h}else{f=true}}}if(e.shareFilter===true){var g=this.shareAttr||"name";i=(this.shareField.getValue()==="all_shares")?true:b.get(g)===this.shareField.getValue()}return c&&f&&i},this)},filterResult:function(){if((this.numField&&!this.numField.isValid())||!this.infoGrid){return}if(this.useWebapiFilter===true){this.filterByWebapi();return}this.filterByStoreFilter()}});Ext.define("SYNO.SDS.StorageAnalyzer.DetailView.PieChart",{extend:"SYNO.SDS.StorageAnalyzer.Chart",svgConfig:{margin:{top:8,left:8,right:24,bottom:0},width:252,height:236},radius:110,d3:SYNO.SDS.DataDrivenDocuments.DrawHelper,constructor:function(a){this.callParent(arguments)},loadData:function(a){if(!Ext.isDefined(a)){return}this.draw(a)},initShadowEffect:function(){var b=this.svg,a=b.append("defs");this.shadowId="shadow"+Ext.id();var c=a.append("filter").attr("id",this.shadowId);c.append("feGaussianBlur").attr("in","SourceAlpha").attr("stdDeviation",2).attr("result","blur");c.append("feOffset").attr("in","blur").attr("dx",0).attr("dy",0).attr("result","offsetBlur");var d=c.append("feMerge");d.append("feMergeNode").attr("in","offsetBlur");d.append("feMergeNode").attr("in","SourceGraphic");this.svgShadow=a},filterData:function(c){var b=0,a=[];for(b=0;b<c.length;b++){if(c[b].size>0){return c}}for(b=0;b<c.length;b++){if(Ext.isDefined(c[b].color)){a.push(Ext.apply(c[b],{size:1}))}}return a},draw:function(g){if(!Ext.isArray(g)||0>g.length){return}g=this.filterData(g);var i=this,l=i.d3,c=i.svgConfig.width,j=i.svgConfig.height,h=i.radius,e=(h+i.svgConfig.margin.left),d=(h+i.svgConfig.margin.top);if(i.svgGraphics){i.svgGraphics.remove();i.svgGraphics=null}if(!i.svgShadow){i.initShadowEffect()}i.svgGraphics=i.svg.data([g]).attr("width",c).attr("height",j).append("svg:g").attr("transform","translate("+e+","+d+")");var b=l.svg.arc().outerRadius(h);var f=l.layout.pie().value(function(m){return m.size});var a=i.svgGraphics.selectAll("g.slice").data(f).enter().append("svg:g").attr("class","slice");var k="url(#"+this.shadowId+")";a.append("svg:path").attr("fill",function(n,m){return g[m].color||SYNO.SDS.StorageAnalyzer.Utils.ColorArray[Math.min(m,9)]}).attr("stroke","#FFFFFF").attr("stroke-width","0px").attr("d",b).attr("synoqtip",function(n,m){return g[m].name}).on("mouseover",function(o,n,m){this.parentNode.parentNode.appendChild(this.parentNode);l.select(this).transition().duration(300).attr("stroke-width","2px").attr("filter",k)}).on("mouseout",function(o,n,m){l.select(this).transition().duration(300).attr("stroke-width","0px").attr("filter","")})}});Ext.define("SYNO.SDS.StorageAnalyzer.DetailView.PageSelectionModel",{extend:"Ext.grid.RowSelectionModel",constructor:function(a){this.callParent([a]);this.pageSelections=new Ext.util.MixedCollection(false,function(b){return b.id})},onRefresh:function(){var f=this.grid.store,d=this.getSelections(),c=0,a=d.length,b,e;this.fireEvent("beforeselmodelrefresh",this);this.silent=this.silentMode&&true;this.clearSelections(true);for(;c<a;c++){e=d[c];if((b=f.indexOfId(e.id))!=-1){this.selectRow(b,true);if(this.selectCallback){this.selectCallback(b,f)}}}if(d.length!=this.pageSelections.getCount()){this.fireEvent("selectionchange",this)}this.silent=false;this.fireEvent("selmodelrefreshed",this)},maskGrid:function(a){if(a.loadMask){a.loadMask.show()}},unmaskGrid:function(a){if(a.loadMask){a.loadMask.hide()}},selectAllRow:function(a){if(this.isLocked()){return}var c=this.grid,e=this.grid.store,d=this.grid.store.getCount();this.maskGrid(c);this.selections.clear();for(var b=0;b<d;b++){this.selectRow(b,true)}if(e.getTotalCount()===e.getCount()){this.unmaskGrid(c);return}e.suspendEvents();e.load({params:{offset:0,limit:e.getTotalCount()},callback:function(){this.pageSelections.clear();this.pageSelections.addAll(e.data.items);e.resumeEvents();this.unmaskGrid(c);if(a.callback){a.callback.call(a.scope||this)}},scope:this})},clearSelections:function(a){if(this.isLocked()){return}if(a!==true){var c=this.grid.store,b=this.selections;b.each(function(d){this.deselectRow(c.indexOfId(d.id))},this);b.clear()}else{this.selections.clear()}this.last=false},clearAllSelections:function(a){if(this.isLocked()){return}if(a!==true){var c=this.grid.store,b=this.pageSelections;b.each(function(d){this.deselectRow(c.indexOfId(d.id))},this);b.clear()}else{this.pageSelections.clear()}},selectRow:function(b,d,a){if(this.isLocked()||(b<0||b>=this.grid.store.getCount())||(d&&this.isSelected(b))){return}var c=this.grid.store.getAt(b);if(c&&this.fireEvent("beforerowselect",this,b,d,c)!==false){if(!d||this.singleSelect){this.clearSelections();this.clearAllSelections()}this.selections.add(c);this.pageSelections.add(c);this.last=this.lastActive=b;if(!a){this.grid.getView().onRowSelect(b)}if(!this.silent){this.fireEvent("rowselect",this,b,c);this.fireEvent("selectionchange",this)}}},selectRows:function(c,d){if(!d){this.clearSelections();this.clearAllSelections()}for(var b=0,a=c.length;b<a;b++){this.selectRow(c[b],true)}},selectRange:function(b,a,d){var c;if(this.isLocked()){return}if(!d){this.clearSelections();this.clearAllSelections()}if(b<=a){for(c=b;c<=a;c++){this.selectRow(c,true)}}else{for(c=b;c>=a;c--){this.selectRow(c,true)}}},deselectRow:function(b,a){if(this.isLocked()){return}if(this.last==b){this.last=false}if(this.lastActive==b){this.lastActive=false}var c=this.grid.store.getAt(b);if(c){this.selections.remove(c);this.pageSelections.remove(c);if(!a){this.grid.getView().onRowDeselect(b)}this.fireEvent("rowdeselect",this,b,c);this.fireEvent("selectionchange",this)}},getSelections:function(){return[].concat(this.pageSelections.items)},hasSelection:function(){return(this.pageSelections.items.length>0)}});Ext.define("SYNO.SDS.StorageAnalyzer.DetailView.Type",{extend:"SYNO.SDS.StorageAnalyzer.DetailView.Panel",constructor:function(a){this.callParent([this.fillConfig(a)])},fillConfig:function(a){var b,d=new Ext.data.SimpleStore({autoDestroy:true,fields:["value","display"],data:[["all_filetype",SYNO.SDS.StorageAnalyzer._T("report","reportUI_title_file_type")]]});this.optField=new SYNO.ux.ComboBox({editable:false,mode:"local",store:d,displayField:"display",valueField:"value",triggerAction:"all",value:"all_filetype",width:143,tpl:'<tpl for="."><div class="x-combo-list-item" ext:qtip="{display}">{display}</div></tpl>',listeners:{select:function(f,g,e){this.filterResult()},scope:this},cmpFn:function(e){var f;f=(this.optField.getValue()==="all_filetype")?true:SYNO.SDS.StorageAnalyzer._T("report",e.get("group_name"))===this.optField.getValue();return f}.createDelegate(this)});this.infoGrid=new SYNO.ux.GridPanel({colModel:this.initColModel(),store:this.createStore(),enableHdMenu:false,loadMask:true,region:"center"});b=[this.infoGrid];if(!Ext.isIE8){this.infoPie=new SYNO.SDS.StorageAnalyzer.DetailView.PieChart({region:"west",width:252,height:236});b.push(this.infoPie)}var c={useWebapiFilter:true,tbarConfig:{optFilter:this.optField,fileSizeFilter:false,shareFilter:true,recycleFilter:true},layout:"border",items:b};Ext.apply(c,a);return c},initColModel:function(){var a=new Ext.grid.ColumnModel({defaultSortable:true,columns:[{id:"group_name",dataIndex:"group_name",header:SYNO.SDS.StorageAnalyzer._T("report","reportUI_title_file_type"),renderer:this.fileTypeRenderer,scope:this},{id:"count",dataIndex:"count",header:SYNO.SDS.StorageAnalyzer._T("report","reportUI_title_file_count"),renderer:this.fileCountRenderer,scope:this,align:"center"},{id:"size",dataIndex:"size",header:_T("common","size"),renderer:this.fileSizeRenderer.createDelegate(this),scope:this,align:"right"}]});return a},createStore:function(){return new Ext.data.Store({proxy:new Ext.data.MemoryProxy([]),reader:new Ext.data.JsonReader({},["group_name","count","size","path","size","full_path","recycle_count","recycle_size"]),autoDestroy:true,remoteSort:false,listeners:{datachanged:this.onDataChanged,scope:this}})},loadProfile:function(d){this.infoGrid.getEl().mask(_T("common","loading"),"x-mask-loading");var b=this.getRecord();var e={};var a=this.getTimeVersion(b.time);var c={};if(1===a){e={id:b.get("id"),source:"share",limit:-1,offset:0,filter:{group_by:"file_type",recycle:true}};e=b.time?Ext.apply(e,{time:b.time}):e;e.filter=d?Ext.apply(e.filter,{folder_id:d.filter.folder_id}):e.filter;c.api="SYNO.Core.Report.Analyzer";c.method="getdata";c.version=1}else{e={profile:b.get("id"),filter:d?d.filter:{}};e=b.time?Ext.apply(e,{time:b.time}):e;c.api="SYNO.Core.Report.Analyzer.Share";c.method="file_type";c.version=1}this.sendWebAPI({api:c.api,method:c.method,version:c.version,scope:this,params:e,callback:function(i,h,g){this.infoGrid.getEl().unmask();if(i){this.el.unmask();this.refreshData(h,g)}else{var f;f=SYNO.SDS.StorageAnalyzer.Utils.getErrorString(h.code)||_T("common","commfail");this.appWin.getMsgBox().alert("report",f,function(){this.el.mask()},this)}}})},updateShareField:function(){var a=this.getRecord();this.prevFolderId="all_shares";this.el.mask();this.sendWebAPI({api:"SYNO.Core.Report.Util",method:"list_share",version:1,scope:this,params:{profile_name:a.get("id"),time:a.time},callback:function(g,e,d){this.el.unmask();if(g){var f=[["all_shares",_T("common","show_all"),0]],b=[];if(e&&e.analyses){e.analyses.each(function(i){var h;if(undefined!==i.name){h=i.name;if(b.indexOf(h)<0){b.push(h);f.push([i.path_id,h,1])}}})}this.shareField.store.loadData(f);this.sortShareField();this.shareField.collapse()}else{var c;c=SYNO.SDS.StorageAnalyzer.Utils.getErrorString(e.code)||_T("common","commfail");this.appWin.getMsgBox().alert("report",c,function(){this.el.mask()},this)}}})},getCurFilter:function(){var c=this.optField.getValue(),a=this.shareField.getValue(),b={};if("all_filetype"!==c&&this.prevFolderId===a){b.type=c}if("all_shares"!==a){b.folder_id=a}this.prevFolderId=a;return b},updateFileTypStore:function(){var a=[["all_filetype",SYNO.SDS.StorageAnalyzer._T("report","reportUI_title_file_type")]];this.filetypeArr.each(function(b){a.push([b,SYNO.SDS.StorageAnalyzer._T("report",b)])});this.optField.store.loadData(a);this.optField.setValue("all_filetype");this.optField.collapse()},onDataChanged:function(a){this.callParent(arguments);this.updatePieData(a)},updatePieData:function(a){if(this.drawData){this.drawData=null}this.drawData=[];this.filetypeArr.each(function(b){this.drawData.push({name:this.fileTypeOverview?SYNO.SDS.StorageAnalyzer._T("report",b):b,size:0})},this);a.data.each(function(d){var c=d.get("group_name"),b=this.filetypeArr.indexOf(c);this.drawData[b].size+=d.get("size");if(!this.drawData[b].color){this.drawData[b].color=SYNO.SDS.StorageAnalyzer.Utils.ColorArray[Math.min(b,9)]}},this);if(!Ext.isIE8){this.infoPie.loadData(this.drawData)}},fileCountRenderer:function(d,a,e,f,c,b){if(this.recycleFilter.getValue()===true){return(d-e.get("recycle_count"))}return d},fileSizeRenderer:function(d,c,a,b){if(this.recycleFilter.getValue()===true){return SYNO.SDS.StorageAnalyzer.Utils.fileSizeRenderer(d-a.get("recycle_size"),c)}return SYNO.SDS.StorageAnalyzer.Utils.fileSizeRenderer(d,c)},fileTypeRenderer:function(g,f,b,e){var h=this.fileTypeOverview?SYNO.SDS.StorageAnalyzer._T("report",g):g,d=Ext.util.Format.htmlEncode(h),c=SYNO.SDS.StorageAnalyzer.Utils.ColorArray[Math.min(e,9)],a='<span style="margin:7px 6px 7px 0px; width:14px; height:14px; float:left; background-color:'+c+'"></span>'+d;f.attr='ext:qtip="'+Ext.util.Format.htmlEncode(d)+'"';return a},onActivate:function(){this.callParent(arguments);this.updateShareField()},refreshData:function(a){var b=[];if(a&&a.analyses){a.analyses.sort(function(d,c){if(d.size>c.size){return -1}else{if(d.size<c.size){return 1}}if(d.count>c.count){return -1}else{if(d.count<c.count){return 1}}if(d.recycle_size>c.recycle_size){return 1}else{if(d.recycle_size<c.recycle_size){return -1}}if(d.recycle_count>c.recycle_count){return 1}else{if(d.recycle_count<c.recycle_count){return -1}}if(d.group_name<c.group_name){return -1}else{if(d.group_name>c.group_name){return 1}}return 0});this.filetypeArr=[];a.analyses.each(function(c){if(undefined!==c.size){if(c.group_name===".empty_ext"){c.group_name=SYNO.SDS.StorageAnalyzer._T("report","reportUI_file_type_empty")}b.push(c);if(this.filetypeArr.indexOf(c.group_name)===-1){this.filetypeArr.push(c.group_name)}}},this);if(a.type_group){this.fileTypeOverview=true;this.updateFileTypStore();if(1===a.version){this.optField.disable()}else{this.optField.enable()}}else{this.fileTypeOverview=false}this.infoGrid.store.loadData(b)}}});Ext.define("SYNO.SDS.StorageAnalyzer.DetailView.Usage",{extend:"SYNO.SDS.StorageAnalyzer.DetailView.Panel",pathArray:[],constructor:function(a){this.callParent([this.fillConfig(a)])},initColModel:function(){var a=new Ext.grid.ColumnModel({defaults:{sortable:true},columns:[{id:"name",header:_T("common","folder"),renderer:this.shareNameRenderer,dataIndex:"name",scope:this,width:200},{id:"volume",header:_T("volume","volume_share_position"),renderer:this.volumeNameRenderer,dataIndex:"volume",scope:this},{id:"count",header:SYNO.SDS.StorageAnalyzer._T("report","reportUI_title_file_count"),renderer:this.fileCountRenderer,dataIndex:"count",scope:this,align:"right"},{id:"size",header:_T("common","size"),renderer:this.fileSizeRenderer.createDelegate(this),dataIndex:"size",scope:this,align:"right"}]});return a},createStore:function(){return new Ext.data.Store({proxy:new Ext.data.MemoryProxy([]),reader:new Ext.data.JsonReader({root:"analyses",id:"name"},["name","volume","count","size","path","full_path","recycle_count","recycle_size","path_id","is_share"]),autoDestroy:true,remoteSort:false,listeners:{datachanged:{fn:this.onDataChanged,scope:this,buffer:50}}})},fillConfig:function(a){var b;this.infoGrid=new SYNO.ux.GridPanel({cls:"storage-report-shareusage-grid",colModel:this.initColModel(),store:this.createStore(),region:"center",loadMask:true,enableHdMenu:false,enableSort:true,view:new SYNO.ux.FleXcroll.grid.GridView({forceFit:true,onHeaderClick:function(f,e){var d=this.grid.store;var h=d.getAt(0);if(".."===h.get("name")){d.remove(h)}SYNO.ux.FleXcroll.grid.GridView.superclass.onHeaderClick.call(this,f,e);if(".."===h.get("name")){d.insert(0,h)}}})});b=[this.infoGrid];this.usagePieChart=new SYNO.SDS.StorageAnalyzer.DetailView.PieChart({region:"west",width:252,height:232});b.push(this.usagePieChart);var c={tbarConfig:{fileSizeFilter:true,shareFilter:this.shareField=new SYNO.ux.ComboBox({width:180,displayField:"display",valueField:"value",value:"all_shares",store:new Ext.data.ArrayStore({fields:["value","display"],data:[["all_shares",_T("common","show_all")]]}),listeners:{select:this.getSubFolderResult,scope:this}}),recycleFilter:true,pathBar:true},layout:"border",items:b};Ext.apply(c,a);return c},onRowClick:function(c,g,d){var f=c.store.getAt(g);var a=f.get("name");var b=(0!==f.get("path_id").length)?f.get("path_id"):f.get("full_path");this.pathBar.addPathButtons(this.combinePathObj(a,b));if(true===f.get("is_share")){this.loadProfile()}else{this.loadProfile({filter:{path:b,folder_id:b}})}},onActivate:function(){this.callParent(arguments);if(this.pathBar){this.pathArray.length=0;this.pathArray.push({path:-1,text:"All Shares",tooltip:"All Shares"});this.pathBar.addPathButtons(this.pathArray)}},combinePathObj:function(a,b){if(0===a.length){while(this.pathArray.length>0){if(this.pathArray[this.pathArray.length-1].path!=b){this.pathArray.pop()}else{break}}}else{if(".."===a){this.pathArray.pop()}else{this.pathArray.push({path:b,text:Ext.util.Format.htmlEncode(a),tooltip:Ext.util.Format.htmlEncode(a)})}}return this.pathArray},getSubFolderResult:function(b,c,a){if(c.get("value")==="all_shares"){this.recycleFilter.enable();this.loadProfile(true);return}this.recycleFilter.disable();this.loadProfile({filter:{path:c.get("value")}})},fileCountRenderer:function(e,b,a,d,f,c){if(a.get("name")===".."){return""}if(this.recycleFilter.getValue()===true){return(e-a.get("recycle_count"))}return e},fileSizeRenderer:function(d,c,a,b){if(a.get("name")===".."){return""}if(this.recycleFilter.getValue()===true){return SYNO.SDS.StorageAnalyzer.Utils.fileSizeRenderer(d-a.get("recycle_size"),c)}return SYNO.SDS.StorageAnalyzer.Utils.fileSizeRenderer(d,c)},shareNameRenderer:function(h,f,e,b,d,j){var i=Ext.util.Format.htmlEncode(h),c,a;var g=(j&&j.getAt(0)&&j.getAt(0).get("name")==="..")?b-1:b;if(e.get("name")===".."){i="<b>"+Ext.util.Format.htmlEncode(SYNO.SDS.StorageAnalyzer._T("report","reportUI_go_parent"))+"</b>";a=i}else{c=SYNO.SDS.StorageAnalyzer.Utils.ColorArray[Math.min(g,9)];a='<span style="margin:7px 6px 7px 0px; width:14px; height:14px; float:left; background-color:'+c+'"></span>'+i}f.attr='ext:qtip="'+Ext.util.Format.htmlEncode(i)+'"';return a},volumeNameRenderer:function(f,e,a,d,g,b){var c="";if(a.get("name")===".."){return""}else{c=Ext.util.Format.htmlEncode(SYNO.SDS.Utils.StorageUtils.VolumeNameRenderer(f));e.attr='ext:qtip="'+Ext.util.Format.htmlEncode(c)+'"';return c}},onDeactivate:function(){},renderToolBar:function(a){if(1===a){this.pathBar.tbPanel.setVisible(false);this.shareField.setVisible(true);this.rangeField.setVisible(true);this.numField.setVisible(true);this.quotaUnitField.setVisible(true)}else{this.pathBar.tbPanel.setVisible(true);this.shareField.setVisible(false);this.rangeField.setVisible(false);this.numField.setVisible(false);this.quotaUnitField.setVisible(false)}this.doLayout()},getFilterSize:function(){var a=this.numField.getValue()||0;switch(this.quotaUnitField.getValue()){case"GB":a=a*Math.pow(2,30);break;case"TB":a=a*Math.pow(2,40);break;case"MB":a=a*Math.pow(2,20);break;default:a=a*Math.pow(2,20);break}return a},loadProfile:function(d){var b=this.getRecord();var e={};var a=this.getTimeVersion(b.time);var c={};this.infoGrid.getEl().mask(_T("common","loading"),"x-mask-loading");this.renderToolBar(a);if(1===a){e={id:b.get("id"),source:"share",limit:-1,offset:0};e=b.time?Ext.apply(e,{time:b.time}):e;e=Ext.isObject(d)?Ext.apply(e,d):e;e.filter=e.filter||{};e.filter.recycle=true;c.api="SYNO.Core.Report.Analyzer";c.method="getdata";c.version=1;this.infoGrid.mun(this.infoGrid,"rowclick",this.onRowClick,this);this.infoGrid.removeClass("storage-report-shareusage-pointer-grid")}else{e={profile:b.get("id")};e=b.time?Ext.apply(e,{time:b.time}):e;e=Ext.isObject(d)?Ext.apply(e,d):e;e.filter=e.filter||{};c.api="SYNO.Core.Report.Analyzer.Share";c.method="usage";c.version=1;this.infoGrid.mon(this.infoGrid,"rowclick",this.onRowClick,this);this.infoGrid.addClass("storage-report-shareusage-pointer-grid")}this.sendWebAPI({api:c.api,method:c.method,version:c.version,scope:this,params:e,callback:function(i,h,g){this.infoGrid.getEl().unmask();if(i){this.el.unmask();this.refreshData(h,d)}else{var f;f=SYNO.SDS.StorageAnalyzer.Utils.getErrorString(h.code)||_T("common","commfail");this.appWin.getMsgBox().alert("report",f,function(){this.el.mask()},this)}}})},updateShareField:function(a){var b=[["all_shares",_T("common","show_all")]];a.each(function(c){if(c.count>0){b.push([(c.path_id)?c.path_id:c.full_path,c.name])}});this.shareField.store.loadData(b)},onDataBeforeLoad:function(a){if(this.shareField.getValue()==="all_shares"){return true}if(Ext.isObject(a)&&a.filter&&a.filter.path===this.shareField.getValue()){return true}this.loadProfile({filter:{path:this.shareField.getValue()}});return false},onDataChanged:function(a){this.callParent(arguments);this.updatePieData(a)},updatePieData:function(a){if(this.drawData){this.drawData=null}this.drawData=[];a.data.each(function(b){if(".."===b.get("name")){return}this.drawData.push({name:b.get("name"),size:b.get("size")})},this);this.usagePieChart.loadData(this.drawData)},refreshData:function(b,a){if(b&&b.analyses){if(b.analyses.length===0){this.infoGrid.store.loadData(b);this.callParent(arguments);return}b.analyses.sort(function(e,d){if(d.name===".."){return 1}if(e.name===".."){return -1}return d.size-e.size});if(!a){this.updateShareField(b.analyses)}if(this.onDataBeforeLoad(a)===false){return}var c=b.analyses[0];if(".."===c.name){b.analyses.shift();b.total=b.total-1}this.infoGrid.store.loadData(b);if(".."===c.name){this.infoGrid.store.insert(0,new Ext.data.Record(c,c.name))}this.callParent(arguments)}},onGoToPathWithDir:function(a){this.pathBar.addPathButtons(this.combinePathObj("",a));if(-1===a){this.loadProfile()}else{this.loadProfile({filter:{path:a,folder_id:a}})}}});Ext.define("SYNO.SDS.StorageAnalyzer.DetailView.Quota",{extend:"SYNO.SDS.StorageAnalyzer.DetailView.Panel",pageSize:50,constructor:function(a){this.appWin=a.appWin;this.callParent([this.fillConfig(a)])},fillConfig:function(a){var c=new Ext.data.SimpleStore({autoDestroy:true,fields:["value","display"],data:[["count",SYNO.SDS.StorageAnalyzer._T("report","reportUI_title_file_count")],["size",SYNO.SDS.StorageAnalyzer._T("report","used_size")]]});this.optField=new SYNO.ux.ComboBox({editable:false,mode:"local",store:c,displayField:"display",valueField:"value",triggerAction:"all",value:"count",width:100,tpl:'<tpl for="."><div class="x-combo-list-item" ext:qtip="{display}">{display}</div></tpl>',listeners:{select:function(f,g,d){this.filterResult();var e=(f.getValue()==="count");if(e){this.quotaUnitField.hide()}else{this.quotaUnitField.show()}this.doLayout()},scope:this}});this.infoStore=this.createStore();this.infoGrid=new SYNO.ux.GridPanel({colModel:this.initColModel(),store:this.infoStore,enableHdMenu:false,loadMask:true,bbar:new SYNO.ux.PagingToolbar({store:this.infoStore,pageSize:this.pageSize,displayInfo:true}),view:new SYNO.ux.FleXcroll.grid.BufferView({cacheSize:100})});var b={useWebapiFilter:true,tbarConfig:{optFilter:this.optField,fileSizeFilter:true,shareFilter:true,rangeFiltePrefix:"",recycleFilter:true},layout:"fit",items:this.infoGrid};Ext.apply(b,a);return b},initColModel:function(){var a=new Ext.grid.ColumnModel({defaultSortable:true,columns:[{id:"group_name",dataIndex:"group_name",header:_T("common","username"),renderer:this.userRenderer.createDelegate(this)},{id:"name",dataIndex:"name",header:_T("common","folder"),renderer:this.fieldRenderer.createDelegate(this)},{id:"count",dataIndex:"count",header:SYNO.SDS.StorageAnalyzer._T("report","reportUI_title_file_count"),renderer:this.fieldRenderer.createDelegate(this,this.fileCountRenderer.createDelegate(this),7),align:"right"},{id:"size",dataIndex:"size",header:_T("common","size"),renderer:this.fieldRenderer.createDelegate(this,this.fileSizeRenderer.createDelegate(this),7),align:"right"}]});return a},getClsByUserType:function(b){var a;switch(b){case"":a="disable-font";break;case"root":a="orange-status";break;default:a="normal-font";break}return a},fileCountRenderer:function(d,a,e,f,c,b){if(this.recycleFilter.getValue()===true){return(d-e.get("recycle_count"))}return d},fileSizeRenderer:function(d,a,e,f,c,b){if(this.recycleFilter.getValue()===true){return SYNO.SDS.StorageAnalyzer.Utils.fileSizeRenderer(d-e.get("recycle_size"),a,e)}return SYNO.SDS.StorageAnalyzer.Utils.fileSizeRenderer(d,a,e)},fieldRenderer:function(f,b,d,e,h,g,c){var a=d.get("group_name"),i=this.getClsByUserType(a);if(!c){return'<span class="'+i+'">'+Ext.util.Format.htmlEncode(f)+"</span>"}return'<span class="'+i+'">'+c(f,b,d,e,h,g)+"</span>"},userRenderer:function(b){var a=this.getClsByUserType(b);switch(b){case"":b=SYNO.SDS.StorageAnalyzer._T("common","no_such_user");break;case"root":b=_T("share","share_system_user");break;default:break}return'<span class="'+a+'">'+Ext.util.Format.htmlEncode(b)+"</span>"},onDataLoaded:function(a,c,b){this.el.unmask();if(!b.params.filter.path&&!b.params.filter.folder_id&&b.params.filter.path===undefined){this.updateShareField(c)}},onLoadExcenption:function(d,e,f,c,b,a){if(b.isTimeout){this.appWin.getMsgBox().alert(this.title,_T("error","error_timeout"))}else{SYNO.Debug("Store exception: options:",d,e,f,c,b,a);this.appWin.getMsgBox().alert(this.title,SYNO.API.Erros.core[b.code]||_T("common","commfail"))}this.el.mask()},createStore:function(){var a=this.getRecord();var b={id:a.get("id"),profile:a.get("id"),source:"share",limit:this.pageSize,offset:0,filter:{group_by:"user",recycle:true}};return new SYNO.API.JsonStore({autoDestroy:true,appWindow:this.appWin,api:"SYNO.Core.Report.Analyzer",method:"getdata",version:1,scope:this,root:"analyses",baseParams:b,fields:["group_name","name","count","size","full_path","recycle_count","recycle_size","path_id"],listeners:{beforeload:{fn:this.onBeforeLoad,scope:this},load:{fn:this.onDataLoaded,scope:this},datachanged:{fn:this.onDataChanged,scope:this,buffer:50},exception:{fn:this.onLoadExcenption,scope:this}}})},adjustToFileSize:function(a){a=a||0;if(this.optField.getValue()==="count"){return a}switch(this.quotaUnitField.getValue()){case"MB":a=a*1024*1024;break;case"GB":a=a*1024*1024*1024;break;case"TB":a=a*1024*1024*1024*1024;break}return a},getCurFilter:function(){var e=this.optField.getValue(),a=this.rangeField.getValue(),f=this.shareField.getValue(),b=(a!=="any"),d=(f!=="all_shares"),c={};this.recycleFilter.setDisabled(d);if(!b&&!d){return null}if(b){c[e+a]=this.adjustToFileSize(this.numField.getValue())}if(d){c.path=f;if(f[0]!=="/"){c.folder_id=f}}return c},filterResult:function(){if((this.numField&&!this.numField.isValid())||!this.infoGrid){return}var a=this.getCurFilter();this.loadProfile({filter:a})},onBeforeLoad:function(a,c){var b=this.getCurFilter();c.params.time=this.getRecordTime();if(b===null){return true}Ext.apply(b,{group_by:"user",recycle:true});Ext.apply(c.params,{filter:b});return true},loadProfile:function(c){if(!c){this.quotaUnitField.hide();this.doLayout()}var d={},b=this.getRecord();var a=this.getTimeVersion(b.time);if(1===a){if(Ext.isObject(c)&&c.filter){d.filter=c.filter;Ext.apply(d.filter,{group_by:"user",recycle:true})}if(b.time){d=d||{};d.time=b.time}this.infoStore.baseParams.id=b.id;this.infoStore.proxy.api="SYNO.Core.Report.Analyzer";this.infoStore.proxy.method="getdata"}else{d.profile=b.get("id");if(Ext.isObject(c)&&c.filter){d.filter=c.filter}if(b.time){d.time=b.time}this.infoStore.baseParams.profile=d.profile;this.infoStore.proxy.api="SYNO.Core.Report.Analyzer.Share";this.infoStore.proxy.method="user_quota"}if(d){this.infoGrid.store.load({params:d})}else{this.infoGrid.store.load()}},updateShareField:function(b){var c=[["all_shares",_T("common","show_all"),0]],a=[];b.each(function(e){var d=e.get("name");if(a.indexOf(d)<0){a.push(d);c.push([(undefined!==e.get("path_id"))&&(""!==e.get("path_id"))?e.get("path_id"):e.get("full_path"),d,1])}});this.shareField.store.loadData(c);this.sortShareField();this.shareField.collapse()}});Ext.define("SYNO.SDS.StorageAnalyzer.DetailView.Duplicate",{extend:"SYNO.SDS.StorageAnalyzer.DetailView.Panel",pageSize:100,constructor:function(a){this.appWin=a.appWin;this.callParent([this.fillConfig(a)]);this.mon(this,"recordupdate",this.adjustGroupLayoutForRow,this,{buffer:20})},fillConfig:function(a){this.infoStore=this.createStore();this.deleteItem=new Ext.menu.Item({text:SYNO.SDS.StorageAnalyzer._T("report","filetable_delete"),handler:this.onDeleteSelectedFiles,scope:this});this.matchItem=new Ext.menu.Item({text:SYNO.SDS.StorageAnalyzer._T("report","run_md5"),handler:this.onRunMD5,scope:this});this.actionBtn=new SYNO.ux.Button({text:_T("common","action"),menu:new SYNO.ux.Menu({items:[this.deleteItem,this.matchItem],listeners:{beforeshow:{fn:this.onBeforeMenuShow,scope:this}}})});this.infoGrid=new SYNO.ux.GridPanel({cls:"storage-report-duplicatefile-grid without-md5-info without-dirty-red-grid",colModel:this.initColModel(),loadMask:true,store:this.infoStore,enableHdMenu:false,autoExpandColumn:"path",selModel:new SYNO.SDS.StorageAnalyzer.DetailView.PageSelectionModel({selectCallback:function(d,c){var e=c.getAt(d);e.set("choose",true)}}),view:new SYNO.ux.FleXcroll.grid.BufferView({cacheSize:30,trackResetOnLoad:false,forceFit:true}),bbar:new SYNO.ux.PagingToolbar({store:this.infoStore,pageSize:this.pageSize,displayInfo:true}),plugins:[this.enableColumn]});var b={useWebapiFilter:true,shareAttr:"share",tbarConfig:{fileSizeFilter:true,shareFilter:true,customItem:this.actionBtn},layout:"fit",items:this.infoGrid};Ext.apply(b,a);return b},onBeforeMenuShow:function(){var b=this.getTimeLine(),a=this.infoGrid.selModel;this.deleteItem.setDisabled(!a.hasSelection());if(this.isMaxDateSelected()&&b.is_analyzer_ready===true&&b.is_confirm_duplicate_ready!==true&&b.version>1){this.matchItem.show()}else{this.matchItem.hide()}},confirmGroupRenderer:function(g,e,d){var h=["#99CC00","#1DBF89"],f='<div style="margin: 7px 8px 7px 0px; width: 14px; height: 14px; background-color:{0};"></div>',j=d.get("duplicate_group_id"),i=j+"-"+g;if(!this.confirmGroupIdx){this.confirmGroupIdx=[]}if(this.confirmGroupIdx.indexOf(i)===-1){this.confirmGroupIdx.push(i)}var b=this.confirmGroupIdx.indexOf(i),k=b%2,c=h[k],a=String.format(f,c);return a},groupRenderer:function(g,e,c){var h=["#32B7F9","#FABB00"],f='<div style="margin: 7px 8px 7px 0px; width: 14px; height: 14px; background-color:{0};"></div>';if(!this.groupIdx){this.groupIdx=[]}if(this.groupIdx.indexOf(g)===-1){this.groupIdx.push(g)}var b=this.groupIdx.indexOf(g),i=b%2,d=h[i],a=String.format(f,d);return a},shareNameRenderer:function(c,b,a){b.attr='ext:qtip="'+Ext.util.Format.htmlEncode(c)+'"';if(a.get("exists")===false){return'<span class="disable-font">'+c+"</span>"}return c},pathRenderer:function(c,b,a){var d=c.substr(0,c.lastIndexOf(a.get("name"))),e=Ext.util.Format.htmlEncode(d);b.attr='ext:qtip="'+e+'"';if(a.get("exists")===false){return'<span class="disable-font">'+d+"</span>"}return'<a style="text-decoration:underline; cursor:pointer;">'+d+"</a>"},deleteRenderer:function(c,b,a){var d=a.get("exists"),e;switch(d){case true:e='<div class="delete-icon normal"></div>';break;case false:e='<span class="disable-font">'+SYNO.SDS.StorageAnalyzer._T("report","reportUI_file_status_removed")+"</span>";break;case"status-loading":e='<div class="delete-icon loading"></div>';break;default:e='<span class="red-status">'+c+"</span>";break}return e},sizeRenderer:function(c,b,a){var e=SYNO.SDS.StorageAnalyzer.Utils.fileSizeRenderer(c,b,a),d=(a.get("exists")===false)?'<span class="disable-font">'+e+"</span>":e;return d},timeRenderer:function(c,b,a){var e=SYNO.SDS.StorageAnalyzer.Utils.timeRenderer(c,b,a),d=(a.get("exists")===false)?'<span class="disable-font">'+e+"</span>":e;return d},onFilePathClick:function(a,b,c,f){if(f.target.tagName.toLowerCase()==="a"){var d=b.store.getAt(c).get("path");d=Ext.util.Format.htmlDecode(d);SYNO.SDS.AppLaunch("SYNO.SDS.App.FileStation3.Instance",{openfile:d})}},onRunMD5:function(){var a=this.getTimeLine();a.is_confirm_duplicate_ready=true;if(!Ext.isEmpty(this.pollTaskId)){return}this.sendWebAPI({api:"SYNO.Core.Report.Analyzer",method:"confirmduplicate",version:1,scope:this,params:{id:this.getRecord().get("id")},callback:function(e,d,c){this.infoGrid.getEl().unmask();if(e){this.infoGrid.getEl().mask(_T("common","loading"),"x-mask-loading");this.startPollTask(false)}else{var b;b=SYNO.SDS.StorageAnalyzer.Utils.getErrorString(d.code)||_T("common","commfail");this.appWin.getMsgBox().alert("report",b)}}})},onDeleteCellClick:function(a,b,c,d){if(Ext.get(d.target).hasClass("delete-icon")&&Ext.get(d.target).hasClass("normal")){if(this._S("demo_mode")){this.appWin.getMsgBox().alert("report",_JSLIBSTR("uicommon","error_demo"))}else{this.appWin.getMsgBox().confirmDelete(SYNO.SDS.StorageAnalyzer._T("report","filetable_delete"),SYNO.SDS.StorageAnalyzer._T("report","filetable_delete_confirm"),function(e){if(e==="yes"){this.onDeleteFile(b,c)}},this)}}},sendDeleteFileRequest:function(b,a){Ext.each(a,function(c){c.set("exists","status-loading")},this);this.sendWebAPI({api:"SYNO.Core.Report.Util",method:"delete_file",params:{path:b},version:1,scope:this,callback:function(d,c){if(false===d){this.appWin.getMsgBox().alert("report",SYNO.API.Errors.core[c.code]||_T("error","delete_error_rmdir"));a.each(function(e){e.set("exists",SYNO.SDS.StorageAnalyzer._T("report","status_fail"))});return}a.each(function(e){e.set("exists",false)});return}})},onDeleteSelectedFiles:function(){var c=this.infoGrid.getSelectionModel(),a=c.getSelections(),e=[],d=[];a.each(function(f){d.push(SYNO.API.EscapeStr(f.get("name")));e.push(Ext.util.Format.htmlDecode(f.get("path")))});var b=_T("common","remove_cfrmrmv")+"<br>"+d.join(", ");if(300<b.length){b=b.substr(0,300);b=b.substr(0,b.lastIndexOf(",")+1)||b;b+=" ...";b='<span ext:qtip="'+d+'">'+b+"</span>"}this.appWin.getMsgBox().confirmDelete(SYNO.SDS.StorageAnalyzer._T("report","filetable_delete"),b,function(f){if(f==="yes"){this.sendDeleteFileRequest(e,a)}},this)},onDeleteFile:function(a,b){var d=a.store.getAt(b);var c=[Ext.util.Format.htmlDecode(d.get("path"))];this.sendDeleteFileRequest(c,[d])},initColModel:function(){this.enableColumn=new SYNO.ux.EnableColumn({name:"choose",dataIndex:"choose",menuDisabled:true,sortable:false,header:"",width:40,align:"center"});var a=new Ext.grid.ColumnModel({columns:[this.enableColumn,{id:"duplicate_group_id",dataIndex:"duplicate_group_id",header:"",width:21,align:"center",renderer:this.groupRenderer.createDelegate(this),scope:this},{id:"confirm_duplicate_group_id",dataIndex:"confirm_duplicate_group_id",header:"",width:21,align:"center",renderer:this.confirmGroupRenderer.createDelegate(this),scope:this},{id:"name",dataIndex:"name",header:_WFT("common","file_name"),renderer:this.shareNameRenderer,scope:this,width:100},{id:"path",dataIndex:"path",header:SYNO.SDS.StorageAnalyzer._T("report","file_path"),renderer:this.pathRenderer,listeners:{click:this.onFilePathClick,scope:this},scope:this},{id:"size",dataIndex:"size",header:_T("common","size"),renderer:this.sizeRenderer,scope:this,width:100},{id:"mtime",dataIndex:"mtime",align:"center",header:_WFT("filetable","filetable_mtime"),renderer:this.timeRenderer},{id:"action",dataIndex:"exists",header:_T("common","action"),align:"center",listeners:{click:this.onDeleteCellClick,scope:this},renderer:this.deleteRenderer,scope:this,width:60}]});return a},updateShareField:function(){var a=this.getRecord();this.el.mask();this.sendWebAPI({api:"SYNO.Core.Report.Util",method:"list_share",version:1,scope:this,params:{profile_name:a.get("id"),time:a.time},callback:function(h,f,e){this.el.unmask();if(h){var g=[["all_shares",_T("common","show_all"),0]],c=[];var b=this.getTimeVersion(this.getRecord().time);if(f&&f.analyses){f.analyses.each(function(j){var i;if(undefined!==j.name){i=j.name;if(c.indexOf(i)<0){c.push(i);if(1===b){g.push([i,i,1])}else{g.push([j.path_id,i,1])}}}})}this.shareField.store.loadData(g);this.sortShareField();this.shareField.collapse()}else{var d;d=SYNO.SDS.StorageAnalyzer.Utils.getErrorString(f.code)||_T("common","commfail");this.appWin.getMsgBox().alert("report",d,function(){this.el.mask()},this)}}})},adjustGroupLayout:function(c){var b,e={},a=this.infoGrid.getView();c.each(function(g,f){var h=Ext.isNumber(g.get("confirm_duplicate_group_id"))?g.get("confirm_duplicate_group_id")+"-"+g.get("duplicate_group_id"):g.get("duplicate_group_id");if(!e[h]){e[h]=[]}e[h].push(f)},this);for(b in e){if(e.hasOwnProperty(b)){var d=e[b];a.getRow(d[d.length-1]).addClassName("group-last-row")}}},adjustGroupLayoutForRow:function(e){var d=this.infoStore.getCount(),f=e+1,b,c,a;if(f>=d){return}a=this.infoGrid.getView();b=this.infoStore.getAt(e);c=this.infoStore.getAt(f);if(b.get("duplicate_group_id")!==c.get("duplicate_group_id")){a.getRow(e).addClassName("group-last-row")}else{if(Ext.isNumber(b.get("confirm_duplicate_group_id"))&&b.get("confirm_duplicate_group_id")!==c.get("confirm_duplicate_group_id")){a.getRow(e).addClassName("group-last-row")}}},onDataLoaded:function(a,d,c){this.el.unmask();var b=this;b.adjustGroupLayout(d);b.infoGrid.selModel.lock();if(d.length>0&&Ext.isNumber(d[0].get("confirm_duplicate_group_id"))){b.infoGrid.removeClass("without-md5-info")}else{b.infoGrid.addClass("without-md5-info")}},onLoadExcenption:function(d,e,f,c,b,a){if(b.isTimeout){this.appWin.getMsgBox().alert(this.title,_T("error","error_timeout"))}else{SYNO.Debug("Store exception: options:",d,e,f,c,b,a);this.appWin.getMsgBox().alert(this.title,SYNO.API.Erros.core[b.code]||_T("common","commfail"))}this.el.mask()},onRecordUpdate:function(b,e,d){var a=this.infoGrid.selModel,c=this.infoStore.indexOf(e);this.infoGrid.selModel.unlock();if(e.get("choose")===true){a.selectRow(c,true)}else{a.deselectRow(c,true)}this.infoGrid.selModel.lock();this.fireEvent("recordupdate",c)},createStore:function(){var a=this.getRecord();return new SYNO.API.JsonStore({autoDestroy:true,appWindow:this.appWin,api:"SYNO.Core.Report.Analyzer",method:"getdata",version:1,scope:this,root:"analyses",baseParams:{id:a.get("id"),profile:a.get("id"),source:"file",limit:this.pageSize,offset:0,type:"duplicate"},idProperty:"path",fields:["choose","duplicate_group_id","confirm_duplicate_group_id","name","path","size","mtime","exists","share","full_path","share_id"],listeners:{beforeload:{fn:this.onBeforeLoad,scope:this},load:{fn:this.onDataLoaded,scope:this},datachanged:{fn:this.onDataChanged,scope:this,buffer:50},exception:{fn:this.onLoadExcenption,scope:this},update:{fn:this.onRecordUpdate,scope:this}}})},onBeforeLoad:function(a,c){var b=this.getCurFilter();c=c||{};c.params=c.params||{};c.params.time=this.getRecordTime();if(b===null){return true}Ext.apply(c.params,{filter:b});return true},isMaxDateSelected:function(){var d=this.getRecord(),b=this.getTimeLine(),a,c;if(d.time){a=Date.parseDate(d.time,"Y-m-d_H-i-s").format("Y/m/d");c=b.maxDate.format("Y/m/d");if(a!==c){return false}}return true},onActivate:function(){this.resetAllFields();if(!this.isMaxDateSelected()){this.stopPollTask();this.loadProfile();return}if(!this.infoGrid.getEl().isMasked()){this.infoGrid.getEl().mask(_T("common","loading"),"x-mask-loading")}this.sendWebAPI({api:"SYNO.Core.Report",method:"get",params:{id:this.getRecord().get("id")},version:1,scope:this,callback:function(e,d,c){this.infoGrid.getEl().unmask();if(e){this.loadProfile();if(d.is_confirm_duplicate_running===true){this.startPollTask(true)}}else{var b;b=SYNO.SDS.StorageAnalyzer.Utils.getErrorString(d.code)||_T("common","commfail");this.appWin.getMsgBox().alert("report",b)}}});this.updateShareField();var a=this.infoGrid.getSelectionModel();a.unlock();a.clearSelections();a.lock()},loadProfile:function(c){var d={};var b=this.getRecord();var a=this.getTimeVersion(b.time);if(1===a){if(Ext.isObject(c)&&c.filter){d=d||{};d.filter=c.filter}if(b.time){d=d||{};d.time=b.time}this.infoStore.baseParams.id=b.id;this.infoStore.proxy.api="SYNO.Core.Report.Analyzer";this.infoStore.proxy.method="getdata"}else{d.profile=b.get("id");if(Ext.isObject(c)&&c.filter){d.filter=c.filter}if(b.time){d.time=b.time}this.infoStore.baseParams.profile=d.profile;this.infoStore.proxy.api="SYNO.Core.Report.Analyzer.File";this.infoStore.proxy.method="duplicate"}if(d){this.infoGrid.store.load({params:d,update:(c)?c:null})}else{this.infoGrid.store.load()}},reloadStore:function(){this.infoStore.load(this.infoStore.lastOptions)},startPollTask:function(a){a=a||false;this.appWin.detailView.pageListPanel.adjustNodeText("SYNO.SDS.StorageAnalyzer.DetailView.Duplicate",SYNO.SDS.StorageAnalyzer._T("storage_report","duplicates")+" ("+_T("common","loading")+")");this.stopPollTask();if(!this.infoGrid.getEl().isMasked()){this.infoGrid.getEl().mask(_T("common","loading"),"x-mask-loading")}this.pollTaskId=this.pollReg({interval:10,immediate:a,webapi:{api:"SYNO.Core.Report",method:"get",params:{id:this.getRecord().get("id")},version:1},scope:this,status_callback:function(d,c,b){if(d){if(c.is_confirm_duplicate_running===false){this.stopPollTask();this.reloadStore();this.appWin.detailView.pageListPanel.adjustNodeText("SYNO.SDS.StorageAnalyzer.DetailView.Duplicate",SYNO.SDS.StorageAnalyzer._T("report","reportUI_duplicate_accurate_list"))}}else{SYNO.Debug("Ajax load failure "+c)}}})},stopPollTask:function(){if(Ext.isEmpty(this.pollTaskId)){return}this.infoGrid.getEl().unmask();this.pollUnreg(this.pollTaskId);this.pollTaskId=null},onDeactivate:function(){this.stopPollTask()},onDestroy:function(){this.stopPollTask()}});SYNO.SDS.StorageAnalyzer.DefineFilePanel=function(a,c,b){Ext.define(a,{extend:"SYNO.SDS.StorageAnalyzer.DetailView.Panel",constructor:function(d){this.callParent([this.fillConfig(d)])},fillConfig:function(d){this.infoGrid=new SYNO.ux.GridPanel({colModel:this.initColModel(),store:this.createStore(),enableHdMenu:false,loadMask:true,autoExpandColumn:"path",view:new SYNO.ux.FleXcroll.grid.BufferView({cacheSize:100,forceFit:true})});var e={shareAttr:"share",tbarConfig:{fileSizeFilter:true,shareFilter:true},layout:"fit",items:this.infoGrid};Ext.apply(e,d);return e},initColModel:function(){var e=[{id:"share",dataIndex:"share",header:_T("tree","leaf_sharefolder"),renderer:this.shareNameRenderer,scope:this,width:100},{id:"path",dataIndex:"path",header:SYNO.SDS.StorageAnalyzer._T("report","file_path"),renderer:this.pathRenderer,scope:this,listeners:{click:this.onFilePathClick,scope:this}},{id:"size",dataIndex:"size",header:_T("common","size"),renderer:SYNO.SDS.StorageAnalyzer.Utils.fileSizeRenderer,scope:this,width:100}];if(b){e.push(b)}var d=new Ext.grid.ColumnModel({columns:e});return d},createStore:function(){var d=["share","path","size"];if(b){d.push(b.id)}return new Ext.data.Store({proxy:new Ext.data.MemoryProxy([]),reader:new Ext.data.JsonReader({root:"analyses",id:"path"},d),listeners:{datachanged:{fn:this.onDataChanged,scope:this}},autoDestroy:true,remoteSort:false})},loadProfile:function(){this.infoGrid.el.mask(_T("common","loading"),"x-mask-loading");var e=this.getRecord();var d=this.getTimeVersion(e.time);var f={};if(1===d){f={id:e.get("id"),source:"file",limit:-1,offset:0}}else{f={profile:e.get("id")}}f=e.time?Ext.apply(f,{time:e.time}):f;this.sendWebAPI({api:c[d-1].api,method:c[d-1].method,version:c[d-1].version,scope:this,params:Ext.apply(f,c[d-1].filter),callback:function(j,i,h){this.infoGrid.el.unmask();if(j){this.el.unmask();this.refreshData(i,h)}else{var g;g=SYNO.SDS.StorageAnalyzer.Utils.getErrorString(i.code)||_T("common","commfail");this.appWin.getMsgBox().alert("report",g,function(){this.el.mask()},this)}}})},onFilePathClick:function(d,f,g,i){if(i.target.tagName.toLowerCase()==="a"){var h=f.store.getAt(g).get("path");h=Ext.util.Format.htmlDecode(h);SYNO.SDS.AppLaunch("SYNO.SDS.App.FileStation3.Instance",{openfile:h})}},updateShareField:function(e){var f=[["all_shares",_T("common","show_all"),0]],d=[];e.each(function(g){if(d.indexOf(g.share)<0){d.push(g.share);f.push([g.share,g.share,1])}});this.shareField.store.loadData(f);this.sortShareField()},refreshData:function(d){if(d&&d.analyses){this.infoGrid.store.loadData(d);this.updateShareField(d.analyses);this.callParent(arguments)}},pathRenderer:function(f,e,d){e.attr='ext:qtip="'+Ext.util.Format.htmlEncode(f)+'"';return'<a style="text-decoration:underline; cursor:pointer;">'+f+"</a>"}})};SYNO.SDS.StorageAnalyzer.DefineFilePanel("SYNO.SDS.StorageAnalyzer.DetailView.Size",[{api:"SYNO.Core.Report.Analyzer",method:"getdata",version:1,filter:{type:"large"}},{api:"SYNO.Core.Report.Analyzer.File",method:"status",version:1,filter:{type:"size"}}]);SYNO.SDS.StorageAnalyzer.DefineFilePanel("SYNO.SDS.StorageAnalyzer.DetailView.MostModifyFile",[{api:"SYNO.Core.Report.Analyzer",method:"getdata",version:1,filter:{type:"modify_time"}},{api:"SYNO.Core.Report.Analyzer.File",method:"status",version:1,filter:{type:"mtime"}}],{id:"mtime",dataIndex:"mtime",header:_WFT("filetable","filetable_mtime"),renderer:SYNO.SDS.StorageAnalyzer.Utils.timeRenderer,scope:this,width:150,align:"center"});SYNO.SDS.StorageAnalyzer.DefineFilePanel("SYNO.SDS.StorageAnalyzer.DetailView.LeastModifyTime",[{api:"SYNO.Core.Report.Analyzer",method:"getdata",version:1,filter:{type:"access_time"}},{api:"SYNO.Core.Report.Analyzer.File",method:"status",version:1,filter:{type:"atime"}}],{id:"atime",dataIndex:"atime",header:_WFT("filetable","filetable_atime")+'<img src="synoSDSjslib/images/default/2x/components/icon_information_mini.png" width="24px" height="24px" draggable="false" style="vertical-align:bottom; position: relative; padding-bottom: 1px" ext:qtip="'+Ext.util.Format.htmlEncode(SYNO.SDS.StorageAnalyzer._T("report","noatime_hint"))+'"/>',headerHtmlEncode:false,renderer:SYNO.SDS.StorageAnalyzer.Utils.timeRenderer,scope:this,width:150,align:"center"});Ext.define("SYNO.SDS.StorageAnalyzer.DetailView.PageListPanel",{extend:"SYNO.SDS.PageListPanel",getPageList:function(a){var b;if(!this.pageList){b={region:"west",cls:"storage-report-dataview-pagelist",padding:"0 16 0 0",hideCollapseTool:true,listItems:[{text:_T("tree","leaf_sharefolder"),itemId:"share_folder",id:"SYNO.SDS.StorageAnalyzer.DetailView.Share",expanded:true,iconCls:"icon-hide",items:[{text:SYNO.SDS.StorageAnalyzer._T("report","report_usage"),iconCls:"icon-usage",fn:"SYNO.SDS.StorageAnalyzer.DetailView.Usage"},{text:SYNO.SDS.StorageAnalyzer._T("storage_report","user_quota"),iconCls:"icon-quota",fn:"SYNO.SDS.StorageAnalyzer.DetailView.Quota"},{text:SYNO.SDS.StorageAnalyzer._T("report","report_type"),iconCls:"icon-type",fn:"SYNO.SDS.StorageAnalyzer.DetailView.Type"}]},{text:_T("common","file"),itemId:"file",expanded:true,iconCls:"icon-hide",id:"SYNO.SDS.StorageAnalyzer.DetailView.File",items:[{text:SYNO.SDS.StorageAnalyzer._T("storage_report","duplicates"),iconCls:"icon-duplicate",fn:"SYNO.SDS.StorageAnalyzer.DetailView.Duplicate"},{text:_T("common","size"),iconCls:"icon-size",fn:"SYNO.SDS.StorageAnalyzer.DetailView.Size"},{text:SYNO.SDS.StorageAnalyzer._T("report","report_laf"),iconCls:"icon-mt",fn:"SYNO.SDS.StorageAnalyzer.DetailView.LeastModifyTime"},{text:SYNO.SDS.StorageAnalyzer._T("report","report_mmf"),iconCls:"icon-mt",fn:"SYNO.SDS.StorageAnalyzer.DetailView.MostModifyFile"}]}],listeners:{beforecollapsenode:function(){return false}}};this.pageList=new SYNO.ux.ModuleList(b);this.pageList.removeClass("syno-ux-modulelist");this.pageList.addClass("syno-ux-treepanel")}return this.pageList},setListItemDisabled:function(a){var b;for(b in a){if(a.hasOwnProperty(b)){var c=this.pageList.getNodeById("SYNO.SDS.StorageAnalyzer.DetailView."+b);if(a[b]){c.disable()}else{c.enable()}}}},adjustNodeText:function(d,c){var a=this.appWin.detailView.pageListPanel.pageList.nodeHash,b=a[d];b.setText(c)}});Ext.define("SYNO.SDS.StorageAnalyzer.ProfileView",{extend:"SYNO.ux.FleXcroll.DataView",restoreSelectionState:true,constructor:function(a){var b=this;b.callParent([b.fillConfig(a)]);b.addClass("syno-ux-expandable-listview");b.mon(b,"click",b.onClickEntry,b)},initComponent:function(){this.callParent(arguments);this.addEvents("enterEntry")},fillConfig:function(a){var b={tpl:this.createTpl(),cls:"profile-view",selectedClass:"item-selected",overClass:"item-over",itemSelector:"div.item-wrap",trackResetOnLoad:false,prepareData:(function(c){c.title=Ext.util.Format.htmlEncode(c.profile_name);c.simpleProfileStatus=this.getSimpleProfileStatus(c);c.schedule=this.getSchedule(c);c.statusIconCls=this.getStatusIconCls(c,c.status);c.statusCls=this.getStatusCls(c,c.status);c.entryCls=c.is_analyzer_ready?"enabled":"disabled";return c}).createDelegate(this)};Ext.apply(b,a);return b},createTpl:function(){var a=new Ext.XTemplate('<tpl for=".">','<div class="item-wrap {cls}">','<div class="item-summary">','<div class="item-icon {statusIconCls}" ext:qtip="{simpleProfileStatus}"></div>','<div class="item-desc">','<div class="item-title {titleCls}">{title}<span class="{statusCls}"> - {simpleProfileStatus}</span></div>','<div class="item-schedule normal-font" ext:qtip="{schedule:htmlEncode}">{schedule:htmlEncode}</div>',"</div>",'<div class="item-entry {entryCls}"><div class="item-entry-img"></div></div>',"</div>","</div>","</tpl>",'<div class="x-clear"></div>');return a},getStatusIconCls:function(c,b){var a="profile-ready";if(b==="collect_data"){a="profile-running"}else{if(b==="success"){if(c.link){a="profile-success"}}else{if(b==="fail"){a="profile-error"}}}return a},getStatusCls:function(c,b){var a="normal-font";if(b==="collect_data"){a="blue-status"}else{if(b==="success"){if(c.link){a="green-status"}}else{if(b==="fail"){a="red-status"}}}return a},getSchedule:function(b){var c=0,a=[],d=b.week_day;if(!b.enable_schedule||Ext.isEmpty(d)){return"--:--"}for(c=0;c<d.length;c++){if(d[c]==="1"){a.push(SYNO.SDS.StorageAnalyzer.UsageReport.WEEK_VALUE[c])}}return String.format("({0}:{1}) {2}",String.leftPad(b.hour,2,"0"),String.leftPad(b.minute,2,"0"),a.join(", "))},getSimpleProfileStatus:function(b){var a=b.status;var c;if(a==="collect_data"){c=SYNO.SDS.StorageAnalyzer._T("report","status_running")}else{if(a==="success"){if(b.link){c=SYNO.SDS.StorageAnalyzer._T("report","status_success")}else{c=SYNO.SDS.StorageAnalyzer._T("report","status_ready")}}else{if(a==="fail"){c=SYNO.SDS.StorageAnalyzer._T("report","status_fail")}else{c=SYNO.SDS.StorageAnalyzer._T("report","status_ready")}}}return Ext.util.Format.htmlEncode(c)},onClickEntry:function(a,b,f,g){var d=this,c=Ext.fly(f).child(".item-entry");if(g.within(c)){d.fireEvent("enterEntry",a,b,f,g)}},refreshData:function(a){this.getStore().loadData(a)}});Ext.define("SYNO.SDS.StorageAnalyzer.UsageReport.ProfileView",{extend:"SYNO.ux.Panel",blLocationCheck:true,blCreateProfileIfNotExist:true,isLocationValid:false,constructor:function(b){this.owner=b.owner;this.tbar=this.initToolBar();this.ctxMenu=new SYNO.SDS.StorageAnalyzer.UsageReport.CtxMenu({scope:this});this.store=this.createStore();this.profileView=new SYNO.SDS.StorageAnalyzer.ProfileView({owner:this,singleSelect:true,store:this.store,listeners:{scope:this,contextmenu:{fn:this.showContextMenu},selectionchange:{fn:this.onSelectionChange},dblclick:{fn:this.onDoubleClickProfile},enterEntry:{fn:this.onClickEntry},mouseenter:{fn:this.onMouseEnter},mouseleave:{fn:this.onMouseLeave}}});var a={cls:"profile-grid",title:SYNO.SDS.StorageAnalyzer._T("report","analyzer_profile")||"Analyzer Profile",layout:"fit",items:[this.profileView]};Ext.apply(b,a);this.callParent([b]);this.addEvents("refreshdata","stopupdate","enterdetailview")},stopPolling:function(){this.stopPollTask()},initToolBar:function(){var a;this.buttonProfileCreate=new SYNO.ux.Button({itemId:"buttonProfileCreate",text:_T("common","create"),handler:this.onCreate,disabled:_S("demo_mode"),tooltip:_S("demo_mode")?_JSLIBSTR("uicommon","error_demo"):"",scope:this});this.buttonProfileEdit=new SYNO.ux.Button({itemId:"buttonProfileEdit",text:_T("common","alt_edit"),handler:this.onEdit,disabled:true,tooltip:_S("demo_mode")?_JSLIBSTR("uicommon","error_demo"):"",scope:this});this.buttonProfileDelete=new SYNO.ux.Button({itemId:"buttonProfileDelete",text:_T("common","delete"),handler:this.onDelete,disabled:true,tooltip:_S("demo_mode")?_JSLIBSTR("uicommon","error_demo"):"",scope:this});this.itemReportHistory=new Ext.menu.Item({itemId:"itemReportHistory",text:SYNO.SDS.StorageAnalyzer._T("report","button_report_old_get"),handler:this.onGetOldReport,disabled:true,scope:this});this.itemReportGenerate=new Ext.menu.Item({itemId:"itemReportGenerate",text:SYNO.SDS.StorageAnalyzer._T("report","button_report_create_now"),handler:this.onGenerateReport,scope:this,disabled:true});this.menuReport=new SYNO.ux.Button({itemId:"ReportMg",text:SYNO.SDS.StorageAnalyzer._T("report","button_report"),scope:this,menu:{items:[this.itemReportHistory,this.itemReportGenerate]}});this.buttonSetting=new SYNO.ux.Button({disabled:this._S("demo_mode"),itemId:"Setting",text:SYNO.SDS.StorageAnalyzer._T("report","button_global_setting"),handler:this.onGlobalSetting,tooltip:this._S("demo_mode")?_JSLIBSTR("uicommon","error_demo"):"",scope:this});a=new Ext.Toolbar();a.add(this.buttonProfileCreate,this.buttonProfileEdit,this.buttonProfileDelete,this.menuReport,this.buttonSetting);return a},createStore:function(){return new Ext.data.Store({proxy:new Ext.data.MemoryProxy([]),reader:new Ext.data.JsonReader({root:"reports",id:"id"},["id","profile_name","mail","enable_schedule","report_type","shares","status","week_day","hour","minute","link","is_analyzer_ready"]),remoteSort:false})},startPollTask:function(a){a=a?true:false;this.stopPollTask();this.addMask({text:_T("common","loading")});this.getPollTaskId=this.pollReg({interval:15,immediate:a,webapi:{api:"SYNO.Core.Report.Config",method:"get",version:1},scope:this,status_callback:function(d,c,b){if(d){this.checkGlobalSetting(c)}else{SYNO.Debug("Ajax load failure "+c);this.addMask({text:_T("common","error_system")})}}})},stopPollTask:function(){if(!Ext.isEmpty(this.getPollTaskId)&&this.pollUnreg(this.getPollTaskId)){this.getPollTaskId=null}},getTip:function(){var a=this;if(!a.tooltip){a.tooltip=new Ext.Tip({constrainPosition:true,cls:"profile-tooltip",html:SYNO.SDS.StorageAnalyzer._T("report","analyze_profile_now"),showBy:function(b,d,c){if(!this.rendered){this.render(Ext.getBody())}c=c||[0,0];this.showAt(this.el.getAlignToXY(b,d||this.defaultAlign,c))}});a.tooltip.hide()}else{if(a.tooltip.rendered&&!a.tooltip.anchor){a.tooltip.anchor=a.tooltip.el.createChild({cls:"tooltip-anchor-bottom"})}}return a.tooltip},onMouseEnter:function(a,b,f,g){var d=this,c=Ext.get(f).child(".item-entry");if(c.hasClass("disabled")){return}d.getTip().show();d.getTip().showBy(c,"b-t",[0,5])},onMouseLeave:function(a,b,d,f){var c=this;c.getTip().hide()},onBeforeAction:function(){var a=this;if(!a.isLocationValid){a.checkAndSetLocation();return false}return true},onDoubleClickProfile:function(a,b,c,d){this.enterDetalView(a.getRecord(c))},onClickEntry:function(a,b,c,d){this.enterDetalView(a.getRecord(c))},enterDetalView:function(a){if(a.get("is_analyzer_ready")===true){this.fireEvent("enterdetailview",this,a)}},onSelectionChange:function(a,b){this.updateToolBarBts()},onCreate:function(){var a=this;if(!a.onBeforeAction()){return}a.stopUpdateData();SYNO.SDS.StorageAnalyzer.Utils.OpenProfileWizard({outPanel:a,owner:a.appWin},a.retriveData,a)},onGlobalSetting:function(){var a=this;a.stopUpdateData();SYNO.SDS.StorageAnalyzer.Utils.OpenGlobalSetting({outPanel:this,owner:this.appWin},a.retriveData,a)},onEdit:function(b,d){var c=this;if(!c.onBeforeAction()){return}c.stopUpdateData();var a=c.profileView.getSelectedRecords()[0];if(!Ext.isDefined(a)){return}SYNO.SDS.StorageAnalyzer.Utils.OpenEditDialog({outPanel:this,owner:c.appWin,id:a.get("id"),profile_name:a.get("profile_name")},c.retriveData,c)},onDelete:function(b,d){var a=this.profileView.getSelectedRecords()[0],f,e,c=this;if(!Ext.isDefined(a)){return}e=a.get("id");c.stopUpdateData();f={api:"SYNO.Core.Report",method:"delete",version:1,scope:c,params:{id:e},callback:function(i,h,g){if(i){c.retriveData()}else{c.appWin.getMsgBox().alert(SYNO.SDS.StorageAnalyzer._T("report","report_name"),_T("error","error_error_system"))}c.removeMask()}};c.stopUpdateData();c.appWin.getMsgBox().confirmDelete(SYNO.SDS.StorageAnalyzer._T("report","report_name"),_T("common","remove_cfrmrmv"),function(g){if(g==="yes"){c.addMask({text:_T("common","saving")});c.sendWebAPI(f)}else{c.retriveData()}},c)},onGetOldReport:function(b,e){var a=this.profileView.getSelectedRecords()[0],f="",c="",d=this;if(Ext.isDefined(a)){f=a.get("id");c=a.get("profile_name")}d.stopUpdateData();SYNO.SDS.StorageAnalyzer.Utils.OpenHistoryDialog({outPanel:d,cls:"storage-report-history",owner:d.appWin,profile_name:c,profile_id:f},d.retriveData,d)},onGenerateReport:function(c,e){var d=this;if(!d.onBeforeAction()){return}var a=d.profileView.getSelectedRecords()[0];var b;if(!Ext.isDefined(a)){return}var f=a.get("id");b={api:"SYNO.Core.Report",method:"export",version:1,scope:this,params:{id:f},callback:function(i,h,g){if(!i){d.appWin.getMsgBox().alert(SYNO.SDS.StorageAnalyzer._T("report","report_name"),_T("error","error_error_system"))}d.retriveData();d.removeMask()}};d.stopUpdateData();d.addMask({text:_T("common","msg_waiting")});d.sendWebAPI(b)},showContextMenu:function(a,b,d,f){f.preventDefault();var c=false;if(!a.isSelected(b)){a.select(b)}this.updateToolBarBts();if(true!==_S("demo_mode")){c=(a.getSelectedRecords()[0].data.status==="collect_data");this.ctxMenu.setEditMenuDisabled(c);this.ctxMenu.setGenerateMenuDisabled(c)}this.ctxMenu.showAt(f.getXY())},updateToolBarBts:function(){var a=this.profileView,b=false;if(_S("demo_mode")){return}if(a.getSelectionCount()>0){this.buttonProfileDelete.setDisabled(false);this.menuReport.menu.items.get("itemReportHistory").enable();if(a.getSelectedRecords()[0].data.status==="collect_data"){this.menuReport.menu.items.get("itemReportGenerate").disable();this.buttonProfileEdit.setDisabled(true)}else{this.menuReport.menu.items.get("itemReportGenerate").enable();this.buttonProfileEdit.setDisabled(false)}}else{this.buttonProfileEdit.setDisabled(true);this.buttonProfileDelete.setDisabled(true);this.menuReport.menu.items.get("itemReportHistory").disable();this.menuReport.menu.items.get("itemReportGenerate").disable()}this.store.each(function(c){if(c.data.status==="collect_data"){b=true;return false}},this);this.buttonSetting.setDisabled(b);return},checkGlobalSetting:function(a){if(Ext.isDefined(a.report_moving)){this.addMask({text:SYNO.SDS.StorageAnalyzer._T("report","msg_moving_reports")});return}this.removeMask();if(a.report_location!==undefined){this.isLocationValid=true}else{this.isLocationValid=false;if(this.blLocationCheck){this.checkAndSetLocation()}}return},checkAndSetLocation:function(){var a=this.appWin.getMsgBox();a.confirm("",SYNO.SDS.StorageAnalyzer._T("report","report_location_error"),function(c,d,b){this.blLocationCheck=false;if("yes"===c){this.onGlobalSetting()}},this)},getStatus:function(a){this.store.loadData(a);this.updateToolBarBts();this.popCreateProfileIfNeed(a);return},popCreateProfileIfNeed:function(b){if(0===b.total&&this.blCreateProfileIfNotExist){var a=this;if(!this.isLocationValid){return}this.blCreateProfileIfNotExist=false;a.stopUpdateData();SYNO.SDS.StorageAnalyzer.Utils.OpenProfileWizard({outPanel:a,owner:a.appWin},a.retriveData,a)}},retriveData:function(){this.fireEvent("refreshdata",this)},stopUpdateData:function(){this.fireEvent("stopupdate",this)},refreshData:function(a){this.getStatus(a)},addMask:function(a){this.el.mask(a.text,"x-mask-loading")},removeMask:function(){this.el.unmask()},destroy:function(){var a=this;a.stopUpdateData();if(a.tooltip){Ext.destroy(a.tooltip)}a.callParent(arguments)}});Ext.define("SYNO.SDS.StorageAnalyzer.DetailView.Main",{extend:"SYNO.ux.Panel",timeVersion:{},constructor:function(a){this.callParent([this.fillConfig(a)])},fillConfig:function(a){this.pageListPanel=new SYNO.SDS.StorageAnalyzer.DetailView.PageListPanel({appWin:a.appWin,owner:a.appWin,module:this,region:"center"});var b={layout:"border",cls:"storage-report-dataview",tbar:{xtype:"syno_toolbar",cls:"storage-report-dataview-toolbar",height:32,items:[{xtype:"syno_button",cls:"home-bg",width:40,scope:this,handler:function(){this.fireEvent("enteroverview")}},{xtype:"syno_button",text:_T("common","alt_edit"),scope:this,handler:this.onEdit},{xtype:"syno_button",itemId:"btn_view_report",text:SYNO.SDS.StorageAnalyzer._T("storage_report","view_complete_report"),disabled:true,scope:this,handler:this.onViewReport}]},items:[this.pageListPanel,{xtype:"container",margins:{top:8,right:0,bottom:0,left:0},cls:"timeline",height:87,layout:"fit",ref:"timeLineContainer",region:"south"}],listeners:{scope:this,deactivate:this.onDeactivate}};Ext.apply(b,a);return b},onResize:function(b,a){this.callParent(arguments)},onEdit:function(){SYNO.SDS.StorageAnalyzer.Utils.OpenEditDialog({outPanel:this,owner:this.appWin,id:this.record.get("id"),record:this.record,profile_name:this.record.get("profile_name")},Ext.emptyFn,this)},onViewReport:function(){window.open(Ext.urlAppend("/dar/"+this.record.id+"/"+this.record.time+"/report.html"),"_blank")},getTimeLine:function(){var b=this,c={id:b.record.id},a=this.getTopToolbar().getComponent("btn_view_report");a.setDisabled(true);if(b.timeLine&&b.timeLine.getEl()){b.timeLine.getEl().mask(_T("common","loading"),"x-mask-loading")}b.sendWebAPI({api:"SYNO.Core.Report.History",method:"get",version:1,scope:this,params:c,callback:function(f,e,d){if(f){b.createTimeLine(e,d);a.setDisabled(!this.record.get("link"))}else{if(b.timeLine&&b.timeLine.getEl()){b.timeLine.getEl().mask(_T("common","error_system"),"x-mask-loading")}}}})},createTimeLine:function(g,b){var j=this,d,k,c,a=[],e=g.histories,h={},f;if(j.timeLine){j.timeLineContainer.remove(j.timeLine,true)}for(f=e.length-1;f>=0;f--){h=e[f];if(h.is_analyzer_ready!==true){break}d=h.time.split("_");if(k===d[0].replace(/-/g,"/")){continue}k=d[0].replace(/-/g,"/");c="";if(d[1]){c=d[1].replace(/-/g,":")}a.push(String.format("{0} {1}",k,c));j.timeVersion[h.time]=h.version}j.timeLine=new SYNO.SDS.Utils.TimeLine({appWin:j.appWin,owner:j.appWin,module:this,selectedDate:new Date(a.length>0?a[0]:""),maxDate:new Date(a.length>0?a[0]:""),minDate:new Date(a.length>0?a[a.length-1]:""),markedDate:a,is_confirm_duplicate_ready:e[e.length-1].is_confirm_duplicate_ready,is_analyzer_ready:e[e.length-1].is_analyzer_ready,duplicate_stat:j.getDuplicateStat(e),version:e[e.length-1].version,listeners:{scope:j,select:{fn:function(i){if(!j.record){return}j.record.time=i.format("Y-m-d_H-i-s");j.setDuplicatePageList(j.timeLine.duplicate_stat[j.record.time]);j.pageListPanel.activePage.fireEvent("activate")}}}});j.timeLineContainer.add(j.timeLine);j.timeLineContainer.doLayout()},getDuplicateStat:function(a){var b={};a.forEach(function(e,d,c){b[e.time]={visible:e.is_duplicate_visible,full_checked:e.is_confirm_duplicate_ready}});return b},setDuplicatePageList:function(a){var b=this.pageListPanel.getPageList(),c=b.getNodeById("SYNO.SDS.StorageAnalyzer.DetailView.Duplicate");if(!a.visible){if(b.getSelectionModel().isSelected(c)){b.getSelectionModel().unselect(c,true);this.pageListPanel.selectPage("SYNO.SDS.StorageAnalyzer.DetailView.Usage")}this.pageListPanel.setListItemDisabled({Duplicate:true});return}else{this.pageListPanel.setListItemDisabled({Duplicate:false})}if(a.full_checked){this.pageListPanel.adjustNodeText("SYNO.SDS.StorageAnalyzer.DetailView.Duplicate",SYNO.SDS.StorageAnalyzer._T("report","reportUI_duplicate_accurate_list"))}else{this.pageListPanel.adjustNodeText("SYNO.SDS.StorageAnalyzer.DetailView.Duplicate",SYNO.SDS.StorageAnalyzer._T("storage_report","duplicates"))}},onDeactivate:function(){if(this.pageListPanel.activePage){this.pageListPanel.activePage.fireEvent("deactivate")}delete this.timeline;delete this.timeVersion;this.timeVersion={}},setProfile:function(b){var a=(this.record)?(this.record.id===b.id):false;this.record=b;this.getTimeLine();if(!this.pageListPanel.activePage||!a){this.pageListPanel.selectPage("SYNO.SDS.StorageAnalyzer.DetailView.Usage")}else{this.pageListPanel.activePage.fireEvent("activate")}}});Ext.define("SYNO.SDS.StorageAnalyzer.Overview",{extend:"SYNO.ux.Panel",constructor:function(a){Ext.applyIf(this,{owner:a.owner});var b=this.fillConfig(a);this.callParent([b])},initEvents:function(){this.callParent(arguments);this.relayEvents(this.profileView,["enterdetailview"])},fillConfig:function(a){this.profileView=new SYNO.SDS.StorageAnalyzer.UsageReport.ProfileView({appWin:this.owner,owner:this,region:"south",header:true,height:176,listeners:{scope:this,refreshdata:{fn:function(){this.startPollTask(true)}},stopupdate:{fn:function(){this.stopPollTask()}}}});var b={cls:"storage-report-overview",layout:"border",items:[this.volumeUsagePanel=new SYNO.SDS.StorageAnalyzer.VolumeUsage.Panel({border:false,region:"center",owner:a.owner,appWin:a.appWin}),this.profileView],listeners:{activate:{fn:function(){this.startPollTask(true)},scope:this,buffer:100},deactivate:{fn:this.stopPollTask,scope:this,buffer:100}}};return Ext.apply(b,a)},startPollTask:function(a){this.stopPollTask();this.volumeUsagePanel.startPollTask(true);this.profileView.startPollTask(true);this.listPollTaskId=this.pollReg({interval:15,immediate:!!a,webapi:{api:"SYNO.Core.Report",method:"list",version:1},scope:this,status_callback:function(d,c,b){if(d){this.refreshData(c)}else{SYNO.Debug("Ajax load failure "+c)}}})},stopPollTask:function(){this.profileView.el.unmask();if(Ext.isString(this.listPollTaskId)&&this.pollUnreg(this.listPollTaskId)){this.listPollTaskId=null}this.profileView.stopPollTask();this.volumeUsagePanel.stopPollTask()},refreshData:function(a){this.profileView.refreshData(a)},destroy:function(){this.stopPollTask();this.callParent(arguments)}});Ext.define("SYNO.SDS.StorageAnalyzer.VolumeUsage.Panel",{extend:"SYNO.ux.Panel",constructor:function(a){var b=this.fillConfig(a);this.pageBtnArray=[];this.callParent([b])},fillConfig:function(a){var d=this,b=[];d.createVolumeUsageChart(a);d.createVolumeUsageGrid(a);if(!Ext.isIE8){b.push(d.volumeUsageChart)}b.push(d.volumeUsageGrid);var c={defaults:{hideMode:"visibility"},layout:"card",cls:"volume-usage",activeItem:Ext.isIE8?"volumeUsageGrid":"volumeUsageChart",header:true,title:SYNO.SDS.StorageAnalyzer._T("report","report_volume_usage"),items:b};return Ext.apply(c,a)},afterRender:function(){var b=this,c,a;b.callParent(arguments);b.pagingContainer=b.header.createChild({cls:"volume-usage-paging-container"});b.items.each(function(e,d){c=e.itemId;a=this.pagingContainer.createChild({cls:"volume-usage-paging-btn","data-itemID":c,html:d+1});this.pageBtnArray.push(a)},b);Ext.each(this.pageBtnArray,function(d){d.on("click",this.onClickPageBtn,this)},b);b.mon(b,"afterlayout",function(){if(this.items.length<2){this.refreshPageBtn();return}this.getPollChartTask().start(false)},b,{single:true})},createVolumeUsageChart:function(a){var b=this;if(b.volumeUsageChart){return b.volumeUsageChart}b.volumeUsageChart=new SYNO.SDS.StorageAnalyzer.VolumeUsage.VolumeUsageChart({appWin:a.appWin,owner:b,itemId:"volumeUsageChart"});return b.volumeUsageChart},createVolumeUsageGrid:function(a){var b=this;if(b.volumeUsageGrid){return b.volumeUsageGrid}b.volumeUsageGrid=new SYNO.SDS.StorageAnalyzer.UsageReport.VolumeUsage.Grid({appWin:a.appWin,owner:b,itemId:"volumeUsageGrid"});return b.volumeUsageGrid},getPollChartTask:function(){var a=this;a.pollChartTask=a.pollChartTask||a.addTask({id:"polling_banner_task",interval:5*1000,run:a.changeChart,scope:a});return a.pollChartTask},startPollTask:function(a){var b=this;b.stopPollTask();b.el.mask(_T("common","loading"),"x-mask-loading");b.listPollTaskId=this.pollReg({interval:60,immediate:!!a,webapi:{api:"SYNO.Core.Report.Analyzer",method:"getdata",version:1,params:{id:"global",source:"volume",filter:{in_days:8}}},scope:b,status_callback:function(e,d,c){if(e){this.refreshData(d)}else{SYNO.Debug("Ajax load failure "+d)}}})},stopPollTask:function(){this.el.unmask();if(Ext.isString(this.listPollTaskId)&&this.pollUnreg(this.listPollTaskId)){this.listPollTaskId=null}},changeChart:function(){var c=this,b=c.getLayout(),a=c.items.indexOf(b.activeItem)||0;b.setActiveItem((a+1)%c.items.length)},refreshPageBtn:function(){var a=this;Ext.each(a.pageBtnArray,function(b){this.refreshPageBtnStatus(b)},a)},onClickPageBtn:function(c,a,d){var b=this;this.getPollChartTask().stop();b.getLayout().setActiveItem(Ext.fly(a).getAttribute("data-itemId"));b.refreshPageBtn()},refreshPageBtnStatus:function(b){var a="btn-selected";if(this.getLayout().activeItem.itemId===b.getAttribute("data-itemId")){b.addClass(a)}else{b.removeClass(a)}},refreshData:function(b){var a=this;a.el.unmask();if(b.total===0){a.el.mask(_T("volume","volume_no_volumes"),"syno-ux-mask-info")}a.items.each(function(c){if(c.loadData&&Ext.isFunction(c.loadData)){c.loadData(b)}},a)},destroy:function(){var a=this;a.pageBtnArray=null;a.stopPollTask();a.removeDelayedTask("polling_banner_task");a.callParent(arguments)}});Ext.define("SYNO.SDS.StorageAnalyzer.VolumeUsage.VolumeUsageChart",{extend:"Ext.Container",constructor:function(a){var b=this.fillConfig(a);this.callParent([b])},fillConfig:function(a){var c=this;c.createVolumeUsageChart(a);c.createVolumeUsageBarChart(a);var b={defaults:{hideMode:"offsets"},cls:"volumeUsageChart",layout:"card",activeItem:"volumeUsageLineChart",items:[c.volumeUsageChart,c.volumeUsageBarChart]};return Ext.apply(b,a)},createVolumeUsageBarChart:function(a){var b=this;if(b.volumeUsageBarChart){return b.volumeUsageBarChart}b.volumeUsageBarChart=new SYNO.SDS.StorageAnalyzer.VolumeUsage.BarChart({appWin:a.appWin,owner:b,itemId:"volumeUsageBarChart"});return b.volumeUsageBarChart},createVolumeUsageChart:function(a){var b=this;if(b.volumeUsageChart){return b.volumeUsageChart}b.volumeUsageChart=new SYNO.SDS.StorageAnalyzer.VolumeUsage.LineChart({appWin:a.appWin,owner:b,itemId:"volumeUsageLineChart"});return b.volumeUsageChart},loadData:function(b){var a=this;if(b.analyses.length===1){a.getLayout().setActiveItem("volumeUsageBarChart")}else{a.getLayout().setActiveItem("volumeUsageLineChart")}a.items.each(function(c){if(c.loadData&&Ext.isFunction(c.loadData)){c.loadData(b)}},a)}});Ext.define("SYNO.SDS.StorageAnalyzer.Application",{extend:"SYNO.SDS.AppInstance",appWindowName:"SYNO.SDS.StorageAnalyzer.MainWindow"});Ext.define("SYNO.SDS.StorageAnalyzer.MainWindow",{extend:"SYNO.SDS.AppWindow",constructor:function(a){var b=this;b.callParent([b.fillConfig(a)]);b.mon(b.overview,"enterdetailview",b.onEnterDetailView,b);b.mon(b.detailView,"enteroverview",b.onEnterOverView,b);SYNO.SDS.StorageAnalyzer.QuickTips.init()},fillConfig:function(a){var b={cls:"storage-report",defaults:{hideMode:"offsets"},itemId:"mainWin",minWidth:965,minHeight:500,width:965,height:580,layout:"card",activeItem:"overview",items:[this.createOverView(),this.createDetailView()]};Ext.apply(b,a);return b},createOverView:function(){var a=this;if(a.overview){return a.overview}a.overview=new SYNO.SDS.StorageAnalyzer.Overview({owner:a,appWin:a,itemId:"overview"});return a.overview},createDetailView:function(){var a=this;if(a.detailView){return a.detailView}a.detailView=new SYNO.SDS.StorageAnalyzer.DetailView.Main({owner:this,appWin:this,itemId:"detailView"});return a.detailView},onEnterDetailView:function(b,a){this.getLayout().setActiveItem("detailView");this.detailView.setProfile(a)},onEnterOverView:function(){this.getLayout().setActiveItem("overview")}});