From 5755cd5d3f4f853520da6f39dbcd98378eebdfb4 Mon Sep 17 00:00:00 2001 From: Jeremy Ruston Date: Thu, 3 Jan 2013 17:06:14 +0000 Subject: [PATCH] Make modal wizards work again --- core/modules/utils/dom/modal.js | 33 +++++++++++-------- editions/tw5.com/tiddlers/Introduction.tid | 4 +-- .../tw5.com/tiddlers/samples/SampleWizard.tid | 6 ++-- 3 files changed, 25 insertions(+), 18 deletions(-) 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 = "<