mirror of
https://github.com/grafana/grafana.git
synced 2025-01-26 08:16:59 -06:00
Revert "DashList: Update variables in links when they change" (#77868)
Revert "DashList: Update variables in links when they change (#77787)"
This reverts commit 3e57eacc15
.
This commit is contained in:
parent
3e57eacc15
commit
88f35fc85f
@ -1,139 +0,0 @@
|
||||
{
|
||||
"__inputs": [
|
||||
{
|
||||
"name": "DS_GDEV-TESTDATA",
|
||||
"label": "gdev-testdata",
|
||||
"description": "",
|
||||
"type": "datasource",
|
||||
"pluginId": "grafana-testdata-datasource",
|
||||
"pluginName": "TestData"
|
||||
}
|
||||
],
|
||||
"__elements": {},
|
||||
"__requires": [
|
||||
{
|
||||
"type": "panel",
|
||||
"id": "dashlist",
|
||||
"name": "Dashboard list",
|
||||
"version": ""
|
||||
},
|
||||
{
|
||||
"type": "grafana",
|
||||
"id": "grafana",
|
||||
"name": "Grafana",
|
||||
"version": "10.3.0-pre"
|
||||
},
|
||||
{
|
||||
"type": "datasource",
|
||||
"id": "grafana-testdata-datasource",
|
||||
"name": "TestData",
|
||||
"version": "1.0.0"
|
||||
}
|
||||
],
|
||||
"annotations": {
|
||||
"list": [
|
||||
{
|
||||
"builtIn": 1,
|
||||
"datasource": {
|
||||
"type": "grafana",
|
||||
"uid": "-- Grafana --"
|
||||
},
|
||||
"enable": true,
|
||||
"hide": true,
|
||||
"iconColor": "rgba(0, 211, 255, 1)",
|
||||
"name": "Annotations & Alerts",
|
||||
"type": "dashboard"
|
||||
}
|
||||
]
|
||||
},
|
||||
"editable": true,
|
||||
"fiscalYearStartMonth": 0,
|
||||
"graphTooltip": 0,
|
||||
"id": null,
|
||||
"links": [],
|
||||
"liveNow": false,
|
||||
"panels": [
|
||||
{
|
||||
"datasource": {
|
||||
"type": "grafana-testdata-datasource",
|
||||
"uid": "${DS_GDEV-TESTDATA}"
|
||||
},
|
||||
"gridPos": {
|
||||
"h": 8,
|
||||
"w": 12,
|
||||
"x": 0,
|
||||
"y": 0
|
||||
},
|
||||
"id": 2,
|
||||
"options": {
|
||||
"folderUID": "",
|
||||
"includeVars": true,
|
||||
"keepTime": false,
|
||||
"maxItems": 10,
|
||||
"query": "",
|
||||
"showHeadings": true,
|
||||
"showRecentlyViewed": true,
|
||||
"showSearch": false,
|
||||
"showStarred": false,
|
||||
"tags": []
|
||||
},
|
||||
"pluginVersion": "10.3.0-pre",
|
||||
"title": "Dashboard list panel",
|
||||
"type": "dashlist"
|
||||
}
|
||||
],
|
||||
"refresh": "",
|
||||
"schemaVersion": 39,
|
||||
"tags": [],
|
||||
"templating": {
|
||||
"list": [
|
||||
{
|
||||
"current": {
|
||||
"selected": true,
|
||||
"text": "a",
|
||||
"value": "a"
|
||||
},
|
||||
"hide": 0,
|
||||
"includeAll": false,
|
||||
"multi": false,
|
||||
"name": "query0",
|
||||
"options": [
|
||||
{
|
||||
"selected": true,
|
||||
"text": "a",
|
||||
"value": "a"
|
||||
},
|
||||
{
|
||||
"selected": false,
|
||||
"text": "b",
|
||||
"value": "b"
|
||||
},
|
||||
{
|
||||
"selected": false,
|
||||
"text": "c",
|
||||
"value": "c"
|
||||
},
|
||||
{
|
||||
"selected": false,
|
||||
"text": "d",
|
||||
"value": "d"
|
||||
}
|
||||
],
|
||||
"query": "a,b,c,d",
|
||||
"queryValue": "",
|
||||
"skipUrlSync": false,
|
||||
"type": "custom"
|
||||
}
|
||||
]
|
||||
},
|
||||
"time": {
|
||||
"from": "now-6h",
|
||||
"to": "now"
|
||||
},
|
||||
"timepicker": {},
|
||||
"timezone": "",
|
||||
"title": "Panel Tests - DashList variables",
|
||||
"uid": "a6801696-cc53-4196-b1f9-2403e3909185",
|
||||
"version": 1,
|
||||
"weekStart": ""
|
||||
}
|
@ -149,13 +149,6 @@ local dashboard = grafana.dashboard;
|
||||
id: 0,
|
||||
}
|
||||
},
|
||||
dashboard.new('dashlist_url_variables', import '../dev-dashboards/panel-dashlist/dashlist_url_variables.json') +
|
||||
resource.addMetadata('folder', 'dev-dashboards') +
|
||||
{
|
||||
spec+: {
|
||||
id: 0,
|
||||
}
|
||||
},
|
||||
dashboard.new('datadata-macros', import '../dev-dashboards/feature-templating/datadata-macros.json') +
|
||||
resource.addMetadata('folder', 'dev-dashboards') +
|
||||
{
|
||||
|
@ -1,37 +0,0 @@
|
||||
import { e2e } from '../utils';
|
||||
const PAGE_UNDER_TEST = 'a6801696-cc53-4196-b1f9-2403e3909185/panel-tests-dashlist-variables';
|
||||
|
||||
describe('DashList panel', () => {
|
||||
beforeEach(() => {
|
||||
e2e.flows.login(Cypress.env('USERNAME'), Cypress.env('PASSWORD'));
|
||||
});
|
||||
|
||||
// this is to prevent the fix for https://github.com/grafana/grafana/issues/76800 from regressing
|
||||
it('should pass current variable values correctly when `Include current template variable values` is set', () => {
|
||||
e2e.flows.openDashboard({ uid: PAGE_UNDER_TEST });
|
||||
|
||||
// check the initial value of the urls contain the variable value correctly
|
||||
e2e.components.Panels.Panel.title('Dashboard list panel')
|
||||
.should('be.visible')
|
||||
.within(() => {
|
||||
cy.get('a').each(($el) => {
|
||||
cy.wrap($el).should('have.attr', 'href').and('contain', 'var-query0=a');
|
||||
});
|
||||
});
|
||||
|
||||
// update variable to b
|
||||
e2e.pages.Dashboard.SubMenu.submenuItemLabels('query0').click();
|
||||
e2e.pages.Dashboard.SubMenu.submenuItemValueDropDownOptionTexts('b').click();
|
||||
// blur the dropdown
|
||||
cy.get('body').click();
|
||||
|
||||
// check the urls are updated with the new variable value
|
||||
e2e.components.Panels.Panel.title('Dashboard list panel')
|
||||
.should('be.visible')
|
||||
.within(() => {
|
||||
cy.get('a').each(($el) => {
|
||||
cy.wrap($el).should('have.attr', 'href').and('contain', 'var-query0=b');
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
@ -1,18 +1,9 @@
|
||||
import { take } from 'lodash';
|
||||
import React, { useEffect, useMemo, useState } from 'react';
|
||||
|
||||
import {
|
||||
DateTime,
|
||||
InterpolateFunction,
|
||||
PanelProps,
|
||||
textUtil,
|
||||
UrlQueryMap,
|
||||
UrlQueryValue,
|
||||
urlUtil,
|
||||
} from '@grafana/data';
|
||||
import { DateTime, InterpolateFunction, PanelProps, textUtil, UrlQueryValue, urlUtil } from '@grafana/data';
|
||||
import { CustomScrollbar, useStyles2, IconButton } from '@grafana/ui';
|
||||
import { getConfig } from 'app/core/config';
|
||||
import { appEvents } from 'app/core/core';
|
||||
import { setStarred } from 'app/core/reducers/navBarTree';
|
||||
import { getBackendSrv } from 'app/core/services/backend_srv';
|
||||
import impressionSrv from 'app/core/services/impression_srv';
|
||||
@ -20,7 +11,6 @@ import { getDashboardSrv } from 'app/features/dashboard/services/DashboardSrv';
|
||||
import { getTimeSrv } from 'app/features/dashboard/services/TimeSrv';
|
||||
import { DashboardSearchItem } from 'app/features/search/types';
|
||||
import { getVariablesUrlParams } from 'app/features/variables/getAllVariableValuesForUrl';
|
||||
import { VariablesChanged } from 'app/features/variables/types';
|
||||
import { useDispatch } from 'app/types';
|
||||
|
||||
import { Options } from './panelcfg.gen';
|
||||
@ -99,29 +89,9 @@ async function fetchDashboards(options: Options, replaceVars: InterpolateFunctio
|
||||
return dashMap;
|
||||
}
|
||||
|
||||
function useVariablesForURL(subscribe: boolean) {
|
||||
const [variables, setVariables] = useState<UrlQueryMap>(() => getVariablesUrlParams());
|
||||
|
||||
useEffect(() => {
|
||||
if (!subscribe) {
|
||||
return;
|
||||
}
|
||||
|
||||
const sub = appEvents.subscribe(VariablesChanged, () => {
|
||||
setVariables(getVariablesUrlParams());
|
||||
});
|
||||
|
||||
return () => sub.unsubscribe();
|
||||
}, [subscribe]);
|
||||
|
||||
return variables;
|
||||
}
|
||||
|
||||
export function DashList(props: PanelProps<Options>) {
|
||||
const [dashboards, setDashboards] = useState(new Map<string, Dashboard>());
|
||||
const dispatch = useDispatch();
|
||||
const urlVariables = useVariablesForURL(props.options.includeVars);
|
||||
|
||||
useEffect(() => {
|
||||
fetchDashboards(props.options, props.replaceVariables).then((dashes) => {
|
||||
setDashboards(dashes);
|
||||
@ -186,7 +156,7 @@ export function DashList(props: PanelProps<Options>) {
|
||||
if (props.options.includeVars) {
|
||||
params = {
|
||||
...params,
|
||||
...urlVariables,
|
||||
...getVariablesUrlParams(),
|
||||
};
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user