Explorar el Código

Merge pull request #7602 from Altoros/suppress-empty-results-in-table-plugin

Added suppressing of empty results to table plugin
Carl Bergquist hace 8 años
padre
commit
3ef1a60647

+ 4 - 0
public/app/plugins/panel/table/editor.html

@@ -21,6 +21,10 @@
 				<metric-segment segment="editor.addColumnSegment" get-options="editor.getColumnOptions()" on-change="editor.addColumn()"></metric-segment>
 				<metric-segment segment="editor.addColumnSegment" get-options="editor.getColumnOptions()" on-change="editor.addColumn()"></metric-segment>
 			</div>
 			</div>
 		</div>
 		</div>
+    <gf-form-switch class="gf-form" label-class="width-10"
+                    label="Filter null values"
+                    checked="editor.panel.filterNull"
+                    on-change="editor.render()"></gf-form-switch>
 	</div>
 	</div>
 
 
 	<div class="section gf-form-group">
 	<div class="section gf-form-group">

+ 1 - 0
public/app/plugins/panel/table/module.ts

@@ -42,6 +42,7 @@ class TablePanelCtrl extends MetricsPanelCtrl {
     scroll: true,
     scroll: true,
     fontSize: '100%',
     fontSize: '100%',
     sort: {col: 0, desc: true},
     sort: {col: 0, desc: true},
+    filterNull: false,
   };
   };
 
 
   /** @ngInject */
   /** @ngInject */

+ 10 - 2
public/app/plugins/panel/table/transformers.ts

@@ -5,6 +5,7 @@ import moment from 'moment';
 import flatten from '../../../core/utils/flatten';
 import flatten from '../../../core/utils/flatten';
 import TimeSeries from '../../../core/time_series2';
 import TimeSeries from '../../../core/time_series2';
 import TableModel from '../../../core/table_model';
 import TableModel from '../../../core/table_model';
+import angular from "angular";
 
 
 var transformers = {};
 var transformers = {};
 
 
@@ -219,7 +220,8 @@ transformers['json'] = {
 };
 };
 
 
 function transformDataToTable(data, panel) {
 function transformDataToTable(data, panel) {
-  var model = new TableModel();
+  var model = new TableModel(),
+    copyData = angular.copy(data);
 
 
   if (!data || data.length === 0) {
   if (!data || data.length === 0) {
     return model;
     return model;
@@ -230,7 +232,13 @@ function transformDataToTable(data, panel) {
     throw {message: 'Transformer ' + panel.transformer + ' not found'};
     throw {message: 'Transformer ' + panel.transformer + ' not found'};
   }
   }
 
 
-  transformer.transform(data, panel, model);
+  if (panel.filterNull) {
+    for (var i = 0; i < copyData.length; i++) {
+      copyData[i].datapoints = copyData[i].datapoints.filter((dp) => dp[0] != null);
+    }
+  }
+
+  transformer.transform(copyData, panel, model);
   return model;
   return model;
 }
 }