diff --git a/core/modules/syncer.js b/core/modules/syncer.js index e3539f90b..c5aadf28a 100644 --- a/core/modules/syncer.js +++ b/core/modules/syncer.js @@ -42,8 +42,12 @@ function Syncer(options) { this.throttleInterval = options.throttleInterval || this.throttleInterval; this.fallbackInterval = options.fallbackInterval || this.fallbackInterval; this.pollTimerInterval = options.pollTimerInterval || this.pollTimerInterval; + this.logging = "logging" in options ? options.logging : true; // Make a logger - this.logger = new $tw.utils.Logger("syncer" + ($tw.browser ? "-browser" : "") + ($tw.node ? "-server" : "") + (this.syncadaptor.name ? ("-" + this.syncadaptor.name) : ""),{colour: "cyan"}); + this.logger = new $tw.utils.Logger("syncer" + ($tw.browser ? "-browser" : "") + ($tw.node ? "-server" : "") + (this.syncadaptor.name ? ("-" + this.syncadaptor.name) : ""),{ + colour: "cyan", + enable: this.logging + }); // Compile the dirty tiddler filter this.filterFn = this.wiki.compileFilter(this.wiki.getTiddlerText(this.titleSyncFilter)); // Record information for known tiddlers diff --git a/core/modules/utils/logger.js b/core/modules/utils/logger.js index 6bafad01e..ee14c5b2b 100644 --- a/core/modules/utils/logger.js +++ b/core/modules/utils/logger.js @@ -21,13 +21,14 @@ function Logger(componentName,options) { options = options || {}; this.componentName = componentName || ""; this.colour = options.colour || "white"; + this.enable = "enable" in options ? options.enable : true; } /* Log a message */ Logger.prototype.log = function(/* args */) { - if(console !== undefined && console.log !== undefined) { + if(this.enable && console !== undefined && console.log !== undefined) { return Function.apply.call(console.log, console, [$tw.utils.terminalColour(this.colour),this.componentName + ":"].concat(Array.prototype.slice.call(arguments,0)).concat($tw.utils.terminalColour())); } }; @@ -36,44 +37,46 @@ Logger.prototype.log = function(/* args */) { Alert a message */ Logger.prototype.alert = function(/* args */) { - // Prepare the text of the alert - var text = Array.prototype.join.call(arguments," "); - // Create alert tiddlers in the browser - if($tw.browser) { - // Check if there is an existing alert with the same text and the same component - var existingAlerts = $tw.wiki.getTiddlersWithTag(ALERT_TAG), - alertFields, - existingCount, - self = this; - $tw.utils.each(existingAlerts,function(title) { - var tiddler = $tw.wiki.getTiddler(title); - if(tiddler.fields.text === text && tiddler.fields.component === self.componentName && tiddler.fields.modified && (!alertFields || tiddler.fields.modified < alertFields.modified)) { - alertFields = $tw.utils.extend({},tiddler.fields); + if(this.enable) { + // Prepare the text of the alert + var text = Array.prototype.join.call(arguments," "); + // Create alert tiddlers in the browser + if($tw.browser) { + // Check if there is an existing alert with the same text and the same component + var existingAlerts = $tw.wiki.getTiddlersWithTag(ALERT_TAG), + alertFields, + existingCount, + self = this; + $tw.utils.each(existingAlerts,function(title) { + var tiddler = $tw.wiki.getTiddler(title); + if(tiddler.fields.text === text && tiddler.fields.component === self.componentName && tiddler.fields.modified && (!alertFields || tiddler.fields.modified < alertFields.modified)) { + alertFields = $tw.utils.extend({},tiddler.fields); + } + }); + if(alertFields) { + existingCount = alertFields.count || 1; + } else { + alertFields = { + title: $tw.wiki.generateNewTitle("$:/temp/alerts/alert",{prefix: ""}), + text: text, + tags: [ALERT_TAG], + component: this.componentName + }; + existingCount = 0; } - }); - if(alertFields) { - existingCount = alertFields.count || 1; + alertFields.modified = new Date(); + if(++existingCount > 1) { + alertFields.count = existingCount; + } else { + alertFields.count = undefined; + } + $tw.wiki.addTiddler(new $tw.Tiddler(alertFields)); + // Log the alert as well + this.log.apply(this,Array.prototype.slice.call(arguments,0)); } else { - alertFields = { - title: $tw.wiki.generateNewTitle("$:/temp/alerts/alert",{prefix: ""}), - text: text, - tags: [ALERT_TAG], - component: this.componentName - }; - existingCount = 0; - } - alertFields.modified = new Date(); - if(++existingCount > 1) { - alertFields.count = existingCount; - } else { - alertFields.count = undefined; - } - $tw.wiki.addTiddler(new $tw.Tiddler(alertFields)); - // Log the alert as well - this.log.apply(this,Array.prototype.slice.call(arguments,0)); - } else { - // Print an orange message to the console if not in the browser - console.error("\x1b[1;33m" + text + "\x1b[0m"); + // Print an orange message to the console if not in the browser + console.error("\x1b[1;33m" + text + "\x1b[0m"); + } } };