mirror of
https://github.com/Jermolene/TiddlyWiki5
synced 2024-11-24 10:37:20 +00:00
a1c8ac624f
There are still some whitespace and attribute ordering issues, but the result runs correctly.
82 lines
3.1 KiB
JavaScript
Executable File
82 lines
3.1 KiB
JavaScript
Executable File
//--
|
|
//-- NewTiddler and NewJournal macros
|
|
//--
|
|
|
|
config.macros.newTiddler.createNewTiddlerButton = function(place,title,params,label,prompt,accessKey,newFocus,isJournal)
|
|
{
|
|
var tags = [];
|
|
var t;
|
|
for(t=1; t<params.length; t++) {
|
|
if((params[t].name == "anon" && t != 1) || (params[t].name == "tag"))
|
|
tags.push(params[t].value);
|
|
}
|
|
label = getParam(params,"label",label);
|
|
prompt = getParam(params,"prompt",prompt);
|
|
accessKey = getParam(params,"accessKey",accessKey);
|
|
newFocus = getParam(params,"focus",newFocus);
|
|
var customFields = getParam(params,"fields","");
|
|
if(!customFields && !store.isShadowTiddler(title))
|
|
customFields = String.encodeHashMap(config.defaultCustomFields);
|
|
var btn = createTiddlyButton(place,label,prompt,this.onClickNewTiddler,null,null,accessKey);
|
|
btn.setAttribute("newTitle",title);
|
|
btn.setAttribute("isJournal",isJournal ? "true" : "false");
|
|
if(tags.length > 0)
|
|
btn.setAttribute("params",tags.join("|"));
|
|
btn.setAttribute("newFocus",newFocus);
|
|
btn.setAttribute("newTemplate",getParam(params,"template",DEFAULT_EDIT_TEMPLATE));
|
|
if(customFields !== "")
|
|
btn.setAttribute("customFields",customFields);
|
|
var text = getParam(params,"text");
|
|
if(text !== undefined)
|
|
btn.setAttribute("newText",text);
|
|
return btn;
|
|
};
|
|
|
|
config.macros.newTiddler.onClickNewTiddler = function()
|
|
{
|
|
var title = this.getAttribute("newTitle");
|
|
if(this.getAttribute("isJournal") == "true") {
|
|
title = new Date().formatString(title.trim());
|
|
}
|
|
var params = this.getAttribute("params");
|
|
var tags = params ? params.split("|") : [];
|
|
var focus = this.getAttribute("newFocus");
|
|
var template = this.getAttribute("newTemplate");
|
|
var customFields = this.getAttribute("customFields");
|
|
if(!customFields && !store.isShadowTiddler(title))
|
|
customFields = String.encodeHashMap(config.defaultCustomFields);
|
|
story.displayTiddler(null,title,template,false,null,null);
|
|
var tiddlerElem = story.getTiddler(title);
|
|
if(customFields)
|
|
story.addCustomFields(tiddlerElem,customFields);
|
|
var text = this.getAttribute("newText");
|
|
if(typeof text == "string" && story.getTiddlerField(title,"text"))
|
|
story.getTiddlerField(title,"text").value = text.format([title]);
|
|
var t;
|
|
for(t=0;t<tags.length;t++)
|
|
story.setTiddlerTag(title,tags[t],+1);
|
|
story.focusTiddler(title,focus);
|
|
return false;
|
|
};
|
|
|
|
config.macros.newTiddler.handler = function(place,macroName,params,wikifier,paramString)
|
|
{
|
|
if(!readOnly) {
|
|
params = paramString.parseParams("anon",null,true,false,false);
|
|
var title = params[1] && params[1].name == "anon" ? params[1].value : this.title;
|
|
title = getParam(params,"title",title);
|
|
this.createNewTiddlerButton(place,title,params,this.label,this.prompt,this.accessKey,"title",false);
|
|
}
|
|
};
|
|
|
|
config.macros.newJournal.handler = function(place,macroName,params,wikifier,paramString)
|
|
{
|
|
if(!readOnly) {
|
|
params = paramString.parseParams("anon",null,true,false,false);
|
|
var title = params[1] && params[1].name == "anon" ? params[1].value : config.macros.timeline.dateFormat;
|
|
title = getParam(params,"title",title);
|
|
config.macros.newTiddler.createNewTiddlerButton(place,title,params,this.label,this.prompt,this.accessKey,"text",true);
|
|
}
|
|
};
|
|
|