From 9f5c0de078d18594adf7223920eba1308b747338 Mon Sep 17 00:00:00 2001 From: Jeremy Ruston Date: Fri, 6 Dec 2019 17:27:28 +0000 Subject: [PATCH] Clear outstanding alerts when synchronisation is restored --- core/modules/syncer.js | 6 +++++- core/modules/utils/logger.js | 14 ++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/core/modules/syncer.js b/core/modules/syncer.js index 640798f0235..736e4cebc99 100644 --- a/core/modules/syncer.js +++ b/core/modules/syncer.js @@ -190,7 +190,11 @@ Update the document body with the class "tc-dirty" if the wiki has unsaved/unsyn */ Syncer.prototype.updateDirtyStatus = function() { if($tw.browser && !this.disableUI) { - $tw.utils.toggleClass(document.body,"tc-dirty",this.isDirty()); + var dirty = this.isDirty(); + $tw.utils.toggleClass(document.body,"tc-dirty",dirty); + if(!dirty) { + this.logger.clearAlerts(); + } } }; diff --git a/core/modules/utils/logger.js b/core/modules/utils/logger.js index 01e850aae89..5100772aff5 100644 --- a/core/modules/utils/logger.js +++ b/core/modules/utils/logger.js @@ -25,6 +25,7 @@ function Logger(componentName,options) { this.save = "save" in options ? options.save : true; this.saveLimit = options.saveLimit || 100 * 1024; this.buffer = ""; + this.alertCount = 0; } /* @@ -91,6 +92,7 @@ Logger.prototype.alert = function(/* args */) { component: this.componentName }; existingCount = 0; + this.alertCount += 1; } alertFields.modified = new Date(); if(++existingCount > 1) { @@ -108,6 +110,18 @@ Logger.prototype.alert = function(/* args */) { } }; +/* +Clear outstanding alerts +*/ +Logger.prototype.clearAlerts = function() { + if(this.alertCount > 0) { + $tw.utils.each($tw.wiki.getTiddlersWithTag(ALERT_TAG),function(title) { + $tw.wiki.deleteTiddler(title); + }); + this.alertCount = 0; + } +}; + exports.Logger = Logger; })();