mirror of
https://github.com/Jermolene/TiddlyWiki5
synced 2025-08-06 13:56:45 +00:00
Refactor navigator widget to use story utility to manipulate the storylist as well as the historylist
This commit is contained in:
parent
3bfa9c6f10
commit
0f7ce7b67f
@ -116,51 +116,7 @@ NavigatorWidget.prototype.replaceFirstTitleInStory = function(storyList,oldTitle
|
|||||||
};
|
};
|
||||||
|
|
||||||
NavigatorWidget.prototype.addToStory = function(title,fromTitle) {
|
NavigatorWidget.prototype.addToStory = function(title,fromTitle) {
|
||||||
var storyList = this.getStoryList();
|
this.wiki.addToStory(title,fromTitle,this.storyTitle,{openLinkFromInsideRiver: this.getAttribute("openLinkFromInsideRiver","top"),openLinkFromOutsideRiver: this.getAttribute("openLinkFromOutsideRiver","top")});
|
||||||
// Quit if we cannot get hold of the story list
|
|
||||||
if(!storyList) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
// See if the tiddler is already there
|
|
||||||
var slot = storyList.indexOf(title);
|
|
||||||
// Quit if it already exists in the story river
|
|
||||||
if(slot >= 0) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
// First we try to find the position of the story element we navigated from
|
|
||||||
var fromIndex = storyList.indexOf(fromTitle);
|
|
||||||
if(fromIndex >= 0) {
|
|
||||||
// The tiddler is added from inside the river
|
|
||||||
// Determine where to insert the tiddler; Fallback is "below"
|
|
||||||
switch(this.getAttribute("openLinkFromInsideRiver","below")) {
|
|
||||||
case "top":
|
|
||||||
slot = 0;
|
|
||||||
break;
|
|
||||||
case "bottom":
|
|
||||||
slot = storyList.length;
|
|
||||||
break;
|
|
||||||
case "above":
|
|
||||||
slot = fromIndex;
|
|
||||||
break;
|
|
||||||
case "below": // Intentional fall-through
|
|
||||||
default:
|
|
||||||
slot = fromIndex + 1;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
// The tiddler is opened from outside the river. Determine where to insert the tiddler; default is "top"
|
|
||||||
if(this.getAttribute("openLinkFromOutsideRiver","top") === "bottom") {
|
|
||||||
// Insert at bottom
|
|
||||||
slot = storyList.length;
|
|
||||||
} else {
|
|
||||||
// Insert at top
|
|
||||||
slot = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Add the tiddler
|
|
||||||
storyList.splice(slot,0,title);
|
|
||||||
// Save the story
|
|
||||||
this.saveStoryList(storyList);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -1277,6 +1277,18 @@ exports.addToHistory = function(title,fromPageRect,historyTitle) {
|
|||||||
story.addToHistory(title,fromPageRect);
|
story.addToHistory(title,fromPageRect);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
Add a new tiddler to the story river
|
||||||
|
title: a title string or an array of title strings
|
||||||
|
fromTitle: the title of the tiddler from which the navigation originated
|
||||||
|
storyTitle: title of story tiddler (defaults to $:/StoryList)
|
||||||
|
options: see story.js
|
||||||
|
*/
|
||||||
|
exports.addToStory = function(title,fromTitle,storyTitle,options) {
|
||||||
|
var story = new $tw.Story({wiki: this, storyTitle: storyTitle});
|
||||||
|
story.addToStory(title,fromTitle,options);
|
||||||
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Invoke the available upgrader modules
|
Invoke the available upgrader modules
|
||||||
titles: array of tiddler titles to be processed
|
titles: array of tiddler titles to be processed
|
||||||
|
Loading…
x
Reference in New Issue
Block a user