diff --git a/public/app/core/components/AppChrome/MegaMenu/MegaMenuItemText.tsx b/public/app/core/components/AppChrome/MegaMenu/MegaMenuItemText.tsx index 6510fda9a279..8b3f075221af 100644 --- a/public/app/core/components/AppChrome/MegaMenu/MegaMenuItemText.tsx +++ b/public/app/core/components/AppChrome/MegaMenu/MegaMenuItemText.tsx @@ -4,6 +4,7 @@ import React from 'react'; import { GrafanaTheme2 } from '@grafana/data'; import { selectors } from '@grafana/e2e-selectors'; import { Icon, Link, useTheme2 } from '@grafana/ui'; +import { useLinkWithVariables } from 'app/percona/shared/helpers/navigation'; export interface Props { children: React.ReactNode; @@ -17,6 +18,8 @@ export function MegaMenuItemText({ children, isActive, onClick, target, url }: P const theme = useTheme2(); const styles = getStyles(theme, isActive); const LinkComponent = !target && url.startsWith('/') ? Link : 'a'; + // @PERCONA + const urlWithVariables = useLinkWithVariables(url); const linkContent = (
@@ -35,7 +38,7 @@ export function MegaMenuItemText({ children, isActive, onClick, target, url }: P className={cx(styles.container, { [styles.containerActive]: isActive, })} - href={url} + href={urlWithVariables} target={target} onClick={onClick} > diff --git a/public/app/percona/inventory/Inventory.service.ts b/public/app/percona/inventory/Inventory.service.ts index 2387d1c885ca..eda4869e939d 100644 --- a/public/app/percona/inventory/Inventory.service.ts +++ b/public/app/percona/inventory/Inventory.service.ts @@ -57,7 +57,7 @@ export const InventoryService = { return api.post(`/v1/management/Node/List`, body, false, token); }, removeNode(body: RemoveNodeBody, token?: CancelToken) { - return api.post(`${BASE_URL}/Nodes/Remove`, body, false, token); + return api.post(`/v1/management/Node/Unregister`, body, false, token); }, getService(serviceId: string, token?: CancelToken) { return api.post(`${BASE_URL}/Services/Get`, { service_id: serviceId }, false, token); diff --git a/public/app/percona/shared/helpers/navigation.ts b/public/app/percona/shared/helpers/navigation.ts new file mode 100644 index 000000000000..2751179b2aaa --- /dev/null +++ b/public/app/percona/shared/helpers/navigation.ts @@ -0,0 +1,21 @@ +import { getLinkSrv } from 'app/features/panel/panellinks/link_srv'; + +export const useLinkWithVariables = (url?: string) => { + if (url?.match('/d/')) { + return getLinkSrv().getLinkUrl({ + url: url, + keepTime: true, + // Check if the DB type matches the current one used + includeVars: checkDbType(url), + }); + } else { + return url ? url : '#'; + } +}; + +const checkDbType = (url: string): boolean => { + const currentDB = window.location.pathname.split('/')[3].split('-')[0]; + const urlDB = url.split('/')[3].split('-')[0]; + + return currentDB === urlDB; +};