refactoring(graph panel): #5917

This commit is contained in:
Torkel Ödegaard 2016-09-05 11:07:41 +02:00
parent 36252602af
commit 31642b472c
3 changed files with 26 additions and 47 deletions

View File

@ -238,9 +238,7 @@ function (angular, $, moment, _, kbn, GraphTooltip, thresholdManExports) {
series.data = series.getFlotPairs(series.nullPointMode || panel.nullPointMode);
if (panel.xaxis.mode === 'series') {
series.data = [
[i + 1, series.stats[panel.xaxis.seriesValue]]
];
series.data = [[i + 1, series.stats[panel.xaxis.values[0]]]];
} else if (panel.xaxis.mode === 'table' ||
panel.xaxis.mode === 'elastic') {
series.data = [];

View File

@ -23,8 +23,7 @@ class GraphCtrl extends MetricsPanelCtrl {
logScales: any;
unitFormats: any;
xAxisModes: any;
xAxisSeriesValues: any;
xAxisColumns: any = [];
xAxisSeriesStats: any;
annotationsPromise: any;
datapointsCount: number;
datapointsOutside: boolean;
@ -58,11 +57,8 @@ class GraphCtrl extends MetricsPanelCtrl {
xaxis: {
show: true,
mode: 'time',
seriesValue: 'avg'
},
alert: {
warn: {op: '>', value: undefined},
crit: {op: '>', value: undefined},
name: null,
values: [],
},
// show/hide lines
lines : true,
@ -120,7 +116,6 @@ class GraphCtrl extends MetricsPanelCtrl {
_.defaults(this.panel, this.panelDefaults);
_.defaults(this.panel.tooltip, this.panelDefaults.tooltip);
_.defaults(this.panel.alert, this.panelDefaults.alert);
_.defaults(this.panel.legend, this.panelDefaults.legend);
_.defaults(this.panel.xaxis, this.panelDefaults.xaxis);
@ -156,10 +151,10 @@ class GraphCtrl extends MetricsPanelCtrl {
'Time': 'time',
'Series': 'series',
'Table': 'table',
'Elastic Raw Doc': 'elastic'
'Json': 'json'
};
this.xAxisSeriesValues = ['min', 'max', 'avg', 'current', 'total'];
this.xAxisSeriesStats = ['min', 'max', 'avg', 'current', 'count', 'total'];
this.subTabIndex = 0;
}
@ -199,35 +194,21 @@ class GraphCtrl extends MetricsPanelCtrl {
this.datapointsOutside = false;
let dataHandler: (seriesData, index)=>any;
if (this.panel.xaxis.mode === 'table') {
if (dataList.length) {
// Table panel uses only first enabled tagret, so we can use dataList[0]
// for table data representation
dataList.splice(1, dataList.length - 1);
this.xAxisColumns = _.map(dataList[0].columns, (column, index) => {
return {
text: column.text,
index: index
};
});
// Set last column as default value
if (!this.panel.xaxis.valueColumnIndex) {
this.panel.xaxis.valueColumnIndex = this.xAxisColumns.length - 1;
}
switch (this.panel.xaxis.mode) {
case 'series':
case 'time': {
dataHandler = this.timeSeriesHandler;
break;
}
dataHandler = this.tableHandler;
} else if (this.panel.xaxis.mode === 'elastic') {
if (dataList.length) {
dataList.splice(1, dataList.length - 1);
var point = _.first(dataList[0].datapoints);
this.xAxisColumns = getFieldsFromESDoc(point);
case 'table': {
// Table panel uses only first enabled target, so we can use dataList[0]
dataList.splice(1, dataList.length - 1);
dataHandler = this.tableHandler;
break;
}
case 'json': {
break;
}
dataHandler = this.esRawDocHandler;
} else {
dataHandler = this.timeSeriesHandler;
}
this.seriesList = dataList.map(dataHandler.bind(this));

View File

@ -57,8 +57,8 @@
<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.seriesValue"
ng-options="v for v in ctrl.xAxisSeriesValues"
ng-model="ctrl.panel.xaxis.values[0]"
ng-options="v for v in ctrl.xAxisSeriesStats"
ng-change="ctrl.render()">
</select>
</div>
@ -69,7 +69,7 @@
<label class="gf-form-label width-5">Column</label>
<div class="gf-form-select-wrapper max-width-15">
<select class="gf-form-input"
ng-model="ctrl.panel.xaxis.columnIndex"
ng-model="ctrl.panel.xaxis.nameField"
ng-options="col.index as col.text for col in ctrl.xAxisColumns"
ng-change="ctrl.refresh()">
</select>
@ -80,7 +80,7 @@
<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-model="ctrl.panel.xaxis.valueFields[0]"
ng-options="col.index as col.text for col in ctrl.xAxisColumns"
ng-change="ctrl.refresh()">
</select>
@ -88,11 +88,11 @@
</div>
<!-- Elastic Raw Document mode -->
<div class="gf-form" ng-if="ctrl.panel.xaxis.mode === 'elastic'">
<div class="gf-form" ng-if="ctrl.panel.xaxis.mode === 'json'">
<label class="gf-form-label width-5">Column</label>
<div class="gf-form-select-wrapper max-width-15">
<select class="gf-form-input"
ng-model="ctrl.panel.xaxis.esField"
ng-model="ctrl.panel.xaxis.nameField"
ng-options="field for field in ctrl.xAxisColumns"
ng-change="ctrl.refresh()">
</select>
@ -103,7 +103,7 @@
<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.esValueField"
ng-model="ctrl.panel.xaxis.valueFields[0]"
ng-options="field for field in ctrl.xAxisColumns"
ng-change="ctrl.refresh()">
</select>