From 188dc862465e3e4251e6b59efb1eed504ff778a5 Mon Sep 17 00:00:00 2001 From: ryan Date: Fri, 8 Mar 2019 00:41:35 -0800 Subject: [PATCH] remove type field and add helper functions to check if data isTableData --- packages/grafana-ui/src/types/data.ts | 1 - packages/grafana-ui/src/utils/processTimeSeries.ts | 6 +++--- public/app/plugins/panel/singlestat/module.ts | 4 ++-- public/app/plugins/panel/table/module.ts | 3 ++- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/grafana-ui/src/types/data.ts b/packages/grafana-ui/src/types/data.ts index 1ea89bcd28e..21b863049fc 100644 --- a/packages/grafana-ui/src/types/data.ts +++ b/packages/grafana-ui/src/types/data.ts @@ -63,5 +63,4 @@ export interface Column { export interface TableData { columns: Column[]; rows: any[]; - type: string; } diff --git a/packages/grafana-ui/src/utils/processTimeSeries.ts b/packages/grafana-ui/src/utils/processTimeSeries.ts index 3b2d1bd05aa..e7582c9f13c 100644 --- a/packages/grafana-ui/src/utils/processTimeSeries.ts +++ b/packages/grafana-ui/src/utils/processTimeSeries.ts @@ -191,6 +191,8 @@ export function processTimeSeries({ data, xColumn, yColumn, nullValueMode }: Opt return vmSeries; } +export const isTableData = (data: any): data is TableData => data && data.hasOwnProperty('columns'); + export const toTableData = (results: any[]): TableData[] => { const tables: TableData[] = []; if (results) { @@ -202,15 +204,13 @@ export const toTableData = (results: any[]): TableData[] => { } else if (data.hasOwnProperty('datapoints')) { const ts = data as TimeSeries; tables.push({ - type: 'timeseries', columns: [ { text: ts.target, unit: ts.unit, - type: 'number', // Is this really true? }, { - text: 'time', + text: 'Time', type: 'time', }, ], diff --git a/public/app/plugins/panel/singlestat/module.ts b/public/app/plugins/panel/singlestat/module.ts index bcf09297cf7..5b75de44949 100644 --- a/public/app/plugins/panel/singlestat/module.ts +++ b/public/app/plugins/panel/singlestat/module.ts @@ -8,7 +8,7 @@ import kbn from 'app/core/utils/kbn'; import config from 'app/core/config'; import TimeSeries from 'app/core/time_series2'; import { MetricsPanelCtrl } from 'app/plugins/sdk'; -import { GrafanaThemeType, getValueFormat, getColorFromHexRgbOrName } from '@grafana/ui'; +import { GrafanaThemeType, getValueFormat, getColorFromHexRgbOrName, isTableData } from '@grafana/ui'; class SingleStatCtrl extends MetricsPanelCtrl { static templateUrl = 'module.html'; @@ -112,7 +112,7 @@ class SingleStatCtrl extends MetricsPanelCtrl { scopedVars: _.extend({}, this.panel.scopedVars), }; - if (dataList.length > 0 && dataList[0].type === 'table') { + if (dataList.length > 0 && isTableData(dataList[0])) { this.dataType = 'table'; const tableData = dataList.map(this.tableHandler.bind(this)); this.setTableValues(tableData, data); diff --git a/public/app/plugins/panel/table/module.ts b/public/app/plugins/panel/table/module.ts index 268f5aa7ac4..b7b3c0312a3 100644 --- a/public/app/plugins/panel/table/module.ts +++ b/public/app/plugins/panel/table/module.ts @@ -6,6 +6,7 @@ import { transformDataToTable } from './transformers'; import { tablePanelEditor } from './editor'; import { columnOptionsTab } from './column_options'; import { TableRenderer } from './renderer'; +import { isTableData } from '@grafana/ui'; class TablePanelCtrl extends MetricsPanelCtrl { static templateUrl = 'module.html'; @@ -104,7 +105,7 @@ class TablePanelCtrl extends MetricsPanelCtrl { // automatically correct transform mode based on data if (this.dataRaw && this.dataRaw.length) { - if (this.dataRaw[0].type === 'table') { + if (isTableData(this.dataRaw[0])) { this.panel.transform = 'table'; } else { if (this.dataRaw[0].type === 'docs') {