Handle DB delete onblocked

This commit is contained in:
Mo Bitar
2017-08-22 19:28:19 -05:00
parent e3ba15c684
commit 2cd9584a41

View File

@@ -25,7 +25,7 @@ class DBManager {
request.onsuccess = (event) => { request.onsuccess = (event) => {
var db = event.target.result; var db = event.target.result;
db.onversionchange = function(event) { db.onversionchange = function(event) {
db.close(); db.close();
}; };
db.onerror = function(errorEvent) { db.onerror = function(errorEvent) {
console.log("Database error: " + errorEvent.target.errorCode); console.log("Database error: " + errorEvent.target.errorCode);
@@ -36,13 +36,11 @@ class DBManager {
}; };
request.onupgradeneeded = (event) => { request.onupgradeneeded = (event) => {
console.log("Upgrade needed", event);
var db = event.target.result; var db = event.target.result;
if(db.version === 1) {
if(onUgradeNeeded) { db.onversionchange = function(event) {
onUgradeNeeded(); db.close();
} };
}
// Create an objectStore for this database // Create an objectStore for this database
var objectStore = db.createObjectStore("items", { keyPath: "uuid" }); var objectStore = db.createObjectStore("items", { keyPath: "uuid" });
@@ -50,6 +48,11 @@ class DBManager {
objectStore.createIndex("uuid", "uuid", { unique: true }); objectStore.createIndex("uuid", "uuid", { unique: true });
objectStore.transaction.oncomplete = function(event) { objectStore.transaction.oncomplete = function(event) {
// Ready to store values in the newly created objectStore. // 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."); console.log("Error deleting database.");
callback(); callback();
}; };
deleteRequest.onsuccess = function(event) { deleteRequest.onsuccess = function(event) {
console.log("Database deleted successfully"); console.log("Database deleted successfully");
callback(); 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.")
}; };
} }
} }