mirror of
https://github.com/Jermolene/TiddlyWiki5
synced 2024-11-18 07:44:51 +00:00
a1c8ac624f
There are still some whitespace and attribute ordering issues, but the result runs correctly.
179 lines
5.3 KiB
JavaScript
Executable File
179 lines
5.3 KiB
JavaScript
Executable File
//--
|
|
//-- Menu and toolbar commands
|
|
//--
|
|
|
|
config.commands.closeTiddler.handler = function(event,src,title)
|
|
{
|
|
if(story.isDirty(title) && !readOnly) {
|
|
if(!confirm(config.commands.cancelTiddler.warning.format([title])))
|
|
return false;
|
|
}
|
|
story.setDirty(title,false);
|
|
story.closeTiddler(title,true);
|
|
return false;
|
|
};
|
|
|
|
config.commands.closeOthers.handler = function(event,src,title)
|
|
{
|
|
story.closeAllTiddlers(title);
|
|
return false;
|
|
};
|
|
|
|
config.commands.editTiddler.handler = function(event,src,title)
|
|
{
|
|
clearMessage();
|
|
var tiddlerElem = story.getTiddler(title);
|
|
var fields = tiddlerElem.getAttribute("tiddlyFields");
|
|
story.displayTiddler(null,title,DEFAULT_EDIT_TEMPLATE,false,null,fields);
|
|
var e = story.getTiddlerField(title,config.options.txtEditorFocus||"text");
|
|
if(e) {
|
|
setCaretPosition(e,0);
|
|
}
|
|
return false;
|
|
};
|
|
|
|
config.commands.saveTiddler.handler = function(event,src,title)
|
|
{
|
|
var newTitle = story.saveTiddler(title,event.shiftKey);
|
|
if(newTitle)
|
|
story.displayTiddler(null,newTitle);
|
|
return false;
|
|
};
|
|
|
|
config.commands.cancelTiddler.handler = function(event,src,title)
|
|
{
|
|
if(story.hasChanges(title) && !readOnly) {
|
|
if(!confirm(this.warning.format([title])))
|
|
return false;
|
|
}
|
|
story.setDirty(title,false);
|
|
story.displayTiddler(null,title);
|
|
return false;
|
|
};
|
|
|
|
config.commands.deleteTiddler.handler = function(event,src,title)
|
|
{
|
|
var deleteIt = true;
|
|
if(config.options.chkConfirmDelete)
|
|
deleteIt = confirm(this.warning.format([title]));
|
|
if(deleteIt) {
|
|
store.removeTiddler(title);
|
|
story.closeTiddler(title,true);
|
|
autoSaveChanges();
|
|
}
|
|
return false;
|
|
};
|
|
|
|
config.commands.permalink.handler = function(event,src,title)
|
|
{
|
|
var t = encodeURIComponent(String.encodeTiddlyLink(title));
|
|
if(window.location.hash != t)
|
|
window.location.hash = t;
|
|
return false;
|
|
};
|
|
|
|
config.commands.references.handlePopup = function(popup,title)
|
|
{
|
|
var references = store.getReferringTiddlers(title);
|
|
var c = false;
|
|
var r;
|
|
for(r=0; r<references.length; r++) {
|
|
if(references[r].title != title && !references[r].isTagged("excludeLists")) {
|
|
createTiddlyLink(createTiddlyElement(popup,"li"),references[r].title,true);
|
|
c = true;
|
|
}
|
|
}
|
|
if(!c)
|
|
createTiddlyElement(popup,"li",null,"disabled",this.popupNone);
|
|
};
|
|
|
|
config.commands.jump.handlePopup = function(popup,title)
|
|
{
|
|
story.forEachTiddler(function(title,element) {
|
|
createTiddlyLink(createTiddlyElement(popup,"li"),title,true,null,false,null,true);
|
|
});
|
|
};
|
|
|
|
config.commands.syncing.handlePopup = function(popup,title)
|
|
{
|
|
var me = config.commands.syncing;
|
|
var tiddler = store.fetchTiddler(title);
|
|
if(!tiddler)
|
|
return;
|
|
var serverType = tiddler.getServerType();
|
|
var serverHost = tiddler.fields["server.host"];
|
|
var serverWorkspace = tiddler.fields["server.workspace"];
|
|
if(!serverWorkspace)
|
|
serverWorkspace = "";
|
|
if(serverType) {
|
|
var e = createTiddlyElement(popup,"li",null,"popupMessage");
|
|
e.innerHTML = me.currentlySyncing.format([serverType,serverHost,serverWorkspace]);
|
|
} else {
|
|
createTiddlyElement(popup,"li",null,"popupMessage",me.notCurrentlySyncing);
|
|
}
|
|
if(serverType) {
|
|
createTiddlyElement(createTiddlyElement(popup,"li",null,"listBreak"),"div");
|
|
var btn = createTiddlyButton(createTiddlyElement(popup,"li"),this.captionUnSync,null,me.onChooseServer);
|
|
btn.setAttribute("tiddler",title);
|
|
btn.setAttribute("server.type","");
|
|
}
|
|
createTiddlyElement(createTiddlyElement(popup,"li",null,"listBreak"),"div");
|
|
createTiddlyElement(popup,"li",null,"popupMessage",me.chooseServer);
|
|
var feeds = store.getTaggedTiddlers("systemServer","title");
|
|
var t;
|
|
for(t=0; t<feeds.length; t++) {
|
|
var f = feeds[t];
|
|
var feedServerType = store.getTiddlerSlice(f.title,"Type");
|
|
if(!feedServerType)
|
|
feedServerType = "file";
|
|
var feedServerHost = store.getTiddlerSlice(f.title,"URL");
|
|
if(!feedServerHost)
|
|
feedServerHost = "";
|
|
var feedServerWorkspace = store.getTiddlerSlice(f.title,"Workspace");
|
|
if(!feedServerWorkspace)
|
|
feedServerWorkspace = "";
|
|
var caption = f.title;
|
|
if(serverType == feedServerType && serverHost == feedServerHost && serverWorkspace == feedServerWorkspace) {
|
|
caption = me.currServerMarker + caption;
|
|
} else {
|
|
caption = me.notCurrServerMarker + caption;
|
|
}
|
|
btn = createTiddlyButton(createTiddlyElement(popup,"li"),caption,null,me.onChooseServer);
|
|
btn.setAttribute("tiddler",title);
|
|
btn.setAttribute("server.type",feedServerType);
|
|
btn.setAttribute("server.host",feedServerHost);
|
|
btn.setAttribute("server.workspace",feedServerWorkspace);
|
|
}
|
|
};
|
|
|
|
config.commands.syncing.onChooseServer = function(e)
|
|
{
|
|
var tiddler = this.getAttribute("tiddler");
|
|
var serverType = this.getAttribute("server.type");
|
|
if(serverType) {
|
|
store.addTiddlerFields(tiddler,{
|
|
"server.type": serverType,
|
|
"server.host": this.getAttribute("server.host"),
|
|
"server.workspace": this.getAttribute("server.workspace")
|
|
});
|
|
} else {
|
|
store.setValue(tiddler,"server",null);
|
|
}
|
|
return false;
|
|
};
|
|
|
|
config.commands.fields.handlePopup = function(popup,title)
|
|
{
|
|
var tiddler = store.fetchTiddler(title);
|
|
if(!tiddler)
|
|
return;
|
|
var items = [];
|
|
store.forEachField(tiddler,function(tiddler,fieldName,value){items.push({field:fieldName,value:value});},true);
|
|
items.sort(function(a,b) {return a.field < b.field ? -1 : (a.field == b.field ? 0 : +1);});
|
|
if(items.length > 0)
|
|
ListView.create(popup,items,this.listViewTemplate);
|
|
else
|
|
createTiddlyElement(popup,"div",null,null,this.emptyText);
|
|
};
|
|
|