From f8f4fb5640a86dfd73d7b4778a76896fabbf9f11 Mon Sep 17 00:00:00 2001 From: Sonia Aguilar <33540275+soniaAguilarPeiron@users.noreply.github.com> Date: Tue, 2 Dec 2025 10:59:47 +0100 Subject: [PATCH] Alerting: Fix advanced filter not preserving freewords filter in the list view (#114651) fix custom advanced filter not preserving freewords filter in the list view --- .../alerting/unified/rule-list/filter/RulesFilter.v2.tsx | 4 ++-- .../features/alerting/unified/rule-list/filter/utils.ts | 7 +++++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/public/app/features/alerting/unified/rule-list/filter/RulesFilter.v2.tsx b/public/app/features/alerting/unified/rule-list/filter/RulesFilter.v2.tsx index a2a1566be29..0091cdddec9 100644 --- a/public/app/features/alerting/unified/rule-list/filter/RulesFilter.v2.tsx +++ b/public/app/features/alerting/unified/rule-list/filter/RulesFilter.v2.tsx @@ -82,7 +82,7 @@ export default function RulesFilter({ viewMode, onViewModeChange }: RulesFilterP const styles = useStyles2(getStyles); const [isPopupOpen, setIsPopupOpen] = useState(false); - const { searchQuery, updateFilters, setSearchQuery } = useRulesFilter(); + const { filterState, searchQuery, updateFilters, setSearchQuery } = useRulesFilter(); const popupRef = useRef(null); const { pluginsFilterEnabled } = usePluginsFilterStatus(); @@ -104,7 +104,7 @@ export default function RulesFilter({ viewMode, onViewModeChange }: RulesFilterP }; const handleAdvancedFilters: SubmitHandler = (values) => { - updateFilters(formAdvancedFiltersToRuleFilter(values)); + updateFilters(formAdvancedFiltersToRuleFilter(values, filterState.freeFormWords)); trackFilterButtonApplyClick(values, pluginsFilterEnabled); setIsPopupOpen(false); }; diff --git a/public/app/features/alerting/unified/rule-list/filter/utils.ts b/public/app/features/alerting/unified/rule-list/filter/utils.ts index 7d370b75bfa..b07e6748ac4 100644 --- a/public/app/features/alerting/unified/rule-list/filter/utils.ts +++ b/public/app/features/alerting/unified/rule-list/filter/utils.ts @@ -5,9 +5,12 @@ import { RulesFilter } from '../../search/rulesSearchParser'; import { AdvancedFilters } from './types'; -export function formAdvancedFiltersToRuleFilter(values: AdvancedFilters): RulesFilter { +export function formAdvancedFiltersToRuleFilter( + values: AdvancedFilters, + existingFreeFormWords: string[] = [] +): RulesFilter { return { - freeFormWords: [], + freeFormWords: existingFreeFormWords, ...values, namespace: values.namespace || undefined, groupName: values.groupName || undefined,