From 11170dd34ca2a213b89e6ba0364176e450664f32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torkel=20=C3=96degaard?= Date: Mon, 29 Jun 2015 09:22:08 +0200 Subject: [PATCH] feat(singlestat): Added support for string values, Closes #2203 --- CHANGELOG.md | 1 + public/app/panels/singlestat/module.js | 21 ++++++++++++------- .../datasource/influxdb/influxSeries.js | 6 ++++-- 3 files changed, 19 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6f9b6d48f0a..06f4712d263 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ - [Issue #590](https://github.com/grafana/grafana/issues/590). Graph: Define series color using regex rule - [Issue #2162](https://github.com/grafana/grafana/issues/2162). Graph: New series style override, negative-y transform and stack groups - [Issue #2096](https://github.com/grafana/grafana/issues/2096). Dashboard list panel: Now supports search by multiple tags +- [Issue #2203](https://github.com/grafana/grafana/issues/2203). Singlestat: Now support string values **User or Organization admin** - [Issue #1899](https://github.com/grafana/grafana/issues/1899). Organization: You can now update the organization user role directly (without removing and readding the organization user). diff --git a/public/app/panels/singlestat/module.js b/public/app/panels/singlestat/module.js index 24855634ba6..b38912605bb 100644 --- a/public/app/panels/singlestat/module.js +++ b/public/app/panels/singlestat/module.js @@ -186,14 +186,21 @@ function (angular, app, _, TimeSeries, kbn, PanelMeta) { data.flotpairs = []; if ($scope.series && $scope.series.length > 0) { - data.value = $scope.series[0].stats[$scope.panel.valueName]; - data.flotpairs = $scope.series[0].flotpairs; - } + var lastValue = _.last($scope.series[0].datapoints)[0]; + if (_.isString(lastValue)) { + data.value = 0; + data.valueFormated = lastValue; + data.valueRounded = 0; + } else { + data.value = $scope.series[0].stats[$scope.panel.valueName]; + data.flotpairs = $scope.series[0].flotpairs; - var decimalInfo = $scope.getDecimalsForValue(data.value); - var formatFunc = kbn.valueFormats[$scope.panel.format]; - data.valueFormated = formatFunc(data.value, decimalInfo.decimals, decimalInfo.scaledDecimals); - data.valueRounded = kbn.roundValue(data.value, decimalInfo.decimals); + var decimalInfo = $scope.getDecimalsForValue(data.value); + var formatFunc = kbn.valueFormats[$scope.panel.format]; + data.valueFormated = formatFunc(data.value, decimalInfo.decimals, decimalInfo.scaledDecimals); + data.valueRounded = kbn.roundValue(data.value, decimalInfo.decimals); + } + } // check value to text mappings for(var i = 0; i < $scope.panel.valueMaps.length; i++) { diff --git a/public/app/plugins/datasource/influxdb/influxSeries.js b/public/app/plugins/datasource/influxdb/influxSeries.js index f911d758a78..43fb484e9ce 100644 --- a/public/app/plugins/datasource/influxdb/influxSeries.js +++ b/public/app/plugins/datasource/influxdb/influxSeries.js @@ -41,8 +41,10 @@ function (_) { } var datapoints = []; - for (i = 0; i < series.values.length; i++) { - datapoints[i] = [series.values[i][j], series.values[i][0]]; + if (series.values) { + for (i = 0; i < series.values.length; i++) { + datapoints[i] = [series.values[i][j], series.values[i][0]]; + } } output.push({ target: seriesName, datapoints: datapoints});