From 57bd9de5023b26ae1e965b2b8f237bb99cd9513d Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Fri, 17 Jun 2011 15:22:22 +0200 Subject: [PATCH] [IMP] reduce variable scopes: move instance variables to function scopes, remove unneeded temps, move variables to inner function scopes. Variable scopes should be as small as possible (but no smaller) in order to make their data flow easy to understand bzr revid: xmo@openerp.com-20110617132222-p0jabvioctjcn9o4 --- addons/base_graph/static/src/js/graph.js | 68 +++++++++--------------- 1 file changed, 26 insertions(+), 42 deletions(-) diff --git a/addons/base_graph/static/src/js/graph.js b/addons/base_graph/static/src/js/graph.js index 81b99cbddbd..7ebeffa78ab 100644 --- a/addons/base_graph/static/src/js/graph.js +++ b/addons/base_graph/static/src/js/graph.js @@ -25,7 +25,6 @@ openerp.base_graph.GraphView = openerp.base.Controller.extend({ this.rpc("/base_graph/graphview/load", {"model": this.model, "view_id": this.view_id}, this.on_loaded); }, on_loaded: function(data) { - var self = this; this.all_fields = data.all_fields; this.fields_view = data.fields_view; this.name = this.fields_view.name || this.fields_view.arch.attrs.string; @@ -61,7 +60,7 @@ openerp.base_graph.GraphView = openerp.base.Controller.extend({ this.chart_info = this.chart_info_fields[0]; this.x_title = this.fields[this.chart_info_fields[0]]['string']; this.y_title = this.fields[this.operator_field]['string']; - self.load_chart(); + this.load_chart(); }, load_chart: function(data) { @@ -83,7 +82,6 @@ openerp.base_graph.GraphView = openerp.base.Controller.extend({ schedule_chart: function(results) { this.$element.html(QWeb.render("GraphView", {"fields_view": this.fields_view, "chart": this.chart,'view_id': this.view_id})); - this.opration_fld = {}; if (results.length){ _.each(results, function (result) { _.each(result, function (field_value, field_name) { @@ -101,10 +99,11 @@ openerp.base_graph.GraphView = openerp.base.Controller.extend({ }, this); }, this); + var opration_fld = {}; _.each(results, function (result) { var gen_key = result[this.chart_info_fields]+"_"+result[this.group_field]; - if (this.opration_fld[gen_key] == undefined){ - var map_val = {}; + var map_val = {}; + if (opration_fld[gen_key] == undefined){ map_val[this.operator_field] = result[this.operator_field]; if (this.operator.length > 1){ map_val[this.operator_field_one] = result[this.operator_field_one]; @@ -113,19 +112,18 @@ openerp.base_graph.GraphView = openerp.base.Controller.extend({ if (this.group_field){ map_val[this.group_field] = (typeof result[this.group_field] == 'object')?result[this.group_field][1]:result[this.group_field]; } - this.opration_fld[gen_key] = map_val; } else { - map_val = this.opration_fld[gen_key]; + map_val = opration_fld[gen_key]; map_val[this.operator_field] += result[this.operator_field]; if (this.operator.length > 1){ map_val[this.operator_field_one] += result[this.operator_field_one]; } - this.opration_fld[gen_key] = map_val; } + opration_fld[gen_key] = map_val; }, this); var graph_data = []; - _.each(this.opration_fld, function (column_data) { + _.each(opration_fld, function (column_data) { graph_data.push(column_data); }); @@ -141,9 +139,7 @@ openerp.base_graph.GraphView = openerp.base.Controller.extend({ var self = this; var view_chart = ''; var xystr = {}; - var xyname = {}; - var res = []; - this.group_list = []; + var group_list = []; var newkey = '', newkey_one; var COLOR_PALETTE = ['#cc99ff', '#ccccff', '#48D1CC', '#CFD784', '#8B7B8B', '#75507b', '#b0008c', '#ff0000', '#ff8e00', '#9000ff', '#0078ff', '#00ff00', '#e6ff00', '#ffff00', @@ -164,52 +160,40 @@ openerp.base_graph.GraphView = openerp.base.Controller.extend({ newkey = "val"; } - if (jQuery.inArray(newkey, self.group_list) == -1){ - self.group_list.push(newkey); + if (jQuery.inArray(newkey, group_list) == -1){ + group_list.push(newkey); if(this.operator.length > 1){ newkey_one = "val1"; - self.group_list.push(newkey_one); + group_list.push(newkey_one); } } }, this); _.each(results, function (result) { - var xystring = result[self.chart_info_fields]; + var xystring = result[self.chart_info_fields], + xyname = {}; if (self.group_field && (self.operator.length <= 1)){ newkey = result[self.group_field].split(' ').join('_'); }else{ newkey = "val"; } if (xystr[xystring] == undefined){ - xyname = {}; xyname[self.chart_info_fields] = xystring; - _.each(self.group_list, function (group) { + _.each(group_list, function (group) { xyname[group] = 0.0001; }); - xyname[newkey] = result[self.operator_field]; - if (self.operator.length > 1){ - xyname[newkey_one] = result[self.operator_field_one]; - } - xystr[xystring] = xyname; - } - else{ - xyname = {}; + } else { xyname = xystr[xystring]; - xyname[newkey] = result[self.operator_field]; - if (self.operator.length > 1){ - xyname[newkey_one] = result[self.operator_field_one]; - } - xystr[xystring] = xyname; } - }); - - _.each(xystr, function (column_data) { - res.push(column_data); + xyname[newkey] = result[self.operator_field]; + if (self.operator.length > 1){ + xyname[newkey_one] = result[self.operator_field_one]; + } + xystr[xystring] = xyname; }); //for legend color - var grp_color = []; - _.each(self.group_list, function (group_legend, index) { + var grp_color = _.map(group_list, function (group_legend, index) { var legend = {color: COLOR_PALETTE[index]}; if (group_legend == "val"){ @@ -219,7 +203,7 @@ openerp.base_graph.GraphView = openerp.base.Controller.extend({ }else{ legend['text'] = group_legend; } - grp_color.push(legend); + return legend; }); //for axis's value and title @@ -244,7 +228,7 @@ openerp.base_graph.GraphView = openerp.base.Controller.extend({ var bar_chart = new dhtmlxchartChart({ view: view_chart, container: self.view_id+"-barchart", - value:"#"+self.group_list[0]+"#", + value:"#"+group_list[0]+"#", gradient: "3d", border: false, width: 1024, @@ -291,13 +275,13 @@ openerp.base_graph.GraphView = openerp.base.Controller.extend({ } } }); - for (var m = 1; m