TaskContent.min.js 8.4 KB

1
  1. MWF.xApplication.BAM.summary=MWF.xApplication.BAM.summary||{};MWF.xApplication.BAM.summary.TaskContent=new Class({Implements:[Options,Events],options:{style:"default",max:true},initialize:function(t,e,i){this.setOptions(i);this.summary=t;this.app=this.summary.app;this.css=this.app.css;this.lp=this.app.lp;this.container=$(e);this.category="application";this.data=this.summary.categoryData;this.maxColumn=10;this.barOptions={style:"task"};this.load()},load:function(){this.loadArea(this.lp.task);this.loadBarData(this.loadBar.bind(this))},reload:function(){if(this.countBar)this.countBar.destroy();if(this.elapsedBar)this.elapsedBar.destroy();if(this.elapsedCountBar)this.elapsedCountBar.destroy();if(this.timeoutRateBar)this.timeoutRateBar.destroy();if(this.timelinessRateBar)this.timelinessRateBar.destroy();this.countBar=null;this.elapsedBar=null;this.elapsedCountBar=null;this.timeoutRateBar=null;this.timelinessRateBar=null;if(this.countNode)this.countNode.empty();if(this.expiredNode)this.expiredNode.empty();if(this.expiredCountNode)this.expiredCountNode.empty();if(this.timeoutRateNode)this.timeoutRateNode.empty();if(this.timelinessRateNode)this.timelinessRateNode.empty();this.loadBarData(function(){this.loadBar()}.bind(this))},loadArea:function(t){this.node=new Element("div",{styles:this.css.taskContentNode}).inject(this.container);this.headNode=new Element("div",{styles:this.css.taskRankHeadNode}).inject(this.node);this.categoryNode=new Element("div",{styles:this.css.taskRankCategoryNode}).inject(this.headNode);this.actionNode=new Element("div",{styles:this.css.taskRankActionNode}).inject(this.headNode);this.titleNode=new Element("div",{styles:this.css.taskRankTitleNode,text:t}).inject(this.headNode);this.chartAreaNode=new Element("div",{styles:this.css.contentChartAreaNode}).inject(this.node);this.loadTab();this.loadCategory();if(this.options.max){this.actionNode.addEvent("click",function(){if(!this.maxNode){this.maxSizeChart()}else{this.returnSizeChart()}}.bind(this))}},returnSizeChart:function(){this.resizeReturnChart();var t=this.container.getSize();var e=this.container.getPosition(this.container.getOffsetParent());new Fx.Morph(this.maxNode,{duration:150}).start({height:""+t.y+"px",width:""+t.x+"px",left:""+e.x+"px",top:""+e.y+"px"}).chain(function(){this.maxNode.destroy();this.maxNode=null;this.reload();if(this.resizeMaxChartFun)this.app.removeEvent("resize",this.resizeMaxChartFun)}.bind(this))},resizeReturnChart:function(){this.node.inject(this.container);this.node.setStyles(this.css.taskContentNode);this.chartAreaNode.setStyles(this.css.contentChartAreaNode);this.actionNode.setStyles(this.css.taskRankActionNode);var t=this.chartAreaNode.getSize();var e=t.y-24;this.countNode.setStyle("height",""+e+"px");this.expiredNode.setStyle("height",""+e+"px");this.expiredCountNode.setStyle("height",""+e+"px");if(this.timeoutRateNode)this.timeoutRateNode.setStyle("height",""+e+"px");if(this.timelinessRateNode)this.timelinessRateNode.setStyle("height",""+e+"px");this.maxColumn=10;this.barOptions={marginBottom:46,style:"task"}},maxSizeChart:function(){this.createMaxNode();var t=this.app.content.getSize();var e=t.x-18;var i=t.y-18;new Fx.Morph(this.maxNode,{duration:150}).start({height:""+i+"px",width:""+e+"px",left:"5px",top:"5px"}).chain(function(){this.reloadMaxChart();this.resizeMaxChartFun=this.resizeMaxChart.bind(this);this.app.addEvent("resize",this.resizeMaxChartFun)}.bind(this))},resizeMaxChart:function(){var t=this.app.content.getSize();var e=t.x-18;var i=t.y-18;this.maxNode.setStyles({height:""+i+"px",width:""+e+"px",left:"5px",top:"5px"});this.reloadMaxChart()},reloadMaxChart:function(){this.node.inject(this.maxNode);this.node.setStyles(this.css.taskContentNode_max);this.chartAreaNode.setStyles(this.css.contentChartAreaNode_max);this.actionNode.setStyles(this.css.taskRankActionNode_max);var t=this.chartAreaNode.getSize();var e=t.y-80;this.countNode.setStyle("height",""+e+"px");this.expiredNode.setStyle("height",""+e+"px");this.expiredCountNode.setStyle("height",""+e+"px");if(this.timeoutRateNode)this.timeoutRateNode.setStyle("height",""+e+"px");if(this.timelinessRateNode)this.timelinessRateNode.setStyle("height",""+e+"px");this.maxColumn=Math.round(t.x/40);this.barOptions={marginBottom:100,delay:10,style:"task_max"};this.reload()},createMaxNode:function(){this.maxNode=new Element("div",{styles:this.css.contentChartMaxAreaNode}).inject(this.container,"after");var t=this.container.getSize();this.maxNode.setStyles({height:""+t.y+"px",width:""+t.x+"px"});this.maxNode.position({relativeTo:this.container,position:"upperLeft",edge:"upperLeft"})},loadTab:function(){this.tab=new MWF.widget.Tab(this.chartAreaNode,{style:"BAM_content"});this.tab.load();this.countNode=new Element("div",{styles:this.css.contentTabAreaNode});this.expiredNode=new Element("div",{styles:this.css.contentTabAreaNode});this.expiredCountNode=new Element("div",{styles:this.css.contentTabAreaNode});this.timeoutRateNode=new Element("div",{styles:this.css.contentTabAreaNode});this.countPage=this.tab.addTab(this.countNode,this.lp.contentTypeCount);this.expiredPage=this.tab.addTab(this.expiredNode,this.lp.contentTypeExpired);this.expiredCountPage=this.tab.addTab(this.expiredCountNode,this.lp.taskContentTypeExpiredCount);this.timeoutRatePage=this.tab.addTab(this.timeoutRateNode,this.lp.timeout)},loadBar:function(){MWF.require("MWF.widget.chart.Bar",function(){this.countPage.addEvent("show",function(){if(!this.countBar){this.countBar=this.loadBarChart(this.countNode,this[this.category+"Data"].taskCount.slice(0,this.maxColumn),this.barOptions)}else{this.countBar.transition()}}.bind(this));this.expiredPage.addEvent("show",function(){if(!this.elapsedBar){this.elapsedBar=this.loadBarChart(this.expiredNode,this[this.category+"Data"].taskDuration.slice(0,this.maxColumn),this.barOptions)}else{this.elapsedBar.transition()}}.bind(this));this.expiredCountPage.addEvent("show",function(){if(!this.elapsedCountBar){this.elapsedCountBar=this.loadBarChart(this.expiredCountNode,this[this.category+"Data"].taskElapsedCount.slice(0,this.maxColumn),this.barOptions)}else{this.elapsedCountBar.transition()}}.bind(this));this.timeoutRatePage.addEvent("show",function(){if(!this.timeoutRateBar){var t=this.barOptions?Object.clone(this.barOptions):{};t.tickFormat=".0%";t.dataFormat=".1%";this.timeoutRateBar=this.loadBarChart(this.timeoutRateNode,this[this.category+"Data"].taskTimeoutRate.slice(0,this.maxColumn),t)}else{this.timeoutRateBar.transition()}}.bind(this));if(this.countPage.isShow){this.countPage.showIm()}else{this.countPage.showTabIm()}}.bind(this))},loadBarChart:function(t,e,i){var s=new MWF.widget.chart.Bar(t,e,"name",i);s.addBar("value");s.addEvents({mouseover:function(t,e,i,s){e.filter(function(t,e){return e==s}).attr("display","block");var a=t.filter(function(t,e){return e==s});var o=a.attr("fill");a.node().store("color",o);a.attr("fill","brown")}.bind(this),mouseout:function(t,e,i,s){e.filter(function(t,e){return e==s}).attr("display","none");var a=t.filter(function(t,e){return e==s});var o=a.node().retrieve("color");a.attr("fill",o)}.bind(this)});s.load();return s},loadCategory:function(){var t=new MWF.widget.UUID;var e="<input name='"+t+"TaskRankCategory' type='radio' value='application' checked>"+this.lp.application+"<input name='"+t+"TaskRankCategory' type='radio' value='process'>"+this.lp.process+"<input name='"+t+"TaskRankCategory' type='radio' value='activity'>"+this.lp.activity;this.categoryNode.set("html",e);var i=this;this.categoryNode.getElements("input").addEvent("click",function(){i.category=this.value;i.reload()})},loadBarData:function(t){var e="load-"+this.category+"-data";this[e.camelCase()](function(){if(t)t()}.bind(this))},loadApplicationData:function(t){if(!this.applicationData){this.applicationData=this.app.actions.getTaskContentData(this.summary.categoryData.application||[]);if(t)t()}else{if(t)t()}},loadProcessData:function(t){if(!this.processData){this.processData=this.app.actions.getTaskContentData(this.summary.categoryData.process||[]);if(t)t()}else{if(t)t()}},loadActivityData:function(t){if(!this.activityData){this.activityData=this.app.actions.getTaskContentData(this.summary.categoryData.activity||[],function(t){return t.processName+"-"+t.name});if(t)t()}else{if(t)t()}},destroy:function(){if(this.countBar)this.countBar.destroy();if(this.elapsedBar)this.elapsedBar.destroy();if(this.elapsedCountBar)this.elapsedCountBar.destroy();if(this.timeoutRateBar)this.timeoutRateBar.destroy();if(this.timelinessRateBar)this.timelinessRateBar.destroy();MWF.release(this)}});