1
0
mirror of https://github.com/Jermolene/TiddlyWiki5 synced 2024-11-30 05:19:57 +00:00

Fix revision comparisons

This commit is contained in:
Jeremy Ruston 2024-05-27 17:33:27 +01:00
parent a37d50166f
commit 9b6d677726

View File

@ -277,6 +277,20 @@ MultiWikiClientAdaptor.prototype.pollServer = function(options) {
});
};
/*
Queue a load for a tiddler if there has been an update for it since the specified revision
*/
MultiWikiClientAdaptor.prototype.checkLastRecordedUpdate = function(title,revision,syncer) {
var lru = this.lastRecordedUpdate[title];
if(lru) {
var numTiddlerId = $tw.utils.parseNumber(lru.tiddler_id),
numRevision = $tw.utils.parseNumber(revision);
if(numTiddlerId > numRevision) {
options.syncer.enqueueLoadTiddler(title);
}
}
}
/*
Save a tiddler and invoke the callback with (err,adaptorInfo,revision)
*/
@ -308,10 +322,7 @@ MultiWikiClientAdaptor.prototype.saveTiddler = function(tiddler,callback,options
bag_name = request.getResponseHeader("X-Bag-Name");
console.log(`Saved ${title} with revision ${revision} and bag ${bag_name}`)
// If there has been a more recent update from the server then enqueue a load of this tiddler
var lru = self.lastRecordedUpdate[title];
if(lru && lru.tiddler_id > revision) {
options.syncer.enqueueLoadTiddler(title);
}
self.checkLastRecordedUpdate(title,revision,options.syncer);
// Invoke the callback
self.setTiddlerInfo(title,revision,bag_name);
callback(null,{bag: bag_name},revision);
@ -337,10 +348,7 @@ MultiWikiClientAdaptor.prototype.loadTiddler = function(title,callback,options)
var revision = request.getResponseHeader("X-Revision-Number"),
bag_name = request.getResponseHeader("X-Bag-Name");
// If there has been a more recent update from the server then enqueue a load of this tiddler
var lru = self.lastRecordedUpdate[title];
if(lru && lru.tiddler_id > revision) {
options.syncer.enqueueLoadTiddler(title);
}
self.checkLastRecordedUpdate(title,revision,options.syncer);
// Invoke the callback
self.setTiddlerInfo(title,revision,bag_name);
callback(null,$tw.utils.parseJSONSafe(data));
@ -375,10 +383,7 @@ MultiWikiClientAdaptor.prototype.deleteTiddler = function(title,callback,options
}
var revision = request.getResponseHeader("X-Revision-Number");
// If there has been a more recent update from the server then enqueue a load of this tiddler
var lru = self.lastRecordedUpdate[title];
if(lru && lru.tiddler_id > revision) {
options.syncer.enqueueLoadTiddler(title);
}
self.checkLastRecordedUpdate(title,revision,options.syncer);
self.removeTiddlerInfo(title);
// Invoke the callback & return null adaptorInfo
callback(null,null);