mirror of
https://github.com/grafana/grafana.git
synced 2025-02-12 00:25:46 -06:00
Timeseries: Migrate legend hideFrom (#67305)
This commit is contained in:
parent
d80d984b52
commit
81792a8dce
@ -1,6 +1,6 @@
|
||||
import { cloneDeep } from 'lodash';
|
||||
|
||||
import { PanelModel, FieldConfigSource, FieldMatcherID } from '@grafana/data';
|
||||
import { PanelModel, FieldConfigSource, FieldMatcherID, ReducerID } from '@grafana/data';
|
||||
import { TooltipDisplayMode, SortOrder } from '@grafana/schema';
|
||||
|
||||
import { graphPanelChangedHandler } from './migrations';
|
||||
@ -144,6 +144,116 @@ describe('Graph Migrations', () => {
|
||||
panel.options = graphPanelChangedHandler(panel, 'graph', old, prevFieldConfig);
|
||||
expect(panel.options.legend.width).toBe(200);
|
||||
});
|
||||
|
||||
test('hide allZeros', () => {
|
||||
const old = {
|
||||
angular: {
|
||||
legend: {
|
||||
show: true,
|
||||
values: false,
|
||||
min: false,
|
||||
max: false,
|
||||
current: false,
|
||||
total: false,
|
||||
avg: false,
|
||||
hideZero: true,
|
||||
},
|
||||
},
|
||||
};
|
||||
const panel = {} as PanelModel;
|
||||
panel.options = graphPanelChangedHandler(panel, 'graph', old, prevFieldConfig);
|
||||
expect(panel.fieldConfig.overrides).toHaveLength(1);
|
||||
expect(panel.fieldConfig.overrides[0].matcher.options.reducer).toBe(ReducerID.allIsZero);
|
||||
expect(panel.fieldConfig.overrides).toMatchInlineSnapshot(`
|
||||
[
|
||||
{
|
||||
"matcher": {
|
||||
"id": "byValue",
|
||||
"options": {
|
||||
"op": "gte",
|
||||
"reducer": "allIsZero",
|
||||
"value": 0,
|
||||
},
|
||||
},
|
||||
"properties": [
|
||||
{
|
||||
"id": "custom.hideFrom",
|
||||
"value": {
|
||||
"legend": true,
|
||||
"tooltip": true,
|
||||
"viz": false,
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
]
|
||||
`);
|
||||
});
|
||||
|
||||
test('hide allZeros allNulls', () => {
|
||||
const old = {
|
||||
angular: {
|
||||
legend: {
|
||||
show: true,
|
||||
values: false,
|
||||
min: false,
|
||||
max: false,
|
||||
current: false,
|
||||
total: false,
|
||||
avg: false,
|
||||
hideEmpty: true,
|
||||
hideZero: true,
|
||||
},
|
||||
},
|
||||
};
|
||||
const panel = {} as PanelModel;
|
||||
panel.options = graphPanelChangedHandler(panel, 'graph', old, prevFieldConfig);
|
||||
expect(panel.fieldConfig.overrides).toHaveLength(2);
|
||||
expect(panel.fieldConfig.overrides).toMatchInlineSnapshot(`
|
||||
[
|
||||
{
|
||||
"matcher": {
|
||||
"id": "byValue",
|
||||
"options": {
|
||||
"op": "gte",
|
||||
"reducer": "allIsZero",
|
||||
"value": 0,
|
||||
},
|
||||
},
|
||||
"properties": [
|
||||
{
|
||||
"id": "custom.hideFrom",
|
||||
"value": {
|
||||
"legend": true,
|
||||
"tooltip": true,
|
||||
"viz": false,
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
"matcher": {
|
||||
"id": "byValue",
|
||||
"options": {
|
||||
"op": "gte",
|
||||
"reducer": "allIsNull",
|
||||
"value": 0,
|
||||
},
|
||||
},
|
||||
"properties": [
|
||||
{
|
||||
"id": "custom.hideFrom",
|
||||
"value": {
|
||||
"legend": true,
|
||||
"tooltip": true,
|
||||
"viz": false,
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
]
|
||||
`);
|
||||
});
|
||||
});
|
||||
|
||||
describe('stacking', () => {
|
||||
|
@ -12,6 +12,7 @@ import {
|
||||
FieldType,
|
||||
NullValueMode,
|
||||
PanelTypeChangedHandler,
|
||||
ReducerID,
|
||||
Threshold,
|
||||
ThresholdsMode,
|
||||
} from '@grafana/data';
|
||||
@ -30,6 +31,7 @@ import {
|
||||
StackingMode,
|
||||
SortOrder,
|
||||
GraphTransform,
|
||||
ComparisonOperation,
|
||||
} from '@grafana/schema';
|
||||
|
||||
import { defaultGraphConfig } from './config';
|
||||
@ -350,6 +352,14 @@ export function graphToTimeseriesOptions(angular: any): { fieldConfig: FieldConf
|
||||
if (angular.legend.sideWidth) {
|
||||
options.legend.width = angular.legend.sideWidth;
|
||||
}
|
||||
|
||||
if (legendConfig.hideZero) {
|
||||
overrides.push(getLegendHideFromOverride(ReducerID.allIsZero));
|
||||
}
|
||||
|
||||
if (legendConfig.hideEmpty) {
|
||||
overrides.push(getLegendHideFromOverride(ReducerID.allIsNull));
|
||||
}
|
||||
}
|
||||
|
||||
const tooltipConfig = angular.tooltip;
|
||||
@ -614,3 +624,26 @@ function migrateHideFrom(panel: {
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function getLegendHideFromOverride(reducer: ReducerID.allIsZero | ReducerID.allIsNull) {
|
||||
return {
|
||||
matcher: {
|
||||
id: FieldMatcherID.byValue,
|
||||
options: {
|
||||
reducer: reducer,
|
||||
op: ComparisonOperation.GTE,
|
||||
value: 0,
|
||||
},
|
||||
},
|
||||
properties: [
|
||||
{
|
||||
id: 'custom.hideFrom',
|
||||
value: {
|
||||
tooltip: true,
|
||||
viz: false,
|
||||
legend: true,
|
||||
},
|
||||
},
|
||||
],
|
||||
};
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user