Commit 50cd8d99 by Peter Holmberg

display value map or range map

parent f7cb5a1f
import React, { PureComponent } from 'react'; import React, { PureComponent } from 'react';
import $ from 'jquery'; import $ from 'jquery';
import { RangeMap, Threshold, TimeSeriesVMs, ValueMap } from 'app/types'; import { MappingType, RangeMap, Threshold, TimeSeriesVMs, ValueMap } from 'app/types';
import config from '../core/config'; import config from '../core/config';
import kbn from '../core/utils/kbn'; import kbn from '../core/utils/kbn';
...@@ -47,16 +47,49 @@ export class Gauge extends PureComponent<Props> { ...@@ -47,16 +47,49 @@ export class Gauge extends PureComponent<Props> {
this.draw(); this.draw();
} }
formatWithMappings(mappings, value) {
const valueMaps = mappings.filter(m => m.type === MappingType.ValueToText);
const rangeMaps = mappings.filter(m => m.type === MappingType.RangeToText);
const valueMap = valueMaps.map(mapping => {
if (mapping.value && value === mapping.value) {
return mapping.text;
}
})[0];
const rangeMap = rangeMaps.map(mapping => {
if (mapping.from && mapping.to && value > mapping.from && value < mapping.to) {
return mapping.text;
}
})[0];
return {
rangeMap,
valueMap,
};
}
formatValue(value) { formatValue(value) {
const { decimals, prefix, suffix, unit } = this.props; const { decimals, mappings, prefix, suffix, unit } = this.props;
const formatFunc = kbn.valueFormats[unit]; const formatFunc = kbn.valueFormats[unit];
const formattedValue = formatFunc(value, decimals);
if (mappings.length > 0) {
const { rangeMap, valueMap } = this.formatWithMappings(mappings, formattedValue);
if (valueMap) {
return valueMap;
} else if (rangeMap) {
return rangeMap;
}
}
if (isNaN(value)) { if (isNaN(value)) {
return '-'; return '-';
} }
return `${prefix} ${formatFunc(value, decimals)} ${suffix}`; return `${prefix} ${formattedValue} ${suffix}`;
} }
draw() { draw() {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment