From 84d27c5189b02bfba0d4498861a54330fd45547c Mon Sep 17 00:00:00 2001 From: Maxim Palenov Date: Fri, 5 May 2023 18:14:41 +0200 Subject: [PATCH] [Security Solution] Fix rule snooze description on the rule editing page (#155850) **Addresses:** https://github.com/elastic/kibana/issues/147737 **Relates to:** https://github.com/elastic/kibana/pull/155612 ## Summary After merging https://github.com/elastic/kibana/pull/155612 back there is one issue is left unresolved described in this [comment](https://github.com/elastic/kibana/pull/155612#discussion_r1175545697): > Looks like we show the `Actions will not be preformed until it is unsnoozed` message unconditionally, i.e. regardless of whether the rule is snoozed or not. Since it's in bold it feels like a warning in the case where it doesn't really matter: > Can we hide it when the rule is not snoozed? If it's not trivial, can we make it look less dangerous by making the font regular and playing with the copy a little bit? E.g. `If snoozed actions will not be triggered`. This PR resolves rule snooze description text issue. As snooze settings are resolved outside the security solution plugin having any logic to conditionally display a message will increase the complexity. This way the message was changes to avoid any text to appear conditionally. *Before:* Screenshot 2023-04-24 at 18 36 31 *After:* ![image](https://user-images.githubusercontent.com/3775283/236254424-533a6502-49ba-444e-87e5-9cda7e84c315.png) ### Checklist - [x] Any text added follows [EUI's writing guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses sentence case text and includes [i18n support](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md) (cherry picked from commit 6714d926ee041d61c627037189263905918303b3) --- packages/kbn-doc-links/src/get_doc_links.ts | 1 + packages/kbn-doc-links/src/types.ts | 1 + .../step_rule_actions/rule_snooze_section.tsx | 31 ++++--------- .../rules/step_rule_actions/translations.tsx | 43 ++++++++++++++----- 4 files changed, 44 insertions(+), 32 deletions(-) diff --git a/packages/kbn-doc-links/src/get_doc_links.ts b/packages/kbn-doc-links/src/get_doc_links.ts index 89b3610e622b9..e5930aeaef643 100644 --- a/packages/kbn-doc-links/src/get_doc_links.ts +++ b/packages/kbn-doc-links/src/get_doc_links.ts @@ -399,6 +399,7 @@ export const getDocLinks = ({ kibanaBranch }: GetDocLinkOptions): DocLinks => { value_lists: `${SECURITY_SOLUTION_DOCS}value-lists-exceptions.html`, }, privileges: `${SECURITY_SOLUTION_DOCS}endpoint-management-req.html`, + manageDetectionRules: `${SECURITY_SOLUTION_DOCS}rules-ui-management.html`, }, query: { eql: `${ELASTICSEARCH_DOCS}eql.html`, diff --git a/packages/kbn-doc-links/src/types.ts b/packages/kbn-doc-links/src/types.ts index 5e2e8e7bf1304..38f0829ac3516 100644 --- a/packages/kbn-doc-links/src/types.ts +++ b/packages/kbn-doc-links/src/types.ts @@ -302,6 +302,7 @@ export interface DocLinks { value_lists: string; }; readonly privileges: string; + readonly manageDetectionRules: string; }; readonly query: { readonly eql: string; diff --git a/x-pack/plugins/security_solution/public/detections/components/rules/step_rule_actions/rule_snooze_section.tsx b/x-pack/plugins/security_solution/public/detections/components/rules/step_rule_actions/rule_snooze_section.tsx index d9586f80f3e93..fb0d9e922822b 100644 --- a/x-pack/plugins/security_solution/public/detections/components/rules/step_rule_actions/rule_snooze_section.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/rules/step_rule_actions/rule_snooze_section.tsx @@ -6,8 +6,7 @@ */ import React from 'react'; -import { css } from '@emotion/react'; -import { EuiFlexGroup, EuiFlexItem, EuiText, useEuiTheme } from '@elastic/eui'; +import { EuiFlexGroup, EuiFlexItem, EuiText } from '@elastic/eui'; import type { RuleObjectId } from '../../../../../common/detection_engine/rule_schema'; import { RuleSnoozeBadge } from '../../../../detection_engine/rule_management/components/rule_snooze_badge'; import * as i18n from './translations'; @@ -17,26 +16,14 @@ interface RuleSnoozeSectionProps { } export function RuleSnoozeSection({ ruleId }: RuleSnoozeSectionProps): JSX.Element { - const { euiTheme } = useEuiTheme(); - return ( -
- {i18n.RULE_SNOOZE_DESCRIPTION} - - - - - - - {i18n.SNOOZED_ACTIONS_WARNING} - - - -
+ + + {i18n.RULE_SNOOZE_DESCRIPTION} + + + + + ); } diff --git a/x-pack/plugins/security_solution/public/detections/components/rules/step_rule_actions/translations.tsx b/x-pack/plugins/security_solution/public/detections/components/rules/step_rule_actions/translations.tsx index 938d8a8a6411f..f6f5e93da7713 100644 --- a/x-pack/plugins/security_solution/public/detections/components/rules/step_rule_actions/translations.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/rules/step_rule_actions/translations.tsx @@ -5,7 +5,11 @@ * 2.0. */ +import React from 'react'; import { i18n } from '@kbn/i18n'; +import { FormattedMessage } from '@kbn/i18n-react'; +import { EuiLink } from '@elastic/eui'; +import { useKibana } from '../../../../common/lib/kibana'; export const COMPLETE_WITHOUT_ENABLING = i18n.translate( 'xpack.securitySolution.detectionEngine.createRule.stepScheduleRule.completeWithoutEnablingTitle', @@ -29,17 +33,36 @@ export const NO_ACTIONS_READ_PERMISSIONS = i18n.translate( } ); -export const RULE_SNOOZE_DESCRIPTION = i18n.translate( - 'xpack.securitySolution.detectionEngine.createRule.stepRuleActions.snoozeDescription', +const RULE_SNOOZE_DOCS_LINK_TEXT = i18n.translate( + 'xpack.securitySolution.detectionEngine.createRule.stepRuleActions.docsLinkText', { - defaultMessage: - 'Select when automated actions should be performed if a rule evaluates as true.', + defaultMessage: 'Learn more', } ); -export const SNOOZED_ACTIONS_WARNING = i18n.translate( - 'xpack.securitySolution.detectionEngine.createRule.stepRuleActions.snoozedActionsWarning', - { - defaultMessage: 'Actions will not be performed until it is unsnoozed.', - } -); +function RuleSnoozeDescription(): JSX.Element { + const { + docLinks: { + links: { + securitySolution: { manageDetectionRules }, + }, + }, + } = useKibana().services; + const manageDetectionRulesSnoozeSection = `${manageDetectionRules}#edit-rules-settings`; + + return ( + + {RULE_SNOOZE_DOCS_LINK_TEXT} + + ), + }} + /> + ); +} + +export const RULE_SNOOZE_DESCRIPTION = ;