From 25b9a98a4cfe1a7d1c684fffe06b5764754e7931 Mon Sep 17 00:00:00 2001 From: "Francois @fanf42 Armand" Date: Fri, 27 Aug 2021 15:57:27 +0200 Subject: [PATCH] Fixes #19873: Saving a rule with deleted directives/groups does not correct it --- .../main/elm/rules/sources/ViewTabContent.elm | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/webapp/sources/rudder/rudder-web/src/main/elm/rules/sources/ViewTabContent.elm b/webapp/sources/rudder/rudder-web/src/main/elm/rules/sources/ViewTabContent.elm index d2bdbf13745..0dbce88f049 100644 --- a/webapp/sources/rudder/rudder-web/src/main/elm/rules/sources/ViewTabContent.elm +++ b/webapp/sources/rudder/rudder-web/src/main/elm/rules/sources/ViewTabContent.elm @@ -151,9 +151,22 @@ tabContent model details isNewRule= buildListRow ids = let --Get more information about directives, to correctly sort them by displayName - directives = model.directives - |> List.filter (\d -> List.member d.id ids) - |> List.sortWith (compareOn .displayName) + directives = + let + knownDirectives = model.directives + |> List.filter (\d -> List.member d.id ids) + |> List.sortWith (compareOn .displayName) + in + -- add missing directives + let + knonwIds = List.map .id knownDirectives + in + List.append + knownDirectives + (ids + |> List.filter (\id -> not (List.member id knonwIds) ) + |> List.map (\id -> (Directive id ("Missing directive with ID "++id.value) "" "" "" False False "")) + ) rowDirective : Directive -> Html Msg rowDirective directive =