From c1aaef624d61149cda8c1c29889dce5ff6514a66 Mon Sep 17 00:00:00 2001 From: Mo Bitar Date: Fri, 6 Apr 2018 09:45:24 -0500 Subject: [PATCH] Force refresh on physical button press --- app/assets/javascripts/app/controllers/footer.js | 4 ++-- app/assets/javascripts/app/services/syncManager.js | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/app/assets/javascripts/app/controllers/footer.js b/app/assets/javascripts/app/controllers/footer.js index 74f1d7c12..bb60eb9ec 100644 --- a/app/assets/javascripts/app/controllers/footer.js +++ b/app/assets/javascripts/app/controllers/footer.js @@ -34,7 +34,7 @@ angular.module('app') if(!extWindow) { return; } - + this.selectRoom(extWindow); $timeout(() => { @@ -94,7 +94,7 @@ angular.module('app') } else { this.syncUpdated(); } - }, null, "refreshData"); + }, {force: true}, "refreshData"); } this.syncUpdated = function() { diff --git a/app/assets/javascripts/app/services/syncManager.js b/app/assets/javascripts/app/services/syncManager.js index 599aca41b..26490851a 100644 --- a/app/assets/javascripts/app/services/syncManager.js +++ b/app/assets/javascripts/app/services/syncManager.js @@ -203,7 +203,9 @@ class SyncManager { var allDirtyItems = this.modelManager.getDirtyItems(); - if(this.syncStatus.syncOpInProgress) { + // When a user hits the physical refresh button, we want to force refresh, in case + // the sync engine is stuck in some inProgress loop. + if(this.syncStatus.syncOpInProgress && !options.force) { this.repeatOnCompletion = true; if(callback) { this.queuedCallbacks.push(callback);