diff --git a/devenv/dev-dashboards/feature-templating/testdata-nested-variables.json b/devenv/dev-dashboards/feature-templating/testdata-nested-variables.json index dd76b2c61d4..c1ee8aaaf5d 100644 --- a/devenv/dev-dashboards/feature-templating/testdata-nested-variables.json +++ b/devenv/dev-dashboards/feature-templating/testdata-nested-variables.json @@ -15,12 +15,18 @@ "editable": true, "gnetId": null, "graphTooltip": 0, - "id": 13844, - "iteration": 1566896059256, + "iteration": 1590677937026, "links": [], "panels": [ { "content": "## Data center = $datacenter\n\n### server = $server\n\n#### pod = $pod", + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {} + }, + "overrides": [] + }, "gridPos": { "h": 9, "w": 12, @@ -29,7 +35,6 @@ }, "id": 4, "mode": "markdown", - "options": {}, "targets": [ { "refId": "A", @@ -47,6 +52,12 @@ "colorValue": false, "colors": ["#299c46", "rgba(237, 129, 40, 0.89)", "#d44a3a"], "datasource": "gdev-testdata", + "fieldConfig": { + "defaults": { + "custom": {} + }, + "overrides": [] + }, "format": "none", "gauge": { "maxValue": 100, @@ -75,7 +86,6 @@ "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, - "options": {}, "postfix": "", "postfixFontSize": "50%", "prefix": "", @@ -119,6 +129,41 @@ }, { "cacheTimeout": null, + "datasource": null, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "custom": {}, + "links": [ + { + "targetBlank": true, + "title": "Go to drilldown", + "url": "/d/O6GmNPvWk/dashboard-tests-nested-template-variables-drilldown?orgId=1&${__all_variables}&${__url_time_range}" + } + ], + "mappings": [], + "max": 100, + "min": 0, + "nullValueMode": "connected", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, "gridPos": { "h": 9, "w": 4, @@ -128,40 +173,15 @@ "id": 8, "links": [], "options": { - "fieldOptions": { + "orientation": "horizontal", + "reduceOptions": { "calcs": ["mean"], - "defaults": { - "links": [ - { - "targetBlank": true, - "title": "Go to drilldown", - "url": "/d/O6GmNPvWk/dashboard-tests-nested-template-variables-drilldown?orgId=1&${__all_variables}&${__url_time_range}" - } - ], - "mappings": [], - "max": 100, - "min": 0, - "nullValueMode": "connected", - "thresholds": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ], - "unit": "none" - }, - "override": {}, "values": false }, - "orientation": "horizontal", "showThresholdLabels": false, "showThresholdMarkers": true }, - "pluginVersion": "6.4.0-pre", + "pluginVersion": "7.1.0-pre", "targets": [ { "refId": "A", @@ -175,6 +195,41 @@ }, { "cacheTimeout": null, + "datasource": null, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "custom": {}, + "links": [ + { + "targetBlank": true, + "title": "Go to drilldown", + "url": "/d/O6GmNPvWk/dashboard-tests-nested-template-variables-drilldown?orgId=1&${__all_variables}&${__url_time_range}" + } + ], + "mappings": [], + "max": 100, + "min": 0, + "nullValueMode": "connected", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, "gridPos": { "h": 9, "w": 4, @@ -185,38 +240,14 @@ "links": [], "options": { "displayMode": "basic", - "fieldOptions": { + "orientation": "vertical", + "reduceOptions": { "calcs": ["mean"], - "defaults": { - "links": [ - { - "targetBlank": true, - "title": "Go to drilldown", - "url": "/d/O6GmNPvWk/dashboard-tests-nested-template-variables-drilldown?orgId=1&${__all_variables}&${__url_time_range}" - } - ], - "mappings": [], - "max": 100, - "min": 0, - "nullValueMode": "connected", - "thresholds": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ], - "unit": "none" - }, - "override": {}, "values": false }, - "orientation": "vertical" + "showUnfilled": true }, - "pluginVersion": "6.4.0-pre", + "pluginVersion": "7.1.0-pre", "targets": [ { "refId": "A", @@ -228,20 +259,108 @@ "title": "React gauge datalink", "type": "bargauge" }, + { + "datasource": "CsvData", + "fieldConfig": { + "defaults": { + "custom": { + "align": null + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "server" + }, + "properties": [ + { + "id": "links", + "value": [ + { + "title": "filter", + "url": "http://localhost:3000/d/-Y-tnEDWk/templating-nested-template-variables?var-datacenter=${__data.fields[datacenter]}&var-server=${__value.raw}" + } + ] + } + ] + } + ] + }, + "gridPos": { + "h": 6, + "w": 24, + "x": 0, + "y": 9 + }, + "id": 11, + "options": { + "showHeader": true + }, + "pluginVersion": "7.1.0-pre", + "targets": [ + { + "data": [ + { + "fields": [ + { + "config": {}, + "name": "datacenter", + "type": "string", + "values": ["A", "B", "C"] + }, + { + "config": {}, + "name": "server", + "type": "string", + "values": ["AA", "BB", "CC"] + } + ] + } + ], + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Data links that filter update variables on current dashboard", + "type": "table" + }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "gdev-testdata", + "fieldConfig": { + "defaults": { + "custom": {} + }, + "overrides": [] + }, "fill": 1, "fillGradient": 0, "gridPos": { "h": 13, "w": 24, "x": 0, - "y": 9 + "y": 15 }, + "hiddenSeries": false, "id": 2, "legend": { "avg": false, @@ -316,7 +435,7 @@ } ], "refresh": false, - "schemaVersion": 19, + "schemaVersion": 25, "style": "dark", "tags": ["gdev", "templating"], "templating": { @@ -324,6 +443,7 @@ { "allValue": null, "current": { + "selected": true, "text": "A", "value": ["A"] }, @@ -349,6 +469,7 @@ { "allValue": null, "current": { + "selected": true, "text": "AA", "value": ["AA"] }, @@ -374,6 +495,7 @@ { "allValue": null, "current": { + "selected": true, "text": "All", "value": ["$__all"] }, @@ -403,7 +525,7 @@ "to": "now" }, "timepicker": { - "refresh_intervals": ["5s", "10s", "30s", "1m", "5m", "15m", "30m", "1h", "2h", "1d"] + "refresh_intervals": ["10s", "30s", "1m", "5m", "15m", "30m", "1h", "2h", "1d"] }, "timezone": "", "title": "Templating - Nested Template Variables", diff --git a/packages/grafana-data/src/field/fieldOverrides.ts b/packages/grafana-data/src/field/fieldOverrides.ts index 189d962a971..c717d5dabb0 100644 --- a/packages/grafana-data/src/field/fieldOverrides.ts +++ b/packages/grafana-data/src/field/fieldOverrides.ts @@ -367,7 +367,7 @@ export const getLinksSupplier = ( const info: LinkModel = { href: locationUtil.assureBaseUrl(href.replace(/\n/g, '')), title: link.title || '', - target: link.targetBlank ? '_blank' : '_self', + target: link.targetBlank ? '_blank' : undefined, origin: field, }; diff --git a/packages/grafana-data/src/types/dataLink.ts b/packages/grafana-data/src/types/dataLink.ts index 78be49c25a0..bba9fea9dca 100644 --- a/packages/grafana-data/src/types/dataLink.ts +++ b/packages/grafana-data/src/types/dataLink.ts @@ -34,7 +34,7 @@ export interface DataLink { }; } -export type LinkTarget = '_blank' | '_self'; +export type LinkTarget = '_blank' | '_self' | undefined; /** * Processed Link Model. The values are ready to use