diff --git a/core/modules/utils/dom/modal.js b/core/modules/utils/dom/modal.js index c7eb0da0e..9b32385c4 100644 --- a/core/modules/utils/dom/modal.js +++ b/core/modules/utils/dom/modal.js @@ -38,6 +38,10 @@ Modal.prototype.display = function(title,options) { modalFooterButtons = document.createElement("span"), tiddler = this.wiki.getTiddler(title), d = $tw.config.preferences.animationDuration + "ms"; + // Don't do anything if the tiddler doesn't exist + if(!tiddler) { + return; + } // Add classes $tw.utils.addClass(modalBackdrop,"modal-backdrop"); $tw.utils.addClass(modalWrapper,"modal"); @@ -61,18 +65,20 @@ Modal.prototype.display = function(title,options) { } else { titleText = title; } - var headerRenderer = this.wiki.parseText("text/vnd.tiddlywiki-run",titleText); - headerRenderer.execute([],title); - headerRenderer.renderInDom(headerTitle); + var headerParser = this.wiki.parseText("text/vnd.tiddlywiki-run",titleText), + headerRenderTree = new $tw.WikiRenderTree(headerParser,{wiki: $tw.wiki}); + headerRenderTree.execute({tiddlerTitle: title}); + headerRenderTree.renderInDom(headerTitle); this.wiki.addEventListener("",function(changes) { - headerRenderer.refreshInDom(changes); + headerRenderTree.refreshInDom(changes); }); // Render the body of the message - var bodyRenderer = this.wiki.parseTiddler(title); - bodyRenderer.execute([],title); - bodyRenderer.renderInDom(modalBody); + var bodyParser = this.wiki.parseTiddler(title), + bodyRenderTree = new $tw.WikiRenderTree(bodyParser,{wiki: $tw.wiki}); + bodyRenderTree.execute({tiddlerTitle: title}); + bodyRenderTree.renderInDom(modalBody); this.wiki.addEventListener("",function(changes) { - bodyRenderer.refreshInDom(changes); + bodyRenderTree.refreshInDom(changes); }); // Setup the link if present if(options.downloadLink) { @@ -93,13 +99,14 @@ Modal.prototype.display = function(title,options) { if(tiddler && tiddler.fields && tiddler.fields.footer) { footerText = tiddler.fields.footer; } else { - footerText = "<