diff --git a/public/app/features/alerting/unified/Analytics.ts b/public/app/features/alerting/unified/Analytics.ts index fe7b83d2c145..a2564f5fb272 100644 --- a/public/app/features/alerting/unified/Analytics.ts +++ b/public/app/features/alerting/unified/Analytics.ts @@ -12,6 +12,7 @@ export const LogMessages = { leavingRuleGroupEdit: 'leaving rule group edit without saving', alertRuleFromPanel: 'creating alert rule from panel', alertRuleFromScratch: 'creating alert rule from scratch', + recordingRuleFromScratch: 'creating recording rule from scratch', clickingAlertStateFilters: 'clicking alert state filters', cancelSavingAlertRule: 'user canceled alert rule creation', successSavingAlertRule: 'alert rule saved successfully', diff --git a/public/app/features/alerting/unified/components/rules/NoRulesCTA.tsx b/public/app/features/alerting/unified/components/rules/NoRulesCTA.tsx index fc0ee7d7d223..027a7a19029d 100644 --- a/public/app/features/alerting/unified/components/rules/NoRulesCTA.tsx +++ b/public/app/features/alerting/unified/components/rules/NoRulesCTA.tsx @@ -1,7 +1,10 @@ +import { css } from '@emotion/css'; import React from 'react'; +import { GrafanaTheme2 } from '@grafana/data/src/themes'; +import { Stack } from '@grafana/experimental'; import { logInfo } from '@grafana/runtime'; -import { CallToActionCard } from '@grafana/ui'; +import { CallToActionCard, useStyles2 } from '@grafana/ui'; import EmptyListCTA from 'app/core/components/EmptyListCTA/EmptyListCTA'; import { LogMessages } from '../../Analytics'; @@ -9,21 +12,48 @@ import { useRulesAccess } from '../../utils/accessControlHooks'; export const NoRulesSplash = () => { const { canCreateGrafanaRules, canCreateCloudRules } = useRulesAccess(); - + const styles = useStyles2(getStyles); if (canCreateGrafanaRules || canCreateCloudRules) { return ( - logInfo(LogMessages.alertRuleFromScratch)} - /> +
+

{"You haven't created any alert rules yet"}

+ +
+ logInfo(LogMessages.alertRuleFromScratch)} + /> +
+ +
+ logInfo(LogMessages.recordingRuleFromScratch)} + /> +
+
+
); } return } />; }; + +const getStyles = (theme: GrafanaTheme2) => ({ + newRuleCard: css` + width: calc(50% - ${theme.spacing(1)}); + + > div { + height: 100%; + } + `, +});