Graph panel: table format support improvements, issue #5812.

This commit is contained in:
Alexander Zobnin 2016-08-23 20:44:58 +03:00
parent c683c7a448
commit d23e9fa3c3
3 changed files with 26 additions and 2 deletions

View File

@ -265,6 +265,11 @@ function (angular, $, moment, _, kbn, GraphTooltip) {
addXSeriesAxis(options); addXSeriesAxis(options);
} else if (panel.xaxis.mode === 'table') { } else if (panel.xaxis.mode === 'table') {
if (data.length) {
options.series.bars.barWidth = 0.7;
options.series.bars.align = 'center';
}
addXTableAxis(options); addXTableAxis(options);
} else { } else {

View File

@ -194,12 +194,18 @@ class GraphCtrl extends MetricsPanelCtrl {
if (dataList.length) { if (dataList.length) {
// Table panel uses only first enabled tagret, so we can use dataList[0] // Table panel uses only first enabled tagret, so we can use dataList[0]
// for table data representation // for table data representation
dataList.splice(1, dataList.length - 1);
this.xAxisColumns = _.map(dataList[0].columns, function(column, index) { this.xAxisColumns = _.map(dataList[0].columns, function(column, index) {
return { return {
text: column.text, text: column.text,
index: index index: index
}; };
}); });
// Set last column as default value
if (!this.panel.xaxis.valueColumnIndex) {
this.panel.xaxis.valueColumnIndex = this.xAxisColumns.length - 1;
}
} }
dataHandler = this.tableHandler; dataHandler = this.tableHandler;
@ -250,14 +256,16 @@ class GraphCtrl extends MetricsPanelCtrl {
tableHandler(seriesData, index) { tableHandler(seriesData, index) {
var xColumnIndex = Number(this.panel.xaxis.columnIndex); var xColumnIndex = Number(this.panel.xaxis.columnIndex);
var valueColumnIndex = this.panel.xaxis.valueColumnIndex;
var datapoints = _.map(seriesData.rows, (row) => { var datapoints = _.map(seriesData.rows, (row) => {
var value = valueColumnIndex ? row[valueColumnIndex] : _.last(row);
return [ return [
_.last(row), // Y value (always last column) value, // Y value
row[xColumnIndex] // X value row[xColumnIndex] // X value
]; ];
}); });
var alias = seriesData.columns[xColumnIndex].text; var alias = seriesData.columns[valueColumnIndex].text;
var colorIndex = index % this.colors.length; var colorIndex = index % this.colors.length;
var color = this.panel.aliasColors[alias] || this.colors[colorIndex]; var color = this.panel.aliasColors[alias] || this.colors[colorIndex];

View File

@ -73,6 +73,17 @@
</select> </select>
</div> </div>
</div> </div>
<div class="gf-form" ng-if="ctrl.panel.xaxis.mode === 'table'">
<label class="gf-form-label width-5">Value</label>
<div class="gf-form-select-wrapper max-width-15">
<select class="gf-form-input"
ng-model="ctrl.panel.xaxis.valueColumnIndex"
ng-options="col.index as col.text for col in ctrl.xAxisColumns"
ng-change="ctrl.refresh()">
</select>
</div>
</div>
</div> </div>
<div class="section gf-form-group"> <div class="section gf-form-group">