diff --git a/tw5dropbox/appwiki/plugins/dropbox-app.js b/tw5dropbox/appwiki/plugins/dropbox-app.js index ffc235f0f..c0a9df91e 100644 --- a/tw5dropbox/appwiki/plugins/dropbox-app.js +++ b/tw5dropbox/appwiki/plugins/dropbox-app.js @@ -31,13 +31,16 @@ exports.startup = function() { if(index) { $tw.wiki.addTiddlers(index.tiddlers); $tw.wiki.addTiddlers(index.shadows,true); + $tw.plugins.dropbox.fileRevisions = index.fileRevisions; } // Check for later versions of files on Dropbox - $tw.plugins.dropbox.loadTiddlerFiles("/" + $tw.plugins.dropbox.wikiName + "/tiddlers",function(fileRevisions) { - // Save the tiddler index - $tw.plugins.dropbox.saveTiddlerIndex("/" + $tw.plugins.dropbox.wikiName + "/index.html",fileRevisions,function(error) { - console.log("Saved tiddler index"); - }); + $tw.plugins.dropbox.loadTiddlerFiles("/" + $tw.plugins.dropbox.wikiName + "/tiddlers",function(hadChanges) { + // Save the tiddler index if we had changes + if(hadChanges) { + $tw.plugins.dropbox.saveTiddlerIndex("/" + $tw.plugins.dropbox.wikiName + "/index.html",function(error) { + console.log("Saved tiddler index"); + }); + } }); } else { alert("This TiddlyWiki file must be in Dropbox"); diff --git a/tw5dropbox/plugins/dropbox.js b/tw5dropbox/plugins/dropbox.js index f1629e8b2..fd621fc9c 100644 --- a/tw5dropbox/plugins/dropbox.js +++ b/tw5dropbox/plugins/dropbox.js @@ -20,6 +20,7 @@ var queryLoginMarker = "login=true"; $tw.plugins.dropbox = { client: null, // Dropbox.js client object + fileRevisions: {}, // Hashmap of revision strings for each tiddler file that has been retrieved from Dropbox titleIsLoggedIn: "$:/plugins/dropbox/IsLoggedIn", titleUserName: "$:/plugins/dropbox/UserName", titlePublicAppUrl: "$:/plugins/dropbox/PublicAppUrl", @@ -114,26 +115,40 @@ $tw.plugins.dropbox.loadTiddlerFiles = function(path,callback) { $tw.plugins.dropbox.loadTiddlerFile(task.path,task.type,task.stats,callback); }, 2); // Call the callback when we've processed all the files - q.drain = function() { - var fileRevisions = {}; - for(var t=0; t