1
0
mirror of https://github.com/Jermolene/TiddlyWiki5 synced 2024-08-23 18:16:44 +00:00

Refactor navigator attribute handling

And fix a bug whereby we weren't refreshing when some attributes changed
This commit is contained in:
Jermolene 2018-08-26 23:57:17 +01:00
parent f76e3f5d41
commit 7a50edb56d

View File

@ -60,6 +60,10 @@ NavigatorWidget.prototype.execute = function() {
// Get our parameters // Get our parameters
this.storyTitle = this.getAttribute("story"); this.storyTitle = this.getAttribute("story");
this.historyTitle = this.getAttribute("history"); this.historyTitle = this.getAttribute("history");
this.openLinkFromInsideRiver = this.getAttribute("openLinkFromInsideRiver","top");
this.openLinkFromOutsideRiver = this.getAttribute("openLinkFromOutsideRiver","top");
this.singleTiddlerMode = this.getAttribute("singleTiddlerMode","no") === "yes";
this.relinkOnRename = this.getAttribute("relinkOnRename","no").toLowerCase().trim() === "yes";
this.setVariable("tv-story-list",this.storyTitle); this.setVariable("tv-story-list",this.storyTitle);
this.setVariable("tv-history-list",this.historyTitle); this.setVariable("tv-history-list",this.historyTitle);
// Construct the child widgets // Construct the child widgets
@ -71,7 +75,7 @@ Selectively refreshes the widget if needed. Returns true if the widget or any of
*/ */
NavigatorWidget.prototype.refresh = function(changedTiddlers) { NavigatorWidget.prototype.refresh = function(changedTiddlers) {
var changedAttributes = this.computeAttributes(); var changedAttributes = this.computeAttributes();
if(changedAttributes.story || changedAttributes.history) { if(changedAttributes.story || changedAttributes.history || changedAttributes.openLinkFromInsideRiver || changedAttributes.openLinkFromOutsideRiver || changedAttributes.singleTiddlerMode || changedAttributes.relinkOnRename) {
this.refreshSelf(); this.refreshSelf();
return true; return true;
} else { } else {
@ -117,9 +121,9 @@ NavigatorWidget.prototype.replaceFirstTitleInStory = function(storyList,oldTitle
NavigatorWidget.prototype.addToStory = function(title,fromTitle) { NavigatorWidget.prototype.addToStory = function(title,fromTitle) {
this.wiki.addToStory(title,fromTitle,this.storyTitle,{ this.wiki.addToStory(title,fromTitle,this.storyTitle,{
openLinkFromInsideRiver: this.getAttribute("openLinkFromInsideRiver","top"), openLinkFromInsideRiver: this.openLinkFromInsideRiver,
openLinkFromOutsideRiver: this.getAttribute("openLinkFromOutsideRiver","top"), openLinkFromOutsideRiver: this.openLinkFromOutsideRiver,
singleTiddlerMode: this.getAttribute("singleTiddlerMode","no") === "yes", singleTiddlerMode: this.singleTiddlerMode
}); });
}; };
@ -324,8 +328,7 @@ NavigatorWidget.prototype.handleSaveTiddlerEvent = function(event) {
newTiddler = $tw.hooks.invokeHook("th-saving-tiddler",newTiddler); newTiddler = $tw.hooks.invokeHook("th-saving-tiddler",newTiddler);
this.wiki.addTiddler(newTiddler); this.wiki.addTiddler(newTiddler);
// If enabled, relink references to renamed tiddler // If enabled, relink references to renamed tiddler
var shouldRelink = this.getAttribute("relinkOnRename","no").toLowerCase().trim() === "yes"; if(isRename && this.relinkOnRename && this.wiki.tiddlerExists(draftOf)) {
if(isRename && shouldRelink && this.wiki.tiddlerExists(draftOf)) {
console.log("Relinking '" + draftOf + "' to '" + draftTitle + "'"); console.log("Relinking '" + draftOf + "' to '" + draftTitle + "'");
this.wiki.relinkTiddler(draftOf,draftTitle); this.wiki.relinkTiddler(draftOf,draftTitle);
} }