mirror of
				https://github.com/Jermolene/TiddlyWiki5
				synced 2025-11-04 01:23:01 +00:00 
			
		
		
		
	Make the syncer more configurable, including names for sync adaptors
@danielo515 you may want to add a name to your sync adaptor 😄
			
			
This commit is contained in:
		@@ -12,6 +12,18 @@ The syncer tracks changes to the store. If a syncadaptor is used then individual
 | 
			
		||||
/*global $tw: false */
 | 
			
		||||
"use strict";
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
Defaults
 | 
			
		||||
*/
 | 
			
		||||
Syncer.prototype.titleIsLoggedIn = "$:/status/IsLoggedIn";
 | 
			
		||||
Syncer.prototype.titleUserName = "$:/status/UserName";
 | 
			
		||||
Syncer.prototype.titleSyncFilter = "$:/config/SyncFilter";
 | 
			
		||||
Syncer.prototype.titleSavedNotification = "$:/language/Notifications/Save/Done";
 | 
			
		||||
Syncer.prototype.taskTimerInterval = 1 * 1000; // Interval for sync timer
 | 
			
		||||
Syncer.prototype.throttleInterval = 1 * 1000; // Defer saving tiddlers if they've changed in the last 1s...
 | 
			
		||||
Syncer.prototype.fallbackInterval = 10 * 1000; // Unless the task is older than 10s
 | 
			
		||||
Syncer.prototype.pollTimerInterval = 60 * 1000; // Interval for polling for changes from the adaptor
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
Instantiate the syncer with the following options:
 | 
			
		||||
syncadaptor: reference to syncadaptor to be used
 | 
			
		||||
@@ -21,8 +33,17 @@ function Syncer(options) {
 | 
			
		||||
	var self = this;
 | 
			
		||||
	this.wiki = options.wiki;
 | 
			
		||||
	this.syncadaptor = options.syncadaptor;
 | 
			
		||||
	this.titleIsLoggedIn = options.titleIsLoggedIn || this.titleIsLoggedIn;
 | 
			
		||||
	this.titleUserName = options.titleUserName || this.titleUserName;
 | 
			
		||||
	this.titleSyncFilter = options.titleSyncFilter || this.titleSyncFilter;
 | 
			
		||||
	this.titleSavedNotification = options.titleSavedNotification || this.titleSavedNotification;
 | 
			
		||||
	this.taskTimerInterval = options.taskTimerInterval || this.taskTimerInterval;
 | 
			
		||||
	this.throttleInterval = options.throttleInterval || this.throttleInterval;
 | 
			
		||||
	this.fallbackInterval = options.fallbackInterval || this.fallbackInterval;
 | 
			
		||||
	this.pollTimerInterval = options.pollTimerInterval || this.pollTimerInterval;
 | 
			
		||||
	this.logging = $tw.utils.hop(options,"logging") ? options.logging : true;
 | 
			
		||||
	// Make a logger
 | 
			
		||||
	this.logger = new $tw.utils.Logger("syncer" + ($tw.browser ? "-browser" : "") + ($tw.node ? "-server" : ""));
 | 
			
		||||
	this.logger = new $tw.utils.Logger("syncer" + ($tw.browser ? "-browser" : "") + ($tw.node ? "-server" : "")  + (this.syncadaptor.name ? ("-" + this.syncadaptor.name) : ""));
 | 
			
		||||
	// Compile the dirty tiddler filter
 | 
			
		||||
	this.filterFn = this.wiki.compileFilter(this.wiki.getTiddlerText(this.titleSyncFilter));
 | 
			
		||||
	// Record information for known tiddlers
 | 
			
		||||
@@ -69,19 +90,6 @@ function Syncer(options) {
 | 
			
		||||
	});
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
Constants
 | 
			
		||||
*/
 | 
			
		||||
Syncer.prototype.titleIsLoggedIn = "$:/status/IsLoggedIn";
 | 
			
		||||
Syncer.prototype.titleUserName = "$:/status/UserName";
 | 
			
		||||
Syncer.prototype.titleSyncFilter = "$:/config/SyncFilter";
 | 
			
		||||
Syncer.prototype.titleSavedNotification = "$:/language/Notifications/Save/Done";
 | 
			
		||||
Syncer.prototype.taskTimerInterval = 1 * 1000; // Interval for sync timer
 | 
			
		||||
Syncer.prototype.throttleInterval = 1 * 1000; // Defer saving tiddlers if they've changed in the last 1s...
 | 
			
		||||
Syncer.prototype.fallbackInterval = 10 * 1000; // Unless the task is older than 10s
 | 
			
		||||
Syncer.prototype.pollTimerInterval = 60 * 1000; // Interval for polling for changes from the adaptor
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
Read (or re-read) the latest tiddler info from the store
 | 
			
		||||
*/
 | 
			
		||||
 
 | 
			
		||||
@@ -24,6 +24,8 @@ function FileSystemAdaptor(options) {
 | 
			
		||||
	$tw.utils.createDirectory($tw.boot.wikiTiddlersPath);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
FileSystemAdaptor.prototype.name = "filesystem";
 | 
			
		||||
 | 
			
		||||
FileSystemAdaptor.prototype.isReady = function() {
 | 
			
		||||
	// The file system adaptor is always ready
 | 
			
		||||
	return true;
 | 
			
		||||
 
 | 
			
		||||
@@ -23,6 +23,8 @@ function TiddlyWebAdaptor(options) {
 | 
			
		||||
	this.logger = new $tw.utils.Logger("TiddlyWebAdaptor");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
TiddlyWebAdaptor.prototype.name = "tiddlyweb";
 | 
			
		||||
 | 
			
		||||
TiddlyWebAdaptor.prototype.isReady = function() {
 | 
			
		||||
	return this.hasStatus;
 | 
			
		||||
};
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user