From fb641d340c3b1ebdb3791a61023d94c75deb3e41 Mon Sep 17 00:00:00 2001 From: Jeremy Ruston Date: Sun, 21 Jul 2024 16:50:55 +0100 Subject: [PATCH] Fix an annoying little bug that prevents importvariables being used inside action-createtiddler in action strings The root cause was that action-createtiddler widget was calling refreshChildren() with no argument. A secondary factor was that importvariables widget was not defensive in handling a missing changedTiddlers parameter --- core/modules/widgets/action-createtiddler.js | 2 +- core/modules/widgets/importvariables.js | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/core/modules/widgets/action-createtiddler.js b/core/modules/widgets/action-createtiddler.js index b49eaad20..4b883d0c3 100644 --- a/core/modules/widgets/action-createtiddler.js +++ b/core/modules/widgets/action-createtiddler.js @@ -104,7 +104,7 @@ CreateTiddlerWidget.prototype.invokeAction = function(triggeringWidget,event) { } this.setVariable("createTiddler-title",title); this.setVariable("createTiddler-draftTitle",draftTitle); - this.refreshChildren(); + this.refreshChildren([]); return true; // Action was invoked }; diff --git a/core/modules/widgets/importvariables.js b/core/modules/widgets/importvariables.js index 3e1ac3fc6..e394853a8 100644 --- a/core/modules/widgets/importvariables.js +++ b/core/modules/widgets/importvariables.js @@ -107,6 +107,7 @@ ImportVariablesWidget.prototype.execute = function(tiddlerList) { Selectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering */ ImportVariablesWidget.prototype.refresh = function(changedTiddlers) { + changedTiddlers = changedTiddlers || {}; // Recompute our attributes and the filter list var changedAttributes = this.computeAttributes(), tiddlerList = this.wiki.filterTiddlers(this.getAttribute("filter"),this);