mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Graph panel: table format support improvements, issue #5812.
This commit is contained in:
parent
c683c7a448
commit
d23e9fa3c3
@ -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 {
|
||||||
|
@ -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];
|
||||||
|
@ -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">
|
||||||
|
Loading…
Reference in New Issue
Block a user