Эх сурвалжийг харах

[search] Fix selected bars on MultiBarChart

Enrico Berti 10 жил өмнө
parent
commit
823fd87b45

+ 11 - 8
desktop/core/src/desktop/static/desktop/js/ko.charts.js

@@ -161,6 +161,7 @@ ko.bindingHandlers.barChart = {
             _options.onComplete();
             _options.onComplete();
           }
           }
         }).call(_chart);
         }).call(_chart);
+
       if (_chart.selectBars) {
       if (_chart.selectBars) {
         var _field = (typeof _options.field == "function") ? _options.field() : _options.field;
         var _field = (typeof _options.field == "function") ? _options.field() : _options.field;
         $.each(_options.fqs(), function (cnt, item) {
         $.each(_options.fqs(), function (cnt, item) {
@@ -170,11 +171,11 @@ ko.bindingHandlers.barChart = {
                 return it.value();
                 return it.value();
               }));
               }));
             }
             }
-            if (item.field().indexOf(":") > -1) {
+            if (Array.isArray(item.field())) {
               _chart.selectBars({
               _chart.selectBars({
                 field: item.field(),
                 field: item.field(),
                 selected: $.map(item.filter(), function (it) {
                 selected: $.map(item.filter(), function (it) {
-                  return it.value();
+                  return { values: it.value() };
                 })
                 })
               });
               });
             }
             }
@@ -230,18 +231,19 @@ ko.bindingHandlers.timelineChart = {
       });
       });
       _d3.selectAll(".nv-brush").call(_chart.brush().clear());
       _d3.selectAll(".nv-brush").call(_chart.brush().clear());
       if (_chart.selectBars) {
       if (_chart.selectBars) {
+        var _field = (typeof _options.field == "function") ? _options.field() : _options.field;
         $.each(_options.fqs(), function (cnt, item) {
         $.each(_options.fqs(), function (cnt, item) {
           if (item.id() == _options.datum.widget_id) {
           if (item.id() == _options.datum.widget_id) {
-            if (item.field() == _options.field) {
+            if (item.field() == _field) {
               _chart.selectBars($.map(item.filter(), function (it) {
               _chart.selectBars($.map(item.filter(), function (it) {
                 return it.value();
                 return it.value();
               }));
               }));
             }
             }
-            if (item.field().indexOf(":") > -1) {
+            if (Array.isArray(item.field())) {
               _chart.selectBars({
               _chart.selectBars({
                 field: item.field(),
                 field: item.field(),
                 selected: $.map(item.filter(), function (it) {
                 selected: $.map(item.filter(), function (it) {
-                  return it.value();
+                  return { values: it.value() };
                 })
                 })
               });
               });
             }
             }
@@ -915,18 +917,19 @@ function barChartBuilder(element, options, isTimeline) {
           }).call(_chart);
           }).call(_chart);
 
 
       if (_chart.selectBars) {
       if (_chart.selectBars) {
+        var _field = (typeof options.field == "function") ? options.field() : options.field;
         $.each(options.fqs(), function (cnt, item) {
         $.each(options.fqs(), function (cnt, item) {
           if (item.id() == options.datum.widget_id) {
           if (item.id() == options.datum.widget_id) {
-            if (item.field() == options.field) {
+            if (item.field() == _field) {
               _chart.selectBars($.map(item.filter(), function (it) {
               _chart.selectBars($.map(item.filter(), function (it) {
                 return it.value();
                 return it.value();
               }));
               }));
             }
             }
-            if (item.field().indexOf(":") > -1) {
+            if (Array.isArray(item.field())) {
               _chart.selectBars({
               _chart.selectBars({
                 field: item.field(),
                 field: item.field(),
                 selected: $.map(item.filter(), function (it) {
                 selected: $.map(item.filter(), function (it) {
-                  return it.value();
+                  return { values: it.value() };
                 })
                 })
               });
               });
             }
             }

+ 1 - 1
desktop/core/src/desktop/static/desktop/js/nv.d3.growingMultiBar.js

@@ -215,7 +215,7 @@ nv.models.growingMultiBar = function() {
         $(selected).each(function(cnt, item){
         $(selected).each(function(cnt, item){
           bars.each(function(d, i) {
           bars.each(function(d, i) {
             if (_pivotField != null){
             if (_pivotField != null){
-              if (d.obj.fq_fields == _pivotField && d.obj.fq_values == item){
+              if ((Array.isArray(_pivotField) ? ko.toJSON(d.obj.fq_fields) == ko.toJSON(_pivotField) : d.obj.fq_fields == _pivotField) && (item.values ? ko.toJSON(d.obj.fq_values) == ko.toJSON(item.values) : d.obj.fq_values == item)){
                 d3.select(this).classed('selected', true);
                 d3.select(this).classed('selected', true);
               }
               }
             }
             }