MWF.xApplication.BAM.summary = MWF.xApplication.BAM.summary || {}; MWF.xDesktop.requireApp("BAM", "summary.TaskContent", null, false); MWF.xApplication.BAM.summary.WorkContent = new Class({ Extends: MWF.xApplication.BAM.summary.TaskContent, Implements: [Options, Events], options: { "style": "default" }, initialize: function(summary, node, data, options){ this.setOptions(options); this.summary = summary; this.app = this.summary.app; this.css = this.app.css; this.lp = this.app.lp; this.container = $(node); this.category = "application"; this.data = this.summary.categoryData; this.maxColumn = 10; this.barOptions = {"style": "work"}; this.load(); }, load: function(){ this.loadArea(this.lp.work); this.loadBarData(this.loadBar.bind(this)); }, loadCategory: function(){ var id = new MWF.widget.UUID(); var html = ""+this.lp.application+ ""+this.lp.process this.categoryNode.set("html", html); var _self = this; this.categoryNode.getElements("input").addEvent("click", function(){ _self.category = this.value; _self.reload(); }); }, 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 tabSize = this.chartAreaNode.getSize(); var h = tabSize.y-80; this.countNode.setStyle("height", ""+h+"px"); this.expiredNode.setStyle("height", ""+h+"px"); this.expiredCountNode.setStyle("height", ""+h+"px"); if (this.timeoutRateNode) this.timeoutRateNode.setStyle("height", ""+h+"px"); if (this.timelinessRateNode) this.timelinessRateNode.setStyle("height", ""+h+"px"); this.maxColumn = Math.round(tabSize.x/40); this.barOptions = {"marginBottom": 100, "delay": 10, "style": "work_max"}; this.reload(); }, 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"].workCount.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"].workDuration.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"].workElapsedCount.slice(0,this.maxColumn),this.barOptions); } else { this.elapsedCountBar.transition(); } }.bind(this)); this.timeoutRatePage.addEvent("show", function(){ if (!this.timeoutBar){ var options = (this.barOptions) ? Object.clone(this.barOptions) : {}; options.tickFormat = ".0%"; options.dataFormat = ".1%"; this.timeoutBar = this.loadBarChart(this.timeoutRateNode, this[this.category+"Data"].workTimeoutRate.slice(0,this.maxColumn),options); } else { this.timeoutBar.transition(); } }.bind(this)); if (this.countPage.isShow){ this.countPage.showIm(); }else{ this.countPage.showTabIm(); } }.bind(this)); }, loadApplicationData: function(callback){ if (!this.applicationData){ this.applicationData = this.app.actions.getWorkContentData(this.summary.categoryData.application || []); if (callback) callback(); }else{ if (callback) callback(); } }, loadProcessData: function(callback){ if (!this.processData){ this.processData = this.app.actions.getWorkContentData(this.summary.categoryData.process || []); if (callback) callback(); }else{ if (callback) callback(); } }, loadActivityData: function(callback){ if (!this.activityData){ this.activityData = this.app.actions.getWorkContentData(this.summary.categoryData.activity || [], function(i){return i.processName+"-"+i.name}); if (callback) callback(); }else{ if (callback) callback(); } } });