Dashboard: removes variables property (#23107)

This commit is contained in:
Hugo Häggmark
2020-03-30 07:52:00 +02:00
committed by GitHub
parent 5307cfeabd
commit 3feb4e71c5
5 changed files with 20 additions and 59 deletions

View File

@@ -627,5 +627,11 @@ e2e.scenario({
// assert that move up works // assert that move up works
assertMoveUpItem(queryVariables); assertMoveUpItem(queryVariables);
e2e()
.window()
.then((win: any) => {
logSection('This scenario ran with these featureToggles', win.grafanaBootData.settings.featureToggles);
});
}, },
}); });

View File

@@ -94,9 +94,6 @@ exports[`DashboardPage Dashboard init completed Should render dashboard grid 1`
"timezone": "", "timezone": "",
"title": "My dashboard", "title": "My dashboard",
"uid": null, "uid": null,
"variables": Object {
"list": Array [],
},
"version": 0, "version": 0,
} }
} }
@@ -212,9 +209,6 @@ exports[`DashboardPage Dashboard init completed Should render dashboard grid 1`
"timezone": "", "timezone": "",
"title": "My dashboard", "title": "My dashboard",
"uid": null, "uid": null,
"variables": Object {
"list": Array [],
},
"version": 0, "version": 0,
} }
} }
@@ -310,9 +304,6 @@ exports[`DashboardPage Dashboard init completed Should render dashboard grid 1`
"timezone": "", "timezone": "",
"title": "My dashboard", "title": "My dashboard",
"uid": null, "uid": null,
"variables": Object {
"list": Array [],
},
"version": 0, "version": 0,
} }
} }
@@ -438,9 +429,6 @@ exports[`DashboardPage When dashboard has editview url state should render setti
"timezone": "", "timezone": "",
"title": "My dashboard", "title": "My dashboard",
"uid": null, "uid": null,
"variables": Object {
"list": Array [],
},
"version": 0, "version": 0,
} }
} }
@@ -556,9 +544,6 @@ exports[`DashboardPage When dashboard has editview url state should render setti
"timezone": "", "timezone": "",
"title": "My dashboard", "title": "My dashboard",
"uid": null, "uid": null,
"variables": Object {
"list": Array [],
},
"version": 0, "version": 0,
} }
} }
@@ -654,9 +639,6 @@ exports[`DashboardPage When dashboard has editview url state should render setti
"timezone": "", "timezone": "",
"title": "My dashboard", "title": "My dashboard",
"uid": null, "uid": null,
"variables": Object {
"list": Array [],
},
"version": 0, "version": 0,
} }
} }
@@ -758,9 +740,6 @@ exports[`DashboardPage When dashboard has editview url state should render setti
"timezone": "", "timezone": "",
"title": "My dashboard", "title": "My dashboard",
"uid": null, "uid": null,
"variables": Object {
"list": Array [],
},
"version": 0, "version": 0,
} }
} }

View File

@@ -256,9 +256,6 @@ exports[`DashboardGrid Can render dashboard grid Should render 1`] = `
"timezone": "", "timezone": "",
"title": "My dashboard", "title": "My dashboard",
"uid": null, "uid": null,
"variables": Object {
"list": Array [],
},
"version": 0, "version": 0,
} }
} }
@@ -507,9 +504,6 @@ exports[`DashboardGrid Can render dashboard grid Should render 1`] = `
"timezone": "", "timezone": "",
"title": "My dashboard", "title": "My dashboard",
"uid": null, "uid": null,
"variables": Object {
"list": Array [],
},
"version": 0, "version": 0,
} }
} }
@@ -758,9 +752,6 @@ exports[`DashboardGrid Can render dashboard grid Should render 1`] = `
"timezone": "", "timezone": "",
"title": "My dashboard", "title": "My dashboard",
"uid": null, "uid": null,
"variables": Object {
"list": Array [],
},
"version": 0, "version": 0,
} }
} }
@@ -1009,9 +1000,6 @@ exports[`DashboardGrid Can render dashboard grid Should render 1`] = `
"timezone": "", "timezone": "",
"title": "My dashboard", "title": "My dashboard",
"uid": null, "uid": null,
"variables": Object {
"list": Array [],
},
"version": 0, "version": 0,
} }
} }

