From 1dfa6f369bddd8dedba2e47dc4707eba28ccf4e1 Mon Sep 17 00:00:00 2001 From: Jermolene Date: Sun, 9 Nov 2014 21:47:48 +0000 Subject: [PATCH] Smarter cancel edit behaviour MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit If we cancel editing a tiddler that doesn’t exist, then we no longer show the resulting missing tiddler. --- core/modules/widgets/navigator.js | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/core/modules/widgets/navigator.js b/core/modules/widgets/navigator.js index b89e5f99f..8c75bff38 100755 --- a/core/modules/widgets/navigator.js +++ b/core/modules/widgets/navigator.js @@ -338,11 +338,12 @@ NavigatorWidget.prototype.handleCancelTiddlerEvent = function(event) { var draftTitle = event.param || event.tiddlerTitle, draftTiddler = this.wiki.getTiddler(draftTitle), originalTitle = draftTiddler.fields["draft.of"], + originalTiddler = this.wiki.getTiddler(originalTitle), storyList = this.getStoryList(); if(draftTiddler && originalTitle) { // Ask for confirmation if the tiddler text has changed var isConfirmed = true; - if(this.wiki.getTiddlerText(draftTitle) !== this.wiki.getTiddlerText(originalTitle)) { + if(this.wiki.isDraftModified(draftTitle)) { isConfirmed = confirm($tw.language.getString( "ConfirmCancelTiddler", {variables: @@ -353,9 +354,13 @@ NavigatorWidget.prototype.handleCancelTiddlerEvent = function(event) { // Remove the draft tiddler if(isConfirmed) { this.wiki.deleteTiddler(draftTitle); - this.replaceFirstTitleInStory(storyList,draftTitle,originalTitle); - this.addToHistory(originalTitle,event.navigateFromClientRect); - this.saveStoryList(storyList); + if(originalTiddler) { + this.replaceFirstTitleInStory(storyList,draftTitle,originalTitle); + this.addToHistory(originalTitle,event.navigateFromClientRect); + } else { + this.removeTitleFromStory(storyList,draftTitle); + } + this.saveStoryList(storyList); } } return false;