http://trac.tiddlywiki.org/changeset/11290

MartinBudden
2009-12-02 06:42:19 -0800 (Wed, 02 Dec 2009)
44
Ticket #471

Add 'creator' field to tiddlers

---------------

U   Trunk/core/js/Story.js
U   Trunk/core/js/TW21Loader.js
U   Trunk/core/js/TW21Saver.js
U   Trunk/core/js/Tiddler.js
U   Trunk/core/js/TiddlerFields.js
U   Trunk/core/js/TiddlyWiki.js

---------------

Modified: Trunk/core/js/Story.js
===================================================================
--- Trunk/core/js/Story.js      2009-12-02 09:56:33 UTC (rev 11289)
+++ Trunk/core/js/Story.js      2009-12-02 14:42:19 UTC (rev 11290)
@@ -166,7 +166,7 @@
                                t.created = new Date();
                        if(!t.modified)
                                t.modified = t.created;
-                       
store.saveTiddler(t.title,t.title,t.text,t.modifier,t.modified,t.tags,t.fields,true,t.created);
+                       
store.saveTiddler(t.title,t.title,t.text,t.modifier,t.modified,t.tags,t.fields,true,t.created,t.creator);
                        autoSaveChanges();
                } else {
                        story.refreshTiddler(context.title,null,true);
@@ -573,8 +573,10 @@
                var fields = {};
                this.gatherSaveFields(tiddlerElem,fields);
                var newTitle = fields.title || title;
-               if(!store.tiddlerExists(newTitle))
+               if(!store.tiddlerExists(newTitle)) {
                        newTitle = newTitle.trim();
+                       var creator = config.options.txtUserName;
+               }
                if(store.tiddlerExists(newTitle) && newTitle != title) {
                        
if(!confirm(config.messages.overwriteWarning.format([newTitle.toString()])))
                                return null;
@@ -591,7 +593,9 @@
                        minorUpdate = false;
                var newDate = new Date();
                if(store.tiddlerExists(title)) {
-                       var extendedFields = store.fetchTiddler(title).fields;
+                       var t = store.fetchTiddler(title);
+                       var extendedFields = t.fields;
+                       creator = t.creator;
                } else {
                        extendedFields = merge({},config.defaultCustomFields);
                }
@@ -599,7 +603,7 @@
                        if(!TiddlyWiki.isStandardField(n))
                                extendedFields[n] = fields[n];
                }
-               var tiddler = 
store.saveTiddler(title,newTitle,fields.text,minorUpdate ? undefined : 
config.options.txtUserName,minorUpdate ? undefined : 
newDate,fields.tags,extendedFields);
+               var tiddler = 
store.saveTiddler(title,newTitle,fields.text,minorUpdate ? undefined : 
config.options.txtUserName,minorUpdate ? undefined : 
newDate,fields.tags,extendedFields,null,null,creator);
                autoSaveChanges(null,[tiddler]);
                return newTitle;
        }

Modified: Trunk/core/js/TW21Loader.js
===================================================================
--- Trunk/core/js/TW21Loader.js 2009-12-02 09:56:33 UTC (rev 11289)
+++ Trunk/core/js/TW21Loader.js 2009-12-02 14:42:19 UTC (rev 11290)
@@ -34,6 +34,7 @@
                }
                text = e.innerHTML.replace(/\r/mg,"").htmlDecode();
        }
+       var creator = node.getAttribute("creator");
        var modifier = node.getAttribute("modifier");
        var c = node.getAttribute("created");
        var m = node.getAttribute("modified");
@@ -48,7 +49,7 @@
                        fields[name] = attrs[i].value.unescapeLineBreaks();
                }
        }
-       tiddler.assign(title,text,modifier,modified,tags,created,fields);
+       
tiddler.assign(title,text,modifier,modified,tags,created,fields,creator);
        return tiddler;
 };
 

Modified: Trunk/core/js/TW21Saver.js
===================================================================
--- Trunk/core/js/TW21Saver.js  2009-12-02 09:56:33 UTC (rev 11289)
+++ Trunk/core/js/TW21Saver.js  2009-12-02 14:42:19 UTC (rev 11290)
@@ -21,7 +21,8 @@
                        },true);
                var created = tiddler.created;
                var modified = tiddler.modified;
