diff --git a/app/assets/javascripts/app/services/dbManager.js b/app/assets/javascripts/app/services/dbManager.js index 957103994..69acd7446 100644 --- a/app/assets/javascripts/app/services/dbManager.js +++ b/app/assets/javascripts/app/services/dbManager.js @@ -24,6 +24,9 @@ class DBManager { request.onsuccess = (event) => { var db = event.target.result; + db.onversionchange = function(event) { + db.close(); + }; db.onerror = function(errorEvent) { console.log("Database error: " + errorEvent.target.errorCode); } @@ -130,14 +133,16 @@ class DBManager { } clearAllItems(callback) { - this.openDatabase((db) => { - var request = db.transaction("items", "readwrite").objectStore("items").clear(); - request.onsuccess = function(event) { - db.close(); - window.indexedDB.deleteDatabase("standardnotes"); - callback(); - }; - }, null) + var deleteRequest = window.indexedDB.deleteDatabase("standardnotes"); + + deleteRequest.onerror = function(event) { + console.log("Error deleting database."); + callback(); + }; + deleteRequest.onsuccess = function(event) { + console.log("Database deleted successfully"); + callback(); + }; } } diff --git a/app/assets/javascripts/app/services/directives/views/accountMenu.js b/app/assets/javascripts/app/services/directives/views/accountMenu.js index a1fe8fb3d..b35c40b51 100644 --- a/app/assets/javascripts/app/services/directives/views/accountMenu.js +++ b/app/assets/javascripts/app/services/directives/views/accountMenu.js @@ -155,7 +155,9 @@ class AccountMenu { }) } else { dbManager.clearAllItems(function(){ - block(); + $timeout(function(){ + block(); + }) }) } } diff --git a/app/assets/javascripts/app/services/syncManager.js b/app/assets/javascripts/app/services/syncManager.js index abdad20eb..e25971d47 100644 --- a/app/assets/javascripts/app/services/syncManager.js +++ b/app/assets/javascripts/app/services/syncManager.js @@ -1,12 +1,13 @@ class SyncManager { - constructor($rootScope, modelManager, authManager, dbManager, httpManager, $interval) { + constructor($rootScope, modelManager, authManager, dbManager, httpManager, $interval, $timeout) { this.$rootScope = $rootScope; this.httpManager = httpManager; this.modelManager = modelManager; this.authManager = authManager; this.dbManager = dbManager; this.$interval = $interval; + this.$timeout = $timeout; this.syncStatus = {}; } @@ -327,9 +328,11 @@ class SyncManager { this.dbManager.clearAllItems(function(){ localStorage.clear(); if(callback) { - callback(); + this.$timeout(function(){ + callback(); + }) } - }); + }.bind(this)); } }