From 2cc51f5e7a3091908a99c8aae3652fc440a702ed Mon Sep 17 00:00:00 2001
From: Vasileios Pasialiokis <whiterocket@outlook.com>
Date: Wed, 27 Jun 2018 15:56:43 +0300
Subject: [PATCH] run clear summary cache when applying rules

---
 src/js/rulesAssistantOptions.tw            |  1 +
 src/js/slaveSummaryWidgets.tw              | 10 ++++++++++
 src/pregmod/widgets/slaveSummaryWidgets.tw |  8 +-------
 3 files changed, 12 insertions(+), 7 deletions(-)
 create mode 100644 src/js/slaveSummaryWidgets.tw

diff --git a/src/js/rulesAssistantOptions.tw b/src/js/rulesAssistantOptions.tw
index a2a355f5a20..7f8990ee420 100644
--- a/src/js/rulesAssistantOptions.tw
+++ b/src/js/rulesAssistantOptions.tw
@@ -468,6 +468,7 @@ window.rulesAssistantOptions = (function() {
 	class ApplicationLog extends Element {
 		render() {
 			const elem = document.createElement("div");
+			clearSummaryCache();
 			elem.innerHTML = V.slaves.map(slave => DefaultRules(slave)).join("");
 			return elem;
 		}
diff --git a/src/js/slaveSummaryWidgets.tw b/src/js/slaveSummaryWidgets.tw
new file mode 100644
index 00000000000..d203af4331c
--- /dev/null
+++ b/src/js/slaveSummaryWidgets.tw
@@ -0,0 +1,10 @@
+:: Slave Summary Widgets JS [script]
+
+window.clearSummaryCache = function clearSummaryCache(slave) {
+	if (!slave)
+		setup.summaryCache = {};
+	else if (slave instanceof Object && slave.ID !== Infinity && slave.ID !== -Infinity)
+		setup.summaryCache[slave.ID] = undefined;
+	else
+		setup.summaryCache[slave] = undefined;
+};
diff --git a/src/pregmod/widgets/slaveSummaryWidgets.tw b/src/pregmod/widgets/slaveSummaryWidgets.tw
index 66f01f09b50..3a0877f83de 100644
--- a/src/pregmod/widgets/slaveSummaryWidgets.tw
+++ b/src/pregmod/widgets/slaveSummaryWidgets.tw
@@ -25,13 +25,7 @@
 <</widget>>
 
 <<widget "ClearSummaryCache">>
-<<if !$args[0]>>
-	<<set setup.summaryCache = {}>>
-<<elseif _.isObject($args[0]) && _.isFinite($args[0].ID)>>
-	<<set setup.summaryCache[$args[0].ID] = undefined>>
-<<else>>
-	<<set setup.summaryCache[$args[0]] = undefined>>
-<</if>>
+	<<run clearSummaryCache($args[0])>>
 <</widget>>
 
 <<widget "SlaveSummaryUncached">>
-- 
GitLab