[IMP] small code cleanup in addon web_graph
authorGery Debongnie <ged@openerp.com>
Mon, 18 Nov 2013 14:19:55 +0000 (15:19 +0100)
committerGery Debongnie <ged@openerp.com>
Mon, 18 Nov 2013 14:19:55 +0000 (15:19 +0100)
bzr revid: ged@openerp.com-20131118141955-00qcb19wm0gswvck

addons/web_graph/static/src/css/graph.css
addons/web_graph/static/src/js/graph.js

index ee9234c..863829b 100644 (file)
@@ -20,7 +20,7 @@ span.web_graph_indent {
 }
 
 span.web_graph_indent:first-child {
-       padding-left: 10px;
+       padding-left: 25px;
 }
 
 .web_graph_click:hover {
index a1a9ef6..4f8c579 100644 (file)
@@ -147,11 +147,11 @@ var PivotTable = instance.web.Widget.extend({
 
     events: {
         'click .web_graph_click' : function (event) {
-            var self = this;
+            var row_id = event.target.attributes['data-row-id'].nodeValue,
+                row = this.get_row(row_id);
+
             event.preventDefault();
-            var row_id = event.target.attributes['data-row-id'].nodeValue;
 
-            var row = this.get_row(row_id);
             if (row.expanded) {
                 this.fold_row(row_id);
             } else {
@@ -159,24 +159,12 @@ var PivotTable = instance.web.Widget.extend({
                     var field_to_expand = this.data.row_groupby[row.path.length];
                     this.expand_row(row_id, field_to_expand);
                 } else {
-                    var already_grouped = self.data.row_groupby.concat(self.data.col_groupby);
-                    var possible_groups = _.difference(self.data.important_fields, already_grouped);
-                    var dropdown_options = {
-                        fields: _.map(possible_groups, function (field) {
-                            return {id: field, value: self.get_descr(field)};
-                        }),
-                        row_id: row_id,
-                    };
-                    this.dropdown = $(QWeb.render('field_selection', dropdown_options));
-                    $(event.target).after(this.dropdown);
-                    this.dropdown.css({position:'absolute',
-                                       left:event.pageX,
-                                       top:event.pageY});
-                    $('.field-selection').next('.dropdown-menu').toggle();
+                    this.display_dropdown(row_id, $(event.target), event.pageY, event.pageY);
                 }
             }
 
         },
+
         'click a.field-selection' : function (event) {
             event.preventDefault();
             this.dropdown.remove();
@@ -228,13 +216,32 @@ var PivotTable = instance.web.Widget.extend({
         this.$el.css('display', 'none');
     },
 
+    display_dropdown: function (row_id, target, x, y) {
+        var self = this,
+            already_grouped = self.data.row_groupby.concat(self.data.col_groupby),
+            possible_groups = _.difference(self.data.important_fields, already_grouped),
+            dropdown_options = {
+                fields: _.map(possible_groups, function (field) {
+                    return {id: field, value: self.get_descr(field)};
+                }),
+                row_id: row_id,
+            };
+        this.dropdown = $(QWeb.render('field_selection', dropdown_options));
+        target.after(this.dropdown);
+        this.dropdown.css({position:'absolute',
+                           left:x,
+                           top:y});
+        $('.field-selection').next('.dropdown-menu').toggle();
+    },
+
     build_table: function () {
         var self = this;
 
-        this.headers.push('<tr class="graph_table_header"><td class="graph_border">' +
-                    '</td><td class="graph_border">' +
-                    this.data.measure_label +
-                    '</td></tr>');
+        var header = $('<tr></tr>');
+        header.append(this.make_cell(' ', {is_border:true}));
+        header.append(this.make_cell(this.data.measure_label,
+                                     {is_border:true, foldable: true}));
+        this.headers = [header];
 
         var main_row = this.make_row(this.data.total[0]);