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

[spark] Redraws the chart on query refresh

Enrico Berti 11 жил өмнө
parent
commit
f330e68

+ 12 - 1
apps/spark/src/spark/templates/editor.mako

@@ -366,7 +366,7 @@ ${ commonheader(_('Query'), app_name, user, "68px") | n,unicode }
           </div>
         </div>
 
-        <div class="row-fluid" data-bind="visible: showChart" style="max-height: 400px">
+        <div class="row-fluid" data-bind="visible: result.meta().length > 0 && showChart()" style="max-height: 400px">
           <div data-bind="visible: isLeftPanelVisible, css:{'span2': isLeftPanelVisible, 'hidden': !isLeftPanelVisible()}">
 
             <a title="${_('Toggle settings')}" class="pull-right pointer" style="margin:3px; margin-top:9px" data-bind="click: toggleLeftPanel">
@@ -1284,6 +1284,12 @@ ${ commonheader(_('Query'), app_name, user, "68px") | n,unicode }
         _el.dataTable().fnDestroy();
         _el.find("thead tr").empty();
       }
+      snippet.tempChartOptions = {
+        x: snippet.chartX(),
+        yS: snippet.chartYSingle(),
+        yM: snippet.chartYMulti(),
+        label: snippet.chartMapLabel()
+      }
     });
 
     $(document).on("renderData", function (e, options) {
@@ -1311,6 +1317,11 @@ ${ commonheader(_('Query'), app_name, user, "68px") | n,unicode }
         _dtElement.animate({opacity: '1'}, 50);
         _dtElement.off("scroll");
       }
+      options.snippet.chartX(options.snippet.tempChartOptions.x);
+      options.snippet.chartX(options.snippet.tempChartOptions.x);
+      options.snippet.chartYSingle(options.snippet.tempChartOptions.yS);
+      options.snippet.chartMapLabel(options.snippet.tempChartOptions.label);
+      $("#snippet_" + options.snippet.id()).find("select").trigger('chosen:updated');
     });
 
     $(document).on("progress", function (e, options) {

+ 4 - 1
apps/spark/static/js/spark.vm.js

@@ -142,6 +142,7 @@ var Snippet = function (notebook, snippet) {
   self.showChart.subscribe(function (val){
     if (val){
       self.showGrid(false);
+      $(document).trigger("forceChartDraw", self);
     }
   });
   self.showLogs.subscribe(function (val){
@@ -174,10 +175,12 @@ var Snippet = function (notebook, snippet) {
   self.chartData = ko.observableArray(typeof snippet.chartData != "undefined" && snippet.chartData != null ? snippet.chartData : []);
   self.chartMapLabel = ko.observable(typeof snippet.chartMapLabel != "undefined" && snippet.chartMapLabel != null ? snippet.chartMapLabel : null);
 
-  self.chartType.subscribe(function(){
+  self.chartType.subscribe(function(val){
     $(document).trigger("forceChartDraw", self);
   });
 
+  self.tempChartOptions = {};
+
   self.isLeftPanelVisible = ko.observable(typeof snippet.isLeftPanelVisible != "undefined" && snippet.isLeftPanelVisible != null ? snippet.isLeftPanelVisible : true);
   self.toggleLeftPanel = function () {
     self.isLeftPanelVisible(! self.isLeftPanelVisible());