mirror of
https://github.com/Jermolene/TiddlyWiki5
synced 2025-08-07 14:23:53 +00:00
Set modified field and other metadata for newly created and modified tiddlers
Right now we're setting the created/modified time, and only setting the creator/modifier if the tiddler `$:/status/UserName` is defined.
This commit is contained in:
parent
bb843a408d
commit
86e73ee323
@ -124,7 +124,7 @@ var Command = function(params,commander,callback) {
|
|||||||
if(fields["revision"]) {
|
if(fields["revision"]) {
|
||||||
delete fields["revision"];
|
delete fields["revision"];
|
||||||
}
|
}
|
||||||
state.wiki.addTiddler(new $tw.Tiddler(fields,{title: title}));
|
state.wiki.addTiddler(new $tw.Tiddler(fields,{title: title},state.wiki.getModificationFields()));
|
||||||
var changeCount = state.wiki.getChangeCount(title).toString();
|
var changeCount = state.wiki.getChangeCount(title).toString();
|
||||||
response.writeHead(204, "OK",{
|
response.writeHead(204, "OK",{
|
||||||
Etag: "\"default/" + title + "/" + changeCount + ":\""
|
Etag: "\"default/" + title + "/" + changeCount + ":\""
|
||||||
|
@ -47,7 +47,7 @@ exports.startup = function() {
|
|||||||
for(var t=0; t<defaultTiddlers.length; t++) {
|
for(var t=0; t<defaultTiddlers.length; t++) {
|
||||||
story[t] = defaultTiddlers[t];
|
story[t] = defaultTiddlers[t];
|
||||||
}
|
}
|
||||||
$tw.wiki.addTiddler({title: storyTitle, text: story.join("\n")});
|
$tw.wiki.addTiddler({title: storyTitle, text: story.join("\n")},$tw.wiki.getModificationFields());
|
||||||
// Host-specific startup
|
// Host-specific startup
|
||||||
if($tw.browser) {
|
if($tw.browser) {
|
||||||
// Call browser startup modules
|
// Call browser startup modules
|
||||||
|
@ -239,7 +239,7 @@ ImportWidget.prototype.importFiles = function(files) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
ImportWidget.prototype.storeTiddler = function(fields) {
|
ImportWidget.prototype.storeTiddler = function(fields) {
|
||||||
this.renderer.renderTree.wiki.addTiddler(new $tw.Tiddler(fields));
|
this.renderer.renderTree.wiki.addTiddler(new $tw.Tiddler(fields,this.renderer.renderTree.wiki.getModificationFields()));
|
||||||
};
|
};
|
||||||
|
|
||||||
ImportWidget.prototype.generateTitle = function(baseTitle) {
|
ImportWidget.prototype.generateTitle = function(baseTitle) {
|
||||||
|
@ -144,7 +144,9 @@ NavigatorWidget.prototype.handleEditTiddlerEvent = function(event) {
|
|||||||
title: draftTitle,
|
title: draftTitle,
|
||||||
"draft.title": event.tiddlerTitle,
|
"draft.title": event.tiddlerTitle,
|
||||||
"draft.of": event.tiddlerTitle
|
"draft.of": event.tiddlerTitle
|
||||||
}));
|
},
|
||||||
|
this.renderer.renderTree.wiki.getModificationFields()
|
||||||
|
));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this.saveStoryList();
|
this.saveStoryList();
|
||||||
@ -196,12 +198,11 @@ NavigatorWidget.prototype.handleSaveTiddlerEvent = function(event) {
|
|||||||
var tiddler = this.renderer.renderTree.wiki.getTiddler(event.tiddlerTitle);
|
var tiddler = this.renderer.renderTree.wiki.getTiddler(event.tiddlerTitle);
|
||||||
if(tiddler.hasField("draft.title")) {
|
if(tiddler.hasField("draft.title")) {
|
||||||
// Save the draft tiddler as the real tiddler
|
// Save the draft tiddler as the real tiddler
|
||||||
this.renderer.renderTree.wiki.addTiddler(new $tw.Tiddler(tiddler,{
|
this.renderer.renderTree.wiki.addTiddler(new $tw.Tiddler(this.renderer.renderTree.wiki.getCreationFields(),tiddler,{
|
||||||
title: tiddler.fields["draft.title"],
|
title: tiddler.fields["draft.title"],
|
||||||
modified: new Date(),
|
|
||||||
"draft.title": undefined,
|
"draft.title": undefined,
|
||||||
"draft.of": undefined
|
"draft.of": undefined
|
||||||
}));
|
},this.renderer.renderTree.wiki.getModificationFields()));
|
||||||
// Remove the draft tiddler
|
// Remove the draft tiddler
|
||||||
this.renderer.renderTree.wiki.deleteTiddler(event.tiddlerTitle);
|
this.renderer.renderTree.wiki.deleteTiddler(event.tiddlerTitle);
|
||||||
// Remove the original tiddler if we're renaming it
|
// Remove the original tiddler if we're renaming it
|
||||||
@ -262,10 +263,10 @@ NavigatorWidget.prototype.handleNewTiddlerEvent = function(event) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
var tiddler = new $tw.Tiddler({
|
var tiddler = new $tw.Tiddler(this.renderer.renderTree.wiki.getCreationFields(),{
|
||||||
title: title,
|
title: title,
|
||||||
text: "Newly created tiddler"
|
text: "Newly created tiddler"
|
||||||
});
|
},this.renderer.renderTree.wiki.getModificationFields());
|
||||||
this.renderer.renderTree.wiki.addTiddler(tiddler);
|
this.renderer.renderTree.wiki.addTiddler(tiddler);
|
||||||
// Create the draft tiddler
|
// Create the draft tiddler
|
||||||
var draftTitle = this.generateDraftTitle(title),
|
var draftTitle = this.generateDraftTitle(title),
|
||||||
@ -274,7 +275,7 @@ NavigatorWidget.prototype.handleNewTiddlerEvent = function(event) {
|
|||||||
title: draftTitle,
|
title: draftTitle,
|
||||||
"draft.title": title,
|
"draft.title": title,
|
||||||
"draft.of": title
|
"draft.of": title
|
||||||
});
|
},this.renderer.renderTree.wiki.getModificationFields());
|
||||||
this.renderer.renderTree.wiki.addTiddler(draftTiddler);
|
this.renderer.renderTree.wiki.addTiddler(draftTiddler);
|
||||||
// Update the story to insert the new draft at the top
|
// Update the story to insert the new draft at the top
|
||||||
var slot = this.findTitleInStory(event.navigateFromTitle,-1) + 1;
|
var slot = this.findTitleInStory(event.navigateFromTitle,-1) + 1;
|
||||||
|
@ -24,6 +24,8 @@ last dispatched. Each entry is a hashmap containing two fields:
|
|||||||
/*global $tw: false */
|
/*global $tw: false */
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
|
var USER_NAME_TITLE = "$:/status/UserName";
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Get the value of a text reference. Text references can have any of these forms:
|
Get the value of a text reference. Text references can have any of these forms:
|
||||||
<tiddlertitle>
|
<tiddlertitle>
|
||||||
@ -56,7 +58,7 @@ exports.setTextReference = function(textRef,value,currTiddlerTitle) {
|
|||||||
// Check if it is a reference to a tiddler
|
// Check if it is a reference to a tiddler
|
||||||
if(tr.title && !tr.field) {
|
if(tr.title && !tr.field) {
|
||||||
tiddler = this.getTiddler(tr.title);
|
tiddler = this.getTiddler(tr.title);
|
||||||
this.addTiddler(new $tw.Tiddler(tiddler,{title: tr.title,text: value}));
|
this.addTiddler(new $tw.Tiddler(tiddler,{title: tr.title,text: value},this.getModificationFields()));
|
||||||
// Else check for a field reference
|
// Else check for a field reference
|
||||||
} else if(tr.field) {
|
} else if(tr.field) {
|
||||||
title = tr.title || currTiddlerTitle;
|
title = tr.title || currTiddlerTitle;
|
||||||
@ -64,7 +66,7 @@ exports.setTextReference = function(textRef,value,currTiddlerTitle) {
|
|||||||
if(tiddler) {
|
if(tiddler) {
|
||||||
fields = {};
|
fields = {};
|
||||||
fields[tr.field] = value;
|
fields[tr.field] = value;
|
||||||
this.addTiddler(new $tw.Tiddler(tiddler,fields));
|
this.addTiddler(new $tw.Tiddler(tiddler,fields,this.getModificationFields()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -82,7 +84,7 @@ exports.deleteTextReference = function(textRef,currTiddlerTitle) {
|
|||||||
if(tiddler && $tw.utils.hop(tiddler.fields,tr.field)) {
|
if(tiddler && $tw.utils.hop(tiddler.fields,tr.field)) {
|
||||||
fields = {};
|
fields = {};
|
||||||
fields[tr.field] = undefined;
|
fields[tr.field] = undefined;
|
||||||
this.addTiddler(new $tw.Tiddler(tiddler,fields));
|
this.addTiddler(new $tw.Tiddler(tiddler,fields,this.getModificationFields()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -194,6 +196,34 @@ exports.addTiddler = function(tiddler) {
|
|||||||
this.enqueueTiddlerEvent(title);
|
this.enqueueTiddlerEvent(title);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
Return a hashmap of the fields that should be set when a tiddler is modified
|
||||||
|
*/
|
||||||
|
exports.getCreationFields = function() {
|
||||||
|
var fields = {
|
||||||
|
created: new Date()
|
||||||
|
},
|
||||||
|
creator = this.getTiddlerText(USER_NAME_TITLE);
|
||||||
|
if(creator) {
|
||||||
|
fields.creator = creator;
|
||||||
|
}
|
||||||
|
return fields;
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
Return a hashmap of the fields that should be set when a tiddler is created
|
||||||
|
*/
|
||||||
|
exports.getModificationFields = function() {
|
||||||
|
var fields = {
|
||||||
|
modified: new Date()
|
||||||
|
},
|
||||||
|
modifier = this.getTiddlerText(USER_NAME_TITLE);
|
||||||
|
if(modifier) {
|
||||||
|
fields.modifier = modifier;
|
||||||
|
}
|
||||||
|
return fields;
|
||||||
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Return a sorted array of non-system tiddler titles, optionally filtered by a tag
|
Return a sorted array of non-system tiddler titles, optionally filtered by a tag
|
||||||
*/
|
*/
|
||||||
@ -457,7 +487,7 @@ Set a tiddlers content to a JavaScript object. Currently this is done by setting
|
|||||||
*/
|
*/
|
||||||
exports.setTiddlerData = function(title,data) {
|
exports.setTiddlerData = function(title,data) {
|
||||||
var tiddler = this.getTiddler(title);
|
var tiddler = this.getTiddler(title);
|
||||||
this.addTiddler(new $tw.Tiddler(tiddler,{title: title, type: "application/json", text: JSON.stringify(data,null,$tw.config.preferences.jsonSpaces)}));
|
this.addTiddler(new $tw.Tiddler(tiddler,{title: title, type: "application/json", text: JSON.stringify(data,null,$tw.config.preferences.jsonSpaces)},this.getModificationFields()));
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -6,6 +6,8 @@ title: $:/ControlPanel
|
|||||||
|
|
||||||
* [[Subtitle|SiteSubtitle]]: <$edit tiddler="SiteSubtitle" default="" type="input"/>
|
* [[Subtitle|SiteSubtitle]]: <$edit tiddler="SiteSubtitle" default="" type="input"/>
|
||||||
|
|
||||||
|
* [[Username for signing edits|$:/status/UserName]]: <$edit tiddler="$:/status/UserName" default="" type="input"/>
|
||||||
|
|
||||||
* Edit [[DefaultTiddlers|$:/DefaultTiddlers]] to choose which tiddlers are displayed at startup
|
* Edit [[DefaultTiddlers|$:/DefaultTiddlers]] to choose which tiddlers are displayed at startup
|
||||||
|
|
||||||
! Import tiddlers
|
! Import tiddlers
|
||||||
|
Loading…
x
Reference in New Issue
Block a user