TaskRank.min.js 8.7 KB

1
  1. MWF.xApplication.BAM.summary=MWF.xApplication.BAM.summary||{};MWF.xApplication.BAM.summary.TaskRank=new Class({Implements:[Options,Events],options:{style:"default"},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="unit";this.data=null;this.maxColumn=10;this.barOptions={style:"default",marginBottom:5};this.load()},load:function(){this.node=new Element("div",{styles:this.css.taskRankContentAreaNode}).inject(this.container);this.loadTaskRankArea();this.loadBarData(this.loadBar.bind(this))},reload:function(){if(this.durationBar)this.durationBar.destroy();if(this.elapsedCountBar)this.elapsedCountBar.destroy();if(this.completedCountBar)this.completedCountBar.destroy();if(this.completedTimelinessBar)this.completedTimelinessBar.destroy();if(this.timeoutRateBar)this.timeoutRateBar.destroy();this.durationBar=null;this.elapsedCountBar=null;this.completedCountBar=null;this.completedTimelinessBar=null;this.timeoutRateBar=null;this.durationNode.empty();this.expiredCountNode.empty();this.completedCountNode.empty();this.completedTimelinessNode.empty();this.timeoutRateNode.empty();this.loadBarData(this.loadBar.bind(this))},loadBar:function(){MWF.require("MWF.widget.chart.Bar",function(){this.durationPage.addEvent("show",function(){if(!this.durationBar){this.durationBar=this.loadBarChart(this.durationNode,this[this.category+"RankData"].taskDuration.slice(0,this.maxColumn))}else{this.durationBar.transition()}}.bind(this));this.expiredCountPage.addEvent("show",function(){if(!this.elapsedCountBar){this.elapsedCountBar=this.loadBarChart(this.expiredCountNode,this[this.category+"RankData"].taskElapsedCount.slice(0,this.maxColumn))}else{this.elapsedCountBar.transition()}}.bind(this));this.completedCountPage.addEvent("show",function(){if(!this.completedCountBar){this.completedCountBar=this.loadBarChart(this.completedCountNode,this[this.category+"RankData"].taskCompletedCount.slice(0,this.maxColumn))}else{this.completedCountBar.transition()}}.bind(this));this.completedTimelinessPage.addEvent("show",function(){if(!this.completedTimelinessBar){var t=this.barOptions?Object.clone(this.barOptions):{};t.tickFormat=".0%";t.dataFormat=".1%";this.completedTimelinessBar=this.loadBarChart(this.completedTimelinessNode,this[this.category+"RankData"].taskCompletedTimeliness.slice(0,this.maxColumn),t)}else{this.completedTimelinessBar.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+"RankData"].taskTimeoutRate.slice(0,this.maxColumn),t)}else{this.timeoutRateBar.transition()}}.bind(this));if(this.durationPage.isShow){this.durationPage.showIm()}else{this.durationPage.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},loadBarData:function(t){var e="load-rank-"+this.category+"-data";this[e.camelCase()](function(){if(t)t()}.bind(this))},loadTab:function(){this.tab=new MWF.widget.Tab(this.chartAreaNode,{style:"BAM_rank"});this.tab.load();this.durationNode=new Element("div",{styles:this.css.taskRankTabAreaNode});this.expiredCountNode=new Element("div",{styles:this.css.taskRankTabAreaNode});this.completedCountNode=new Element("div",{styles:this.css.taskRankTabAreaNode});this.completedTimelinessNode=new Element("div",{styles:this.css.taskRankTabAreaNode});this.timeoutRateNode=new Element("div",{styles:this.css.taskRankTabAreaNode});this.durationPage=this.tab.addTab(this.durationNode,this.lp.taskRankTypeExpired);this.expiredCountPage=this.tab.addTab(this.expiredCountNode,this.lp.taskRankTypeExpiredCount);this.completedCountPage=this.tab.addTab(this.completedCountNode,this.lp.taskRankTypeCompletedCount);this.completedTimelinessPage=this.tab.addTab(this.completedTimelinessNode,this.lp.timeliness);this.timeoutRatePage=this.tab.addTab(this.timeoutRateNode,this.lp.timeout)},loadCategory:function(){var t=new MWF.widget.UUID;var e="<input name='"+t+"TaskRankCategory' type='radio' value='unit' checked>"+this.lp.unit+"<input name='"+t+"TaskRankCategory' type='radio' value='person'>"+this.lp.person;this.categoryNode.set("html",e);var i=this;this.categoryNode.getElements("input").addEvent("click",function(){i.category=this.value;i.reload()})},loadTaskRankArea:function(){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:this.lp.top10}).inject(this.headNode);this.chartAreaNode=new Element("div",{styles:this.css.taskRankChartAreaNode}).inject(this.node);this.loadTab();this.loadCategory();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.durationNode.setStyle("height",""+e+"px");this.expiredCountNode.setStyle("height",""+e+"px");this.completedCountNode.setStyle("height",""+e+"px");if(this.completedTimelinessNode)this.completedTimelinessNode.setStyle("height",""+e+"px");if(this.timeoutRateNode)this.timeoutRateNode.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.durationNode.setStyle("height",""+e+"px");this.expiredCountNode.setStyle("height",""+e+"px");this.completedCountNode.setStyle("height",""+e+"px");if(this.completedTimelinessNode)this.completedTimelinessNode.setStyle("height",""+e+"px");if(this.timeoutRateNode)this.timeoutRateNode.setStyle("height",""+e+"px");this.maxColumn=Math.round(t.x/40);this.barOptions={marginBottom:100,delay:10,style:"default_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"})},loadRankUnitData:function(t){if(!this.unitRankData){this.unitRankData=this.app.actions.getRankData(this.summary.organizationData.unit||[]);if(t)t()}else{if(t)t()}},loadRankPersonData:function(t){if(!this.personRankData){this.personRankData=this.app.actions.getRankData(this.summary.organizationData.person||[]);if(t)t()}else{if(t)t()}},destroy:function(){if(this.durationBar)this.durationBar.destroy();if(this.elapsedCountBar)this.elapsedCountBar.destroy();if(this.completedCountBar)this.completedCountBar.destroy();if(this.completedTimelinessBar)this.completedTimelinessBar.destroy();if(this.timeoutRateBar)this.timeoutRateBar.destroy();MWF.release(this)}});