NodeGraph: Use target if in link (#95733)

* Add target to items, use item target for link

* let defined false mean self, only use default in explore if one is not defined
This commit is contained in:
Kristina
2024-11-21 10:15:27 -06:00
committed by GitHub
parent d152770b6a
commit d5a5edf5a8
3 changed files with 6 additions and 4 deletions
+1 -1
View File
@@ -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<DataQuery>) => {
@@ -297,7 +297,7 @@ export class LinkSrv implements LinkService {
const info: LinkModel<T> = {
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,
};
@@ -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<T extends NodeDatum | EdgeDatumLayout>(item: T) {
}
: undefined
}
target={'_self'}
target={link.target || '_self'}
/>
);
};
@@ -140,6 +140,7 @@ type LinkData<T extends NodeDatum | EdgeDatumLayout> = {
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,
})),
};
});