From eba21f3145cf4399f7861fbc1f1c3ed0cf482466 Mon Sep 17 00:00:00 2001 From: Peter Holmberg Date: Mon, 23 Aug 2021 14:57:30 +0200 Subject: [PATCH] Alerting: Append appSubUrl to links if present (#38069) * append appSubUrl if present * remove null check --- .../rule-viewer/RuleViewerVisualization.tsx | 4 ++-- .../components/rules/RuleDetailsActionButtons.tsx | 11 +++++++---- public/app/features/alerting/unified/utils/misc.ts | 5 +++-- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/public/app/features/alerting/unified/components/rule-viewer/RuleViewerVisualization.tsx b/public/app/features/alerting/unified/components/rule-viewer/RuleViewerVisualization.tsx index 2db7e3c9813..c2abee48c1a 100644 --- a/public/app/features/alerting/unified/components/rule-viewer/RuleViewerVisualization.tsx +++ b/public/app/features/alerting/unified/components/rule-viewer/RuleViewerVisualization.tsx @@ -1,7 +1,7 @@ import React, { useState } from 'react'; import { css } from '@emotion/css'; import { DataSourceInstanceSettings, GrafanaTheme2, PanelData, urlUtil } from '@grafana/data'; -import { getDataSourceSrv, PanelRenderer } from '@grafana/runtime'; +import { config, getDataSourceSrv, PanelRenderer } from '@grafana/runtime'; import { Alert, CodeEditor, LinkButton, useStyles2, useTheme2 } from '@grafana/ui'; import { isExpressionQuery } from 'app/features/expressions/guards'; import { PanelOptions } from 'app/plugins/panel/table/models.gen'; @@ -101,7 +101,7 @@ function createExploreLink(settings: DataSourceInstanceSettings, query: AlertQue const { refId, ...rest } = query.model; const queryParams = { ...rest, datasource: name }; - return urlUtil.renderUrl('/explore', { + return urlUtil.renderUrl(`${config.appSubUrl}/explore`, { left: JSON.stringify(['now-1h', 'now', name, queryParams]), }); } diff --git a/public/app/features/alerting/unified/components/rules/RuleDetailsActionButtons.tsx b/public/app/features/alerting/unified/components/rules/RuleDetailsActionButtons.tsx index b75e7f86587..a63ff28d7a4 100644 --- a/public/app/features/alerting/unified/components/rules/RuleDetailsActionButtons.tsx +++ b/public/app/features/alerting/unified/components/rules/RuleDetailsActionButtons.tsx @@ -51,7 +51,7 @@ export const RuleDetailsActionButtons: FC = ({ rule, rulesSource }) => { const buildShareUrl = () => { if (isCloudRulesSource(rulesSource)) { const ruleUrl = `${encodeURIComponent(rulesSource.name)}/${encodeURIComponent(rule.name)}`; - return `${config.appUrl}${config.appSubUrl ? '/' + config.appSubUrl : ''}alerting/${ruleUrl}/find`; + return `${config.appUrl}${config.appSubUrl}/alerting/${ruleUrl}/find`; } return window.location.href.split('?')[0]; @@ -142,9 +142,12 @@ export const RuleDetailsActionButtons: FC = ({ rule, rulesSource }) => { const sourceName = getRulesSourceName(rulesSource); const identifier = ruleId.fromRulerRule(sourceName, namespace.name, group.name, rulerRule); - const editURL = urlUtil.renderUrl(`/alerting/${encodeURIComponent(ruleId.stringifyIdentifier(identifier))}/edit`, { - returnTo, - }); + const editURL = urlUtil.renderUrl( + `${config.appSubUrl}/alerting/${encodeURIComponent(ruleId.stringifyIdentifier(identifier))}/edit`, + { + returnTo, + } + ); if (isViewMode) { rightButtons.push( diff --git a/public/app/features/alerting/unified/utils/misc.ts b/public/app/features/alerting/unified/utils/misc.ts index f7dfc4e310c..e8dd42c4b00 100644 --- a/public/app/features/alerting/unified/utils/misc.ts +++ b/public/app/features/alerting/unified/utils/misc.ts @@ -1,4 +1,5 @@ import { urlUtil, UrlQueryMap } from '@grafana/data'; +import { config } from '@grafana/runtime'; import { CombinedRule, FilterState, RulesSource } from 'app/types/unified-alerting'; import { ALERTMANAGER_NAME_QUERY_KEY } from './constants'; import { getRulesSourceName } from './datasource'; @@ -10,11 +11,11 @@ export function createViewLink(ruleSource: RulesSource, rule: CombinedRule, retu const paramId = encodeURIComponent(ruleId.stringifyIdentifier(identifier)); const paramSource = encodeURIComponent(sourceName); - return urlUtil.renderUrl(`/alerting/${paramSource}/${paramId}/view`, { returnTo }); + return urlUtil.renderUrl(`${config.appSubUrl}/alerting/${paramSource}/${paramId}/view`, { returnTo }); } export function createExploreLink(dataSourceName: string, query: string) { - return urlUtil.renderUrl('explore', { + return urlUtil.renderUrl(`${config.appSubUrl}/explore`, { left: JSON.stringify([ 'now-1h', 'now',