From 2cd9584a412de99aeb493db043b90833477edf28 Mon Sep 17 00:00:00 2001 From: Mo Bitar Date: Tue, 22 Aug 2017 19:28:19 -0500 Subject: [PATCH] Handle DB delete onblocked --- .../javascripts/app/services/dbManager.js | 24 ++++++++++++------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/app/assets/javascripts/app/services/dbManager.js b/app/assets/javascripts/app/services/dbManager.js index 28fe662a4..e642ff186 100644 --- a/app/assets/javascripts/app/services/dbManager.js +++ b/app/assets/javascripts/app/services/dbManager.js @@ -25,7 +25,7 @@ class DBManager { request.onsuccess = (event) => { var db = event.target.result; db.onversionchange = function(event) { - db.close(); + db.close(); }; db.onerror = function(errorEvent) { console.log("Database error: " + errorEvent.target.errorCode); @@ -36,13 +36,11 @@ class DBManager { }; request.onupgradeneeded = (event) => { - console.log("Upgrade needed", event); var db = event.target.result; - if(db.version === 1) { - if(onUgradeNeeded) { - onUgradeNeeded(); - } - } + + db.onversionchange = function(event) { + db.close(); + }; // Create an objectStore for this database var objectStore = db.createObjectStore("items", { keyPath: "uuid" }); @@ -50,6 +48,11 @@ class DBManager { objectStore.createIndex("uuid", "uuid", { unique: true }); objectStore.transaction.oncomplete = function(event) { // Ready to store values in the newly created objectStore. + if(db.version === 1) { + if(onUgradeNeeded) { + onUgradeNeeded(); + } + } }; }; } @@ -139,12 +142,15 @@ class DBManager { console.log("Error deleting database."); callback(); }; + deleteRequest.onsuccess = function(event) { console.log("Database deleted successfully"); callback(); }; - deleteRequest.onblock = function(event) { - callback(); + + deleteRequest.onblocked = function(event) { + console.error("Delete request blocked"); + alert("Your browser is blocking Standard Notes from deleting the local database. Make sure there are no other open windows of this app and try again. If the issue persists, please manually delete app data to sign out.") }; } }