diff --git a/public/app/plugins/panel/table/editor.html b/public/app/plugins/panel/table/editor.html index 5847e140c82..448669ca6a9 100644 --- a/public/app/plugins/panel/table/editor.html +++ b/public/app/plugins/panel/table/editor.html @@ -21,6 +21,10 @@ +
diff --git a/public/app/plugins/panel/table/module.ts b/public/app/plugins/panel/table/module.ts index 35448d6a296..bf872b47d27 100644 --- a/public/app/plugins/panel/table/module.ts +++ b/public/app/plugins/panel/table/module.ts @@ -42,6 +42,7 @@ class TablePanelCtrl extends MetricsPanelCtrl { scroll: true, fontSize: '100%', sort: {col: 0, desc: true}, + filterNull: false, }; /** @ngInject */ diff --git a/public/app/plugins/panel/table/transformers.ts b/public/app/plugins/panel/table/transformers.ts index f48932a54ac..58e9758a6b9 100644 --- a/public/app/plugins/panel/table/transformers.ts +++ b/public/app/plugins/panel/table/transformers.ts @@ -5,6 +5,7 @@ import moment from 'moment'; import flatten from '../../../core/utils/flatten'; import TimeSeries from '../../../core/time_series2'; import TableModel from '../../../core/table_model'; +import angular from "angular"; var transformers = {}; @@ -219,7 +220,8 @@ transformers['json'] = { }; function transformDataToTable(data, panel) { - var model = new TableModel(); + var model = new TableModel(), + copyData = angular.copy(data); if (!data || data.length === 0) { return model; @@ -230,7 +232,13 @@ function transformDataToTable(data, panel) { 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; }