View File

@@ -13,7 +13,6 @@ import { DashboardMigrator } from './DashboardMigrator';
import { AppEvent, dateTime, DateTimeInput, isDateTime, PanelEvents, TimeRange, TimeZone, toUtc } from '@grafana/data'; import { AppEvent, dateTime, DateTimeInput, isDateTime, PanelEvents, TimeRange, TimeZone, toUtc } from '@grafana/data';
import { UrlQueryValue } from '@grafana/runtime'; import { UrlQueryValue } from '@grafana/runtime';
import { CoreEvents, DashboardMeta, KIOSK_MODE_TV } from 'app/types'; import { CoreEvents, DashboardMeta, KIOSK_MODE_TV } from 'app/types';
import { VariableModel } from '../../templating/types';
import { getConfig } from '../../../core/config'; import { getConfig } from '../../../core/config';
import { getVariableClones, getVariables } from 'app/features/variables/state/selectors'; import { getVariableClones, getVariables } from 'app/features/variables/state/selectors';
import { variableAdapters } from 'app/features/variables/adapters'; import { variableAdapters } from 'app/features/variables/adapters';
@@ -41,7 +40,6 @@ export class DashboardModel {
private originalTime: any; private originalTime: any;
timepicker: any; timepicker: any;
templating: { list: any[] }; templating: { list: any[] };
variables: { list: VariableModel[] };
private originalTemplating: any; private originalTemplating: any;
annotations: { list: any[] }; annotations: { list: any[] };
refresh: any; refresh: any;
@@ -93,7 +91,6 @@ export class DashboardModel {
this.time = data.time || { from: 'now-6h', to: 'now' }; this.time = data.time || { from: 'now-6h', to: 'now' };
this.timepicker = data.timepicker || {}; this.timepicker = data.timepicker || {};
this.templating = this.ensureListExist(data.templating); this.templating = this.ensureListExist(data.templating);
this.variables = this.ensureListExist(data.variables);
this.annotations = this.ensureListExist(data.annotations); this.annotations = this.ensureListExist(data.annotations);
this.refresh = data.refresh; this.refresh = data.refresh;
this.snapshot = data.snapshot; this.snapshot = data.snapshot;
@@ -190,9 +187,6 @@ export class DashboardModel {
// sort by keys // sort by keys
copy = sortByKeys(copy); copy = sortByKeys(copy);
copy.getVariables = () => { copy.getVariables = () => {
if (getConfig().featureToggles.newVariables) {
return copy.variables.list;
}
return copy.templating.list; return copy.templating.list;
}; };
@@ -205,6 +199,7 @@ export class DashboardModel {
) { ) {
if (getConfig().featureToggles.newVariables) { if (getConfig().featureToggles.newVariables) {
this.updateTemplatingSaveModel(copy, defaults); this.updateTemplatingSaveModel(copy, defaults);
return;
} }
this.updateAngularTemplatingSaveModel(copy, defaults); this.updateAngularTemplatingSaveModel(copy, defaults);
} }
@@ -242,16 +237,16 @@ export class DashboardModel {
copy: any, copy: any,
defaults: { saveTimerange: boolean; saveVariables: boolean } & CloneOptions defaults: { saveTimerange: boolean; saveVariables: boolean } & CloneOptions
) { ) {
const originalVariables = this.variables.list; const originalVariables = this.originalTemplating;
const currentVariables = getVariableClones(); const currentVariables = getVariableClones();
copy.variables = { copy.templating = {
list: currentVariables.map(variable => variableAdapters.get(variable.type).getSaveModel(variable)), list: currentVariables.map(variable => variableAdapters.get(variable.type).getSaveModel(variable)),
}; };
if (!defaults.saveVariables) { if (!defaults.saveVariables) {
for (let i = 0; i < copy.variables.list.length; i++) { for (let i = 0; i < copy.templating.list.length; i++) {
const current = copy.variables.list[i]; const current = copy.templating.list[i];
const original: any = _.find(originalVariables, { name: current.name, type: current.type }); const original: any = _.find(originalVariables, { name: current.name, type: current.type });
if (!original) { if (!original) {
@@ -259,9 +254,9 @@ export class DashboardModel {
} }
if (current.type === 'adhoc') { if (current.type === 'adhoc') {
copy.variables.list[i].filters = original.filters; copy.templating.list[i].filters = original.filters;
} else { } else {
copy.variables.list[i].current = original.current; copy.templating.list[i].current = original.current;
} }
} }
} }
@@ -940,21 +935,19 @@ export class DashboardModel {
} }
resetOriginalVariables(initial = false) { resetOriginalVariables(initial = false) {
if (!getConfig().featureToggles.newVariables) { if (!getConfig().featureToggles.newVariables || initial) {
this.originalTemplating = this.cloneVariablesFrom(this.templating.list); this.originalTemplating = this.cloneVariablesFrom(this.templating.list);
return;
} }
if (!initial && getConfig().featureToggles.newVariables) { this.originalTemplating = this.cloneVariablesFrom(getVariableClones());
// since we never change the this.variables.list when running with variables
// in redux we can use it instead of the originalTemplating.
this.variables.list = this.cloneVariablesFrom(getVariables());
}
} }
hasVariableValuesChanged() { hasVariableValuesChanged() {
if (getConfig().featureToggles.newVariables) { if (getConfig().featureToggles.newVariables) {
return this.hasVariablesChanged(this.variables.list, getVariables()); return this.hasVariablesChanged(this.originalTemplating, getVariableClones());
} }
return this.hasVariablesChanged(this.originalTemplating, this.templating.list); return this.hasVariablesChanged(this.originalTemplating, this.templating.list);
} }
@@ -1026,7 +1019,7 @@ export class DashboardModel {
getVariables = () => { getVariables = () => {
if (getConfig().featureToggles.newVariables) { if (getConfig().featureToggles.newVariables) {
return this.variables.list; return getVariableClones();
} }
return this.templating.list; return this.templating.list;
}; };

View File

@@ -24,7 +24,6 @@ import { DashboardModel } from './DashboardModel';
import { DataQuery } from '@grafana/data'; import { DataQuery } from '@grafana/data';
import { getConfig } from '../../../core/config'; import { getConfig } from '../../../core/config';
import { initDashboardTemplating, processVariables } from '../../variables/state/actions'; import { initDashboardTemplating, processVariables } from '../../variables/state/actions';
import { variableAdapters } from '../../variables/adapters';
import { emitDashboardViewEvent } from './analyticsProcessor'; import { emitDashboardViewEvent } from './analyticsProcessor';
export interface InitDashboardArgs { export interface InitDashboardArgs {
@@ -186,11 +185,7 @@ export function initDashboard(args: InitDashboardArgs): ThunkResult<void> {
await variableSrv.init(dashboard); await variableSrv.init(dashboard);
} }
if (getConfig().featureToggles.newVariables) { if (getConfig().featureToggles.newVariables) {
const list = await dispatch(initDashboardTemplating(dashboard.templating.list));
dashboard.variables.list.length > 0
? dashboard.variables.list
: dashboard.templating.list.filter(v => variableAdapters.getIfExists(v.type));
await dispatch(initDashboardTemplating(list));
await dispatch(processVariables()); await dispatch(processVariables());
} }
} catch (err) { } catch (err) {