﻿
Ext.namespace("Credit360","Credit360.Portlets");Credit360.Portlets.TargetDashboard=function(config){this.id=Ext.id();this.settingsFormId=Ext.id();this.sortByPeriodIdx=0;this.sortDir=-1;config.dashboardSid=parseInt(new String(config.dashboardSid),10)||config.dashboardSid;config.indSid=parseInt(new String(config.indSid),10)||config.indSid;Credit360.Portlets.TargetDashboard.superclass.constructor.call(this,config);}
Ext.extend(Credit360.Portlets.TargetDashboard,Credit360.Portlets.PortletBase,{layout:'fit',autoScroll:true,dataJson:null,renderPortlet:function(){if(!this.state.dashboardSid){this.renderNotConfiguredPanel(__tr('No target dashboard selected'));this.doLayout();return;}
if(!this.checkDashboardExists()){this.renderNotConfiguredPanel(__tr('This dashboard doesn\'t exist anymore or you have no permissions to view it.'));this.doLayout();return;}
this.renderNotConfiguredPanel(__tr('Loading...'));this.doLayout();TargetDashboardHandler.getData(this.state.dashboardSid,this.state.indSid?this.state.indSid:null,this.dataLoaded,this);},checkDashboardExists:function(){var isFound=false;for(var i=0;i<this.dashboardList.length;++i){if(this.dashboardList[i].targetDashboardSid==this.state.dashboardSid){isFound=true;break;}}
return isFound;},dataLoaded:function(o){this.dataJson=o;this.removeAll();this.renderHeader();this.add(new Credit360.TargetDashboard(o));this.doLayout();},renderHeader:function(){var p={xtype:'panel',layout:'fit',autoHeight:true,autoWidth:true,autoEl:{tag:'div',cls:'info',html:__tr('Indicator: {0}{2}{1}, Unit of measure: {0}{3}{1}','<b>','</b>',this.dataJson.selectedInd.description,this.dataJson.selectedInd.unitOfMeasure)}}
this.add(p);},showSettings:function(){var tpl=new Ext.XTemplate('<tpl for=".">','<div class="csr-dataview-item" id="targetDashboardSid"><strong>{name}</strong>, {periodFmt}, {intervalFmt}</div>','</tpl>');var store=new Ext.data.JsonStore({fields:[{name:"targetDashboardSid"},{name:"name"},{name:"periodFmt"},{name:"intervalFmt"}],data:this.dashboardList});var dv=new Ext.DataView({height:210,store:store,singleSelect:true,style:'padding: 0 0 10px 0;overflow: auto;overflow-x: hidden;',itemSelector:'div.csr-dataview-item',selectedClass:'csr-dataview-item-selected',overClass:'csr-dataview-item-over',emptyText:__tr('No target dashboard is available'),tpl:tpl,listeners:{'selectionchange':function(view,selection){var selectedDashSid=parseInt(selection[0].id.split('_')[1]);if(this.state.dashboardSid&&selectedDashSid==this.state.dashboardSid)
selectedIndicatorCombo.enable();else
selectedIndicatorCombo.disable();},scope:this}});var selectedIndicatorCombo=new Ext.form.ComboBox({width:150,displayField:'description',valueField:'sid',editable:false,disabled:this.dataJson?this.state.dashboardSid!=this.dataJson.dashboardSid:true,triggerAction:'all',mode:'local',store:new Ext.data.SimpleObjectStore({fields:['sid','description'],data:this.dataJson?this.dataJson.inds:[]}),fieldLabel:__tr('Selected indicator'),lazyRender:true,value:this.dataJson?this.dataJson.selectedInd.sid:''});var win=new Ext.Window({title:__tr('Settings'),closable:true,width:400,height:330,layout:'fit',modal:true,shadow:true,items:[{xtype:'tabpanel',activeItem:0,border:false,deferredRender:false,items:[{xtype:'form',labelAlign:'right',labelWidth:150,autoScroll:true,title:__tr('Data source'),items:[dv,selectedIndicatorCombo]},{title:__tr('Options'),items:{xtype:'form',labelAlign:'right',labelWidth:150,baseCls:'formPanel',id:this.settingsFormId,style:'background: #fff; padding: 5px',plain:true,border:false,frame:false,hideMode:'offsets',items:this.getSettingsFields()}}]}],buttons:[{text:__tr('Save'),handler:function(e,target,panel){var isFormValid=Ext.getCmp(this.settingsFormId).getForm().isValid();if(!isFormValid)
return;var selectedRecord=dv.getSelectedRecords()[0];if(selectedRecord){if(this.state.dashboardSid!=selectedRecord.get('sid')){this.state.indSid=null;this.state.sortByPeriodIdx=0
this.state.sortDir=-1}
this.state.dashboardSid=selectedRecord.get('targetDashboardSid');}
var selectedIndicatorSid=selectedIndicatorCombo.getValue();if(selectedIndicatorSid){this.state.indSid=selectedIndicatorSid;}
if(this.state.dashboardSid){this.removeAll();this.renderNotConfiguredPanel(__tr('Loading...'));this.doLayout();TargetDashboardHandler.getData(this.state.dashboardSid,this.state.indSid?this.state.indSid:null,this.dataLoaded,this);}
this.updatePortletSettings();HomeHandler.saveState(this.tabPortletId,this.state,function(){Credit360.Page.showMessage(__tr('Updated.'));},this);win.close();},scope:this},{text:__tr('Close'),handler:function(){win.close();}}]});win.show();dv.select('dashboard_'+this.state.dashboardSid);}});