X-Git-Url: http://git.inspyration.org/?a=blobdiff_plain;f=addons%2Fweb_graph%2Fstatic%2Fsrc%2Fjs%2Fgraph.js;h=9806e7011a4ae081f71070ce07dc5e13dd6ea155;hb=e1e676d737a2f682ed6a106e99b63a4dd377c5d5;hp=991b21980e61a493fe96ee1c1c7766ca9f9c179b;hpb=db9cdb7eb0c7c6e8a26c89fd314dd016d8f8ab03;p=odoo%2Fodoo.git diff --git a/addons/web_graph/static/src/js/graph.js b/addons/web_graph/static/src/js/graph.js index 991b219..9806e70 100644 --- a/addons/web_graph/static/src/js/graph.js +++ b/addons/web_graph/static/src/js/graph.js @@ -18,7 +18,7 @@ instance.web_graph.GraphView = instance.web.View.extend({ view_type: 'graph', init: function(parent, dataset, view_id, options) { - this._super(parent); + this._super(parent, dataset, view_id, options); this.dataset = dataset; this.model = new instance.web.Model(dataset.model, {group_by_no_leaf: true}); this.search_view = parent.searchview; @@ -57,20 +57,20 @@ instance.web_graph.GraphView = instance.web.View.extend({ if (arch.attrs.type === 'bar' || !_.has(arch.attrs, 'type')) { this.graph_widget.mode = 'bar_chart'; } - if (arch.attrs.stacked === "True") { + if (arch.attrs.stacked === 'True') { stacked = true; } _.each(arch.children, function (field) { if (_.has(field.attrs, 'type')) { switch (field.attrs.type) { - case "row": + case 'row': self.default_row_groupby.push(field.attrs.name); break; - case "col": + case 'col': self.default_col_groupby.push(field.attrs.name); break; - case "measure": + case 'measure': measure = field.attrs.name; break; } @@ -83,15 +83,14 @@ instance.web_graph.GraphView = instance.web.View.extend({ } }); this.graph_widget.config({ - measure:measure, + measure:measure, update:false, bar_ui: (stacked) ? 'stack' : 'group' }); }, do_search: function (domain, context, group_by) { - var self = this, - col_groupby = context.col_group_by || [], + var col_groupby = context.col_group_by || [], options = {domain:domain}; this.search_view_groupby = group_by; @@ -99,12 +98,12 @@ instance.web_graph.GraphView = instance.web.View.extend({ if (group_by.length && this.groupby_mode !== 'manual') { if (_.isEqual(col_groupby, [])) { col_groupby = this.default_col_groupby; - } + } } if (group_by.length || col_groupby.length) { this.groupby_mode = 'manual'; } - if (!this.graph_widget.enabled) { + if (!this.graph_widget.enabled) { options.update = false; options.silent = true; } @@ -120,6 +119,7 @@ instance.web_graph.GraphView = instance.web.View.extend({ if (!this.graph_widget.enabled) { this.graph_widget.activate_display(); + this.ViewManager.on('switch_mode', this, function () {this.graph_widget.pivot.update_data(); }); } }, @@ -172,7 +172,7 @@ instance.web_graph.GraphView = instance.web.View.extend({ }); instance.web_graph.Graph = instance.web.Widget.extend({ - template: "GraphWidget", + template: 'GraphWidget', events: { 'click .graph_mode_selection li' : 'mode_selection', @@ -263,7 +263,7 @@ instance.web_graph.Graph = instance.web.Widget.extend({ this.pivot.on('redraw_required', this, this.proxy('display_data')); this.pivot.update_data(); this.enabled = true; - instance.web.bus.on('click', this, function (ev) { + instance.web.bus.on('click', this, function () { if (this.dropdown) { this.dropdown.remove(); this.dropdown = null; @@ -273,6 +273,7 @@ instance.web_graph.Graph = instance.web.Widget.extend({ display_data: function () { this.$('.graph_main_content svg').remove(); + this.$('.graph_main_content div').remove(); this.table.empty(); if (this.visible_ui) { @@ -281,8 +282,7 @@ instance.web_graph.Graph = instance.web.Widget.extend({ this.$('.graph_header').css('display', 'none'); } if (this.pivot.no_data) { - var msg = 'No data available. Try to remove any filter or add some data.'; - this.table.append($('' + msg + '')); + this.$('.graph_main_content').append($(QWeb.render('graph_no_data'))); } else { var table_modes = ['pivot', 'heatmap', 'row_heatmap', 'col_heatmap']; if (_.contains(table_modes, this.mode)) { @@ -336,8 +336,7 @@ instance.web_graph.Graph = instance.web.Widget.extend({ event.stopPropagation(); var id = event.target.attributes['data-id'].nodeValue, header = this.pivot.get_header(id), - self = this, - dim = header.root.groupby.length; + self = this; if (header.is_expanded) { this.pivot.fold(header); @@ -363,8 +362,7 @@ instance.web_graph.Graph = instance.web.Widget.extend({ }, field_selection: function (event) { - var self = this, - id = event.target.attributes['data-id'].nodeValue, + var id = event.target.attributes['data-id'].nodeValue, field_id = event.target.attributes['data-field-id'].nodeValue; event.preventDefault(); this.pivot.expand(id, field_id); @@ -582,6 +580,8 @@ instance.web_graph.Graph = instance.web.Widget.extend({ .stacked(self.bar_ui === 'stack') .staggerLabels(true); + if (dim_x === 1 && dim_y === 0) { chart.showControls(false); } + d3.select(self.svg) .datum(data) .attr('width', self.width) @@ -631,8 +631,7 @@ instance.web_graph.Graph = instance.web.Widget.extend({ pie_chart: function () { var self = this, - dim_x = this.pivot.rows.groupby.length, - dim_y = this.pivot.cols.groupby.length; + dim_x = this.pivot.rows.groupby.length; var data = _.map(this.pivot.get_rows_leaves(), function (row) { var title = _.map(row.path, function (p) {