-               var attributes = tiddler.modifier ? ' modifier="' + 
tiddler.modifier.htmlEncode() + '"' : "";
+               var attributes = tiddler.creator ? ' creator="' + 
tiddler.creator.htmlEncode() + '"' : "";
+               attributes += tiddler.modifier ? ' modifier="' + 
tiddler.modifier.htmlEncode() + '"' : "";
                attributes += (usePre && created == version.date) ? "" :' 
created="' + created.convertToYYYYMMDDHHMM() + '"';
                attributes += (usePre && modified == created) ? "" : ' 
modified="' + modified.convertToYYYYMMDDHHMM() +'"';
                var tags = tiddler.getTags();

Modified: Trunk/core/js/Tiddler.js
===================================================================
--- Trunk/core/js/Tiddler.js    2009-12-02 09:56:33 UTC (rev 11289)
+++ Trunk/core/js/Tiddler.js    2009-12-02 14:42:19 UTC (rev 11290)
@@ -6,6 +6,7 @@
 {
        this.title = title;
        this.text = "";
+       this.creator = null;
        this.modifier = null;
        this.created = new Date();
        this.modified = this.created;
@@ -67,15 +68,15 @@
 };
 
 // Change the text and other attributes of a tiddler
-Tiddler.prototype.set = 
function(title,text,modifier,modified,tags,created,fields)
+Tiddler.prototype.set = 
function(title,text,modifier,modified,tags,created,fields,creator)
 {
-       this.assign(title,text,modifier,modified,tags,created,fields);
+       this.assign(title,text,modifier,modified,tags,created,fields,creator);
        this.changed();
        return this;
 };
 
 // Change the text and other attributes of a tiddler without triggered a 
tiddler.changed() call
-Tiddler.prototype.assign = 
function(title,text,modifier,modified,tags,created,fields)
+Tiddler.prototype.assign = 
function(title,text,modifier,modified,tags,created,fields,creator)
 {
        if(title != undefined)
                this.title = title;
@@ -85,6 +86,8 @@
                this.modifier = modifier;
        if(modified != undefined)
                this.modified = modified;
+       if(creator != undefined)
+               this.creator = creator;
        if(created != undefined)
                this.created = created;
        if(fields != undefined)

Modified: Trunk/core/js/TiddlerFields.js
===================================================================
--- Trunk/core/js/TiddlerFields.js      2009-12-02 09:56:33 UTC (rev 11289)
+++ Trunk/core/js/TiddlerFields.js      2009-12-02 14:42:19 UTC (rev 11290)
@@ -51,6 +51,7 @@
        "text":     new StringFieldAccess("text"),
        "modifier": new StringFieldAccess("modifier"),
        "modified": new DateFieldAccess("modified"),
+       "creator":  new StringFieldAccess("creator"),
        "created":  new DateFieldAccess("created"),
        "tags":     new LinksFieldAccess("tags")
 };

Modified: Trunk/core/js/TiddlyWiki.js
===================================================================
--- Trunk/core/js/TiddlyWiki.js 2009-12-02 09:56:33 UTC (rev 11289)
+++ Trunk/core/js/TiddlyWiki.js 2009-12-02 14:42:19 UTC (rev 11290)
@@ -316,17 +316,18 @@
 //# {{{config.defaultCustomFields}}} as fallback.
 //#
 //# N.B.: Does not trigger [[autoSaveChanges]].
-TiddlyWiki.prototype.saveTiddler = 
function(title,newTitle,newBody,modifier,modified,tags,fields,clearChangeCount,created)
+TiddlyWiki.prototype.saveTiddler = 
function(title,newTitle,newBody,modifier,modified,tags,fields,clearChangeCount,created,creator)
 {
        var tiddler = this.fetchTiddler(title);
        if(tiddler) {
                created = created || tiddler.created; // Preserve created date
+               creator = creator || tiddler.creator;
                this.deleteTiddler(title);
        } else {
                created = created || modified;
                tiddler = new Tiddler();
        }
-       tiddler.set(newTitle,newBody,modifier,modified,tags,created,fields);
+       
tiddler.set(newTitle,newBody,modifier,modified,tags,created,fields,creator);
        this.addTiddler(tiddler);
        if(clearChangeCount)
                tiddler.clearChangeCount();

--

You received this message because you are subscribed to the Google Groups 
"TiddlyWikiDev" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/tiddlywikidev?hl=en.


Reply via email to