From dc7e967cd4b20f5e685ac2cccaa573f377bfe76f Mon Sep 17 00:00:00 2001 From: Gilles De Mey Date: Fri, 23 Jun 2023 14:29:47 +0200 Subject: [PATCH] Alerting: Fixes clone url for instances hosted on sub path (#70543) --- .../unified/components/rules/CloneRuleButton.tsx | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/public/app/features/alerting/unified/components/rules/CloneRuleButton.tsx b/public/app/features/alerting/unified/components/rules/CloneRuleButton.tsx index 18995c4aa20..1175fa966af 100644 --- a/public/app/features/alerting/unified/components/rules/CloneRuleButton.tsx +++ b/public/app/features/alerting/unified/components/rules/CloneRuleButton.tsx @@ -7,7 +7,6 @@ import { ConfirmModal, LinkButton, useStyles2 } from '@grafana/ui'; import { RuleIdentifier } from 'app/types/unified-alerting'; import * as ruleId from '../../utils/rule-id'; -import { createUrl } from '../../utils/url'; interface CloneRuleButtonProps { ruleIdentifier: RuleIdentifier; @@ -20,10 +19,10 @@ export const CloneRuleButton = React.forwardRef { // For provisioned rules an additional confirmation step is required // Users have to be aware that the cloned rule will NOT be marked as provisioned - const [provRuleCloneUrl, setProvRuleCloneUrl] = useState(undefined); + const [showModal, setShowModal] = useState(false); const styles = useStyles2(getStyles); - const cloneUrl = createUrl('/alerting/new', { copyFrom: ruleId.stringifyIdentifier(ruleIdentifier) }); + const cloneUrl = '/alerting/new?copyFrom=' + ruleId.stringifyIdentifier(ruleIdentifier); return ( <> @@ -35,14 +34,14 @@ export const CloneRuleButton = React.forwardRef setProvRuleCloneUrl(cloneUrl) : undefined} + onClick={isProvisioned ? () => setShowModal(true) : undefined} ref={ref} > {text} @@ -57,11 +56,9 @@ export const CloneRuleButton = React.forwardRef { - if (provRuleCloneUrl) { - locationService.push(provRuleCloneUrl); - } + locationService.push(cloneUrl); }} - onDismiss={() => setProvRuleCloneUrl(undefined)} + onDismiss={() => setShowModal(false)} /> );