You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
88 lines
2.0 KiB
88 lines
2.0 KiB
import kbn from 'grafana/app/core/utils/kbn'; |
|
|
|
|
|
export class AxesEditorCtrl { |
|
panel: any; |
|
panelCtrl: any; |
|
unitFormats: any; |
|
logScales: any; |
|
xAxisModes: any; |
|
xAxisStatOptions: any; |
|
xNameSegment: any; |
|
|
|
/** @ngInject **/ |
|
constructor(private $scope, private $q) { |
|
this.panelCtrl = $scope.ctrl; |
|
this.panel = this.panelCtrl.panel; |
|
this.$scope.ctrl = this; |
|
|
|
this.unitFormats = kbn.getUnitFormats(); |
|
|
|
this.logScales = { |
|
linear: 1, |
|
'log (base 2)': 2, |
|
'log (base 10)': 10, |
|
'log (base 32)': 32, |
|
'log (base 1024)': 1024, |
|
}; |
|
|
|
this.xAxisModes = { |
|
Time: 'time', |
|
Series: 'series', |
|
Histogram: 'histogram', |
|
// 'Data field': 'field', |
|
}; |
|
|
|
this.xAxisStatOptions = [ |
|
{ text: 'Avg', value: 'avg' }, |
|
{ text: 'Min', value: 'min' }, |
|
{ text: 'Max', value: 'max' }, |
|
{ text: 'Total', value: 'total' }, |
|
{ text: 'Count', value: 'count' }, |
|
{ text: 'Current', value: 'current' }, |
|
]; |
|
|
|
if (this.panel.xaxis.mode === 'custom') { |
|
if (!this.panel.xaxis.name) { |
|
this.panel.xaxis.name = 'specify field'; |
|
} |
|
} |
|
} |
|
|
|
setUnitFormat(axis, subItem) { |
|
axis.format = subItem.value; |
|
this.panelCtrl.render(); |
|
} |
|
|
|
render() { |
|
this.panelCtrl.render(); |
|
} |
|
|
|
xAxisModeChanged() { |
|
this.panelCtrl.processor.setPanelDefaultsForNewXAxisMode(); |
|
this.panelCtrl.onDataReceived(this.panelCtrl.dataList); |
|
} |
|
|
|
xAxisValueChanged() { |
|
this.panelCtrl.onDataReceived(this.panelCtrl.dataList); |
|
} |
|
|
|
getDataFieldNames(onlyNumbers) { |
|
var props = this.panelCtrl.processor.getDataFieldNames(this.panelCtrl.dataList, onlyNumbers); |
|
var items = props.map(prop => { |
|
return { text: prop, value: prop }; |
|
}); |
|
return this.$q.when(items); |
|
} |
|
} |
|
|
|
/** @ngInject **/ |
|
export function axesEditorComponent() { |
|
'use strict'; |
|
return { |
|
restrict: 'E', |
|
scope: true, |
|
templateUrl: 'public/plugins/hastic-graph-panel/partials/axes_editor.html', |
|
controller: AxesEditorCtrl, |
|
}; |
|
}
|
|
|