TaskDashboard.min.js 12 KB

1
  1. MWF.xApplication.BAM.summary=MWF.xApplication.BAM.summary||{};MWF.xApplication.BAM.summary.TaskDashboard=new Class({Implements:[Options,Events],options:{style:"default"},initialize:function(t,i,s){this.setOptions(s);this.summary=t;this.app=this.summary.app;this.css=this.app.css;this.container=$(i);this.load()},load:function(){this.node=new Element("div",{styles:this.css.taskDashboardNode}).inject(this.container);this.taskElapsed=new MWF.xApplication.BAM.summary.TaskDashboard.TaskElapsed(this);this.workElapsed=new MWF.xApplication.BAM.summary.TaskDashboard.WorkElapsed(this);this.taskElapsedCount=new MWF.xApplication.BAM.summary.TaskDashboard.TaskElapsedCount(this);this.workElapsedCount=new MWF.xApplication.BAM.summary.TaskDashboard.WorkElapsedCount(this)},destroy:function(){this.taskElapsed.destroy();this.workElapsed.destroy();this.taskElapsedCount.destroy();this.workElapsedCount.destroy();MWF.release(this)}});MWF.xApplication.BAM.summary.TaskDashboard.TaskChart=new Class({initialize:function(t){this.dashboard=t;this.app=this.dashboard.app;this.css=this.app.css;this.container=this.dashboard.node;this.categoryData=this.dashboard.summary.categoryData;this.status="dashboard";this.load()},load:function(){this.node=new Element("div",{styles:this.css.taskChartNode}).inject(this.container);this.titleNode=new Element("div",{styles:this.css.taskChartTitleNode}).inject(this.node);this.chartNode=new Element("div",{styles:this.css.taskChartChartNode}).inject(this.node);this.actionNode=new Element("div",{styles:this.css.taskChartActionNode}).inject(this.node);this.setTitle();this.createActions();this.draw()},draw:function(){MWF.require("MWF.widget.chart.Dashboard",function(){var t=0;var i=0;if(this.categoryData.application&&this.categoryData.application.length){this.categoryData.application.each(function(s){i+=s.taskCount;t+=s.taskDuration})}this.taskCount=i;var s=Math.round(t/i/60)*100/100;this.chart=new MWF.widget.chart.Dashboard(this.chartNode,s,{domain:[0,72]});this.chart.load()}.bind(this))},setTitle:function(){this.titleNode.set("text",this.app.lp.taskElapsedTitle)},createActions:function(){this.proportionAction=new Element("div",{styles:this.css.taskChartProportionAction,text:this.app.lp.proportion}).inject(this.actionNode);this.distributionAction=new Element("div",{styles:this.css.taskChartDistributionAction,text:this.app.lp.distribution}).inject(this.actionNode);this.proportionAction.addEvent("click",function(){this.proportion()}.bind(this));this.distributionAction.addEvent("click",function(){this.distribution()}.bind(this))},proportion:function(){switch(this.status){case"dashboard":this.status="proportion";this.changeToProportion();break;case"proportion":this.status="dashboard";this.changeToDashboard();break;case"distribution":this.status="proportion";this.changeToProportion();break}},distribution:function(){switch(this.status){case"dashboard":this.status="distribution";this.changeToDistribution();break;case"proportion":this.status="distribution";this.changeToDistribution();break;case"distribution":this.status="dashboard";this.changeToDashboard();break}},changeToDashboard:function(){if(this.proportionAction)this.proportionAction.setStyles(this.css.taskChartProportionAction_back);if(this.distributionAction)this.distributionAction.setStyles(this.css.taskChartDistributionAction);if(this.proportionChart)this.proportionChart.hide();if(this.distributionChart)this.distributionChart.hide();if(this.chart)this.chart.show()},changeToProportion:function(){if(this.proportionAction)this.proportionAction.setStyles(this.css.taskChartProportionAction_current);if(this.distributionAction)this.distributionAction.setStyles(this.css.taskChartDistributionAction);this.getProportionData(function(){if(this.chart)this.chart.hide();if(this.distributionChart)this.distributionChart.hide();if(this.proportionChart){this.proportionChart.show()}else{MWF.require("MWF.widget.chart.Pie",function(){this.proportionChart=new MWF.widget.chart.Pie(this.chartNode,this.proportionData,{dataFormat:".1%"});this.proportionChart.load()}.bind(this))}}.bind(this))},changeToDistribution:function(){if(this.proportionAction)this.proportionAction.setStyles(this.css.taskChartProportionAction);if(this.distributionAction)this.distributionAction.setStyles(this.css.taskChartDistributionAction_current);this.getDistributionData(function(){if(this.chart)this.chart.hide();if(this.proportionChart)this.proportionChart.hide();if(this.distributionChart){this.distributionChart.show()}else{MWF.require("MWF.widget.chart.Pie",function(){this.distributionChart=new MWF.widget.chart.Pie(this.chartNode,this.distributionData,{dataFormat:".1%"});this.distributionChart.load()}.bind(this))}}.bind(this))},destroy:function(){if(this.chart)this.chart.destroy();if(this.proportionChart)this.proportionChart.destroy();if(this.distributionChart)this.distributionChart.destroy();MWF.release(this)}});MWF.xApplication.BAM.summary.TaskDashboard.TaskElapsed=new Class({Extends:MWF.xApplication.BAM.summary.TaskDashboard.TaskChart,createActions:function(){this.proportionAction=new Element("div",{styles:this.css.taskChartProportionAction_one,text:this.app.lp.proportion}).inject(this.actionNode);this.proportionAction.addEvent("click",function(){this.proportion()}.bind(this))},getProportionData:function(t){if(!this.proportionData){this.dashboard.summary.loadRunningData(function(){var i=this.dashboard.summary.runningData.task;var s=[];var o=this.dashboard.app.lp.taskElapsed;var a=i.halfDay+i.oneDay+i.twoDay+i.threeDay+i.moreDay;s.push({name:o.halfDay,value:i.halfDay/a});s.push({name:o.oneDay,value:i.oneDay/a});s.push({name:o.twoDay,value:i.twoDay/a});s.push({name:o.threeDay,value:i.threeDay/a});s.push({name:o.moreDay,value:i.moreDay/a});this.proportionData=s;if(t)t()}.bind(this))}else{if(t)t()}},getDistributionData:function(t){if(!this.distributionData){this.app.actions.getTaskElapsedPercent(function(i){this.distributionData=i.data;if(t)t()}.bind(this))}else{if(t)t()}}});MWF.xApplication.BAM.summary.TaskDashboard.WorkElapsed=new Class({Extends:MWF.xApplication.BAM.summary.TaskDashboard.TaskChart,setTitle:function(){this.titleNode.set("text",this.app.lp.workElapsedTitle)},createActions:function(){this.proportionAction=new Element("div",{styles:this.css.taskChartProportionAction_one,text:this.app.lp.proportion}).inject(this.actionNode);this.proportionAction.addEvent("click",function(){this.proportion()}.bind(this))},draw:function(){MWF.require("MWF.widget.chart.Dashboard",function(){var t=0;var i=0;if(this.categoryData.application&&this.categoryData.application.length){this.categoryData.application.each(function(s){i+=s.workCount;t+=s.workDuration})}this.workCount=i;var s=Math.round(t/i/60)*100/100;this.chart=new MWF.widget.chart.Dashboard(this.chartNode,s,{domain:[0,720]});this.chart.load()}.bind(this))},getProportionData:function(t){if(!this.proportionData){this.dashboard.summary.loadRunningData(function(){var i=this.dashboard.summary.runningData.work;var s=[];var o=this.dashboard.app.lp.workElapsed;var a=i.threeDay+i.oneWeek+i.twoWeek+i.oneMonth+i.moreMonth;s.push({name:o.threeDay,value:i.threeDay/a});s.push({name:o.oneWeek,value:i.oneWeek/a});s.push({name:o.twoWeek,value:i.twoWeek/a});s.push({name:o.oneMonth,value:i.oneMonth/a});s.push({name:o.moreMonth,value:i.moreMonth/a});this.proportionData=s;if(t)t()}.bind(this))}else{if(t)t()}}});MWF.xApplication.BAM.summary.TaskDashboard.TaskElapsedCount=new Class({Extends:MWF.xApplication.BAM.summary.TaskDashboard.TaskChart,setTitle:function(){this.titleNode.set("text",this.app.lp.taskElapsedCountTitle)},createActions:function(){this.proportionAction=new Element("div",{styles:this.css.taskChartProportionAction,text:this.app.lp.count}).inject(this.actionNode);this.distributionAction=new Element("div",{styles:this.css.taskChartDistributionAction,text:this.app.lp.distribution}).inject(this.actionNode);this.proportionAction.addEvent("click",function(){this.proportion()}.bind(this));this.distributionAction.addEvent("click",function(){this.distribution()}.bind(this))},draw:function(){MWF.require("MWF.widget.chart.Dashboard",function(){var t=0;var i=0;if(this.categoryData.application&&this.categoryData.application.length){this.categoryData.application.each(function(s){i+=s.taskExpiredCount;t+=s.taskCount})}this.taskCount=t;var s=Math.round(i/t*100*100)/100;this.chart=new MWF.widget.chart.Dashboard(this.chartNode,s,{domain:[0,100],text:s+"%"});this.chart.load()}.bind(this))},changeToProportion:function(){if(this.proportionAction)this.proportionAction.setStyles(this.css.taskChartProportionAction_current);if(this.distributionAction)this.distributionAction.setStyles(this.css.taskChartDistributionAction);if(this.chart)this.chart.hide();if(this.distributionChart)this.distributionChart.hide();if(this.proportionChart){this.proportionChart.show()}else{var t=0;var i=0;if(this.categoryData.application&&this.categoryData.application.length){this.categoryData.application.each(function(s){i+=s.taskExpiredCount;t+=s.taskCount})}this.proportionChart=new MWF.widget.chart.Dashboard(this.chartNode,i,{domain:[0,t]});this.proportionChart.load()}},changeToDistribution:function(){if(this.proportionAction)this.proportionAction.setStyles(this.css.taskChartProportionAction);if(this.distributionAction)this.distributionAction.setStyles(this.css.taskChartDistributionAction_current);this.getDistributionData();if(this.chart)this.chart.hide();if(this.proportionChart)this.proportionChart.hide();if(this.distributionChart){this.distributionChart.show()}else{MWF.require("MWF.widget.chart.Pie",function(){this.distributionChart=new MWF.widget.chart.Pie(this.chartNode,this.distributionData);this.distributionChart.load()}.bind(this))}},getDistributionData:function(t){if(!this.distributionData){var i=this.categoryData.application?Array.clone(this.categoryData.application):[];i.sort(function(t,i){return t.taskExpiredCount>i.taskExpiredCount});var s=[];var o=0;var a=0;i.each(function(t){if(a/this.taskCount>.8||s.length>5){o+=t.taskExpiredCount}else{if(t.taskExpiredCount){s.push({name:t.name,value:t.taskExpiredCount});a+=t.taskExpiredCount}}}.bind(this));if(o>0){s.push({name:this.app.lp.other,value:o})}this.distributionData=s}else{if(t)t()}}});MWF.xApplication.BAM.summary.TaskDashboard.WorkElapsedCount=new Class({Extends:MWF.xApplication.BAM.summary.TaskDashboard.TaskElapsedCount,setTitle:function(){this.titleNode.set("text",this.app.lp.workElapsedCountTitle)},draw:function(){MWF.require("MWF.widget.chart.Dashboard",function(){var t=0;var i=0;if(this.categoryData.application&&this.categoryData.application.length){this.categoryData.application.each(function(s){i+=s.workExpiredCount;t+=s.workCount})}this.workCount=t;var s=Math.round(i/t*100*100)/100;this.chart=new MWF.widget.chart.Dashboard(this.chartNode,s,{domain:[0,100],text:s+"%"});this.chart.load()}.bind(this))},changeToProportion:function(){if(this.proportionAction)this.proportionAction.setStyles(this.css.taskChartProportionAction_current);if(this.distributionAction)this.distributionAction.setStyles(this.css.taskChartDistributionAction);if(this.chart)this.chart.hide();if(this.distributionChart)this.distributionChart.hide();if(this.proportionChart){this.proportionChart.show()}else{var t=0;var i=0;if(this.categoryData.application&&this.categoryData.application.length){this.categoryData.application.each(function(s){i+=s.workExpiredCount;t+=s.workCount})}this.proportionChart=new MWF.widget.chart.Dashboard(this.chartNode,i,{domain:[0,t]});this.proportionChart.load()}},changeToDistribution:function(){if(this.proportionAction)this.proportionAction.setStyles(this.css.taskChartProportionAction);if(this.distributionAction)this.distributionAction.setStyles(this.css.taskChartDistributionAction_current);this.getDistributionData();if(this.chart)this.chart.hide();if(this.proportionChart)this.proportionChart.hide();if(this.distributionChart){this.distributionChart.show()}else{MWF.require("MWF.widget.chart.Pie",function(){this.distributionChart=new MWF.widget.chart.Pie(this.chartNode,this.distributionData);this.distributionChart.load()}.bind(this))}},getDistributionData:function(t){if(!this.distributionData){var i=this.categoryData.application?Array.clone(this.categoryData.application):[];i.sort(function(t,i){return t.workExpiredCount>i.workExpiredCount});var s=[];var o=0;var a=0;i.each(function(t){if(a/this.workCount>.8||s.length>5){o+=t.workExpiredCount}else{if(t.workExpiredCount){s.push({name:t.name,value:t.workExpiredCount});a+=t.workExpiredCount}}}.bind(this));if(o>0){s.push({name:this.app.lp.other,value:o})}this.distributionData=s}else{if(t)t()}}});