diff --git a/public/app/features/explore/utils/links.ts b/public/app/features/explore/utils/links.ts index f837c36a2fb..349468b0cca 100644 --- a/public/app/features/explore/utils/links.ts +++ b/public/app/features/explore/utils/links.ts @@ -211,7 +211,7 @@ export const getFieldLinksForExplore = (options: { if (!linkModel.title) { linkModel.title = getTitleFromHref(linkModel.href); } - linkModel.target = '_blank'; + linkModel.target = linkModel.target ?? '_blank'; return { ...linkModel, variables: variables }; } else { const splitFnWithTracking = (options?: SplitOpenOptions) => { diff --git a/public/app/features/panel/panellinks/link_srv.ts b/public/app/features/panel/panellinks/link_srv.ts index fec4e0e2c8a..19a7920fc7d 100644 --- a/public/app/features/panel/panellinks/link_srv.ts +++ b/public/app/features/panel/panellinks/link_srv.ts @@ -297,7 +297,7 @@ export class LinkSrv implements LinkService { const info: LinkModel = { href: locationUtil.assureBaseUrl(href.replace(/\n/g, '')), title: link.title ?? '', - target: link.targetBlank ? '_blank' : undefined, + target: link.targetBlank !== undefined ? (link.targetBlank ? '_blank' : '_self') : undefined, origin, }; diff --git a/public/app/plugins/panel/nodeGraph/useContextMenu.tsx b/public/app/plugins/panel/nodeGraph/useContextMenu.tsx index 01aaa549917..dd26f99ebc8 100644 --- a/public/app/plugins/panel/nodeGraph/useContextMenu.tsx +++ b/public/app/plugins/panel/nodeGraph/useContextMenu.tsx @@ -2,7 +2,7 @@ import { css } from '@emotion/css'; import { MouseEvent, useCallback, useState } from 'react'; import * as React from 'react'; -import { DataFrame, Field, GrafanaTheme2, LinkModel } from '@grafana/data'; +import { DataFrame, Field, GrafanaTheme2, LinkModel, LinkTarget } from '@grafana/data'; import { ContextMenu, MenuGroup, MenuItem, useStyles2 } from '@grafana/ui'; import { Config } from './layout'; @@ -129,7 +129,7 @@ function mapMenuItem(item: T) { } : undefined } - target={'_self'} + target={link.target || '_self'} /> ); }; @@ -140,6 +140,7 @@ type LinkData = { ariaLabel?: string; url?: string; onClick?: (item: T) => void; + target?: LinkTarget; }; function getItems(links: LinkModel[]) { @@ -169,6 +170,7 @@ function getItems(links: LinkModel[]) { ariaLabel: link.newTitle || link.l.title, url: link.l.href, onClick: link.l.onClick, + target: link.l.target, })), }; });