v1.0.7
Fixed bugs: - Fixed: Restore data not working. - Settings screen not hiding after logout, clear, restore Others: - Updating CompactIDB to latest stdop (initDB adds missing objectStores instead of rejecting).
This commit is contained in:
parent
5c22ecab87
commit
f60e7dddbb
35
index.html
35
index.html
@ -1063,6 +1063,7 @@
|
|||||||
//display loading screen
|
//display loading screen
|
||||||
document.getElementById("loading-screen").classList.remove("hide")
|
document.getElementById("loading-screen").classList.remove("hide")
|
||||||
document.getElementById("sign-in-box").classList.add("hide")
|
document.getElementById("sign-in-box").classList.add("hide")
|
||||||
|
document.getElementById("settings-screen").parentNode.classList.add("hide")
|
||||||
//clear Rendered Elements
|
//clear Rendered Elements
|
||||||
let elementsToReset = ["startup-load-msg", 'mail-list', 'contact-list', 'conversation-body',
|
let elementsToReset = ["startup-load-msg", 'mail-list', 'contact-list', 'conversation-body',
|
||||||
'receiver-floID', 'receiver-name', "backup-info"
|
'receiver-floID', 'receiver-name', "backup-info"
|
||||||
@ -1454,7 +1455,7 @@
|
|||||||
}
|
}
|
||||||
messenger.parseBackup(file).then(data => {
|
messenger.parseBackup(file).then(data => {
|
||||||
getConfirmation('Restore Data?',
|
getConfirmation('Restore Data?',
|
||||||
`$Found:\n ${Object.keys(data.contacts).length} Contacts,\n ${Object.keys(data.messages).length} Messages,\n ${Object.keys(data.mails).length} Mails\nRestore Data?`, "Restore"
|
`Found:\n ${Object.keys(data.contacts).length} Contacts,\n ${Object.keys(data.messages).length} Messages,\n ${Object.keys(data.mails).length} Mails\nRestore Data?`, "Restore"
|
||||||
).then(result => {
|
).then(result => {
|
||||||
restoreInfoText.textContent = `Restoring data! Please wait...`;
|
restoreInfoText.textContent = `Restoring data! Please wait...`;
|
||||||
messenger.restoreData(data).then(result => {
|
messenger.restoreData(data).then(result => {
|
||||||
@ -9890,10 +9891,10 @@ Bitcoin.Util = {
|
|||||||
this.dbName = dbName;
|
this.dbName = dbName;
|
||||||
},
|
},
|
||||||
|
|
||||||
initDB: function (dbName, objectStores = {}) {
|
initDB: function (dbName, objectStores = {}, version = null) {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
this.dbName = this.dbName || dbName;
|
this.dbName = this.dbName || dbName;
|
||||||
var idb = indexedDB.open(dbName);
|
var idb = version ? indexedDB.open(dbName, version) : indexedDB.open(dbName);
|
||||||
idb.onerror = (event) => {
|
idb.onerror = (event) => {
|
||||||
reject("Error in opening IndexedDB!");
|
reject("Error in opening IndexedDB!");
|
||||||
};
|
};
|
||||||
@ -9911,8 +9912,12 @@ Bitcoin.Util = {
|
|||||||
if (JSON.stringify(Object.values(db.objectStoreNames).sort()) === JSON.stringify(Object.keys(
|
if (JSON.stringify(Object.values(db.objectStoreNames).sort()) === JSON.stringify(Object.keys(
|
||||||
objectStores).sort()))
|
objectStores).sort()))
|
||||||
resolve("Initiated IndexedDB");
|
resolve("Initiated IndexedDB");
|
||||||
else
|
else{
|
||||||
reject("IndexedDB already exist with different ObjectStores!");
|
Object.values(db.objectStoreNames).forEach(obs => delete objectStores[obs])
|
||||||
|
this.initDB(dbName, objectStores, db.version + 1)
|
||||||
|
.then(result => resolve(result))
|
||||||
|
.catch(error => reject(error))
|
||||||
|
}
|
||||||
db.close();
|
db.close();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -10610,15 +10615,10 @@ Bitcoin.Util = {
|
|||||||
if (!result || !result.includes(mark))
|
if (!result || !result.includes(mark))
|
||||||
return resolve("Mark doesnot exist")
|
return resolve("Mark doesnot exist")
|
||||||
else {
|
else {
|
||||||
let process;
|
result.splice(result.indexOf(mark), 1); //remove the mark from the list of marks
|
||||||
if (result.length == 1) //only given mark is present, remove it
|
compactIDB.writeData("marked", result, key)
|
||||||
process = compactIDB.removeData("marked", key)
|
.then(result => resolve("Mark removed"))
|
||||||
else {
|
.catch(error => reject(error))
|
||||||
result.splice(result.indexOf(mark),
|
|
||||||
1); //remove the mark from the list of marks
|
|
||||||
process = compactIDB.writeData("marked", result, key)
|
|
||||||
}
|
|
||||||
process.then(result => resolve("Mark removed")).catch(error => reject(error))
|
|
||||||
}
|
}
|
||||||
}).catch(error => reject(error))
|
}).catch(error => reject(error))
|
||||||
})
|
})
|
||||||
@ -10653,6 +10653,7 @@ Bitcoin.Util = {
|
|||||||
for (let m in data.messages) {
|
for (let m in data.messages) {
|
||||||
let decrypted = Crypto.AES.decrypt(data.messages[m].message,
|
let decrypted = Crypto.AES.decrypt(data.messages[m].message,
|
||||||
AESKey)
|
AESKey)
|
||||||
|
|
||||||
data.messages[m].message = decrypted;
|
data.messages[m].message = decrypted;
|
||||||
}
|
}
|
||||||
resolve(data)
|
resolve(data)
|
||||||
@ -10739,17 +10740,17 @@ Bitcoin.Util = {
|
|||||||
data.appendix.lastReceived = floGlobals.appendix.lastReceived;
|
data.appendix.lastReceived = floGlobals.appendix.lastReceived;
|
||||||
let AESKey = floCrypto.decryptData(data.appendix.AESKey, myPrivKey);
|
let AESKey = floCrypto.decryptData(data.appendix.AESKey, myPrivKey);
|
||||||
if (AESKey !== floGlobals.appendix.AESKey) {
|
if (AESKey !== floGlobals.appendix.AESKey) {
|
||||||
for (let m in data.message) {
|
for (let m in data.messages) {
|
||||||
let decrypted = Crypto.AES.decrypt(data.messages[m].message, AESKey)
|
let decrypted = Crypto.AES.decrypt(data.messages[m].message, AESKey)
|
||||||
let encrypted = Crypto.AES.encrypt(decrypted, floGlobals.appendix
|
let encrypted = Crypto.AES.encrypt(decrypted, floGlobals.appendix
|
||||||
.AESKey)
|
.AESKey)
|
||||||
result.messages[m].message = encrypted;
|
data.messages[m].message = encrypted;
|
||||||
}
|
}
|
||||||
for (let m in data.mailContent) {
|
for (let m in data.mailContent) {
|
||||||
let decrypted = Crypto.AES.decrypt(data.mailContent[m], AESKey)
|
let decrypted = Crypto.AES.decrypt(data.mailContent[m], AESKey)
|
||||||
let encrypted = Crypto.AES.encrypt(decrypted, floGlobals.appendix
|
let encrypted = Crypto.AES.encrypt(decrypted, floGlobals.appendix
|
||||||
.AESKey)
|
.AESKey)
|
||||||
result.mailContent[m] = encrypted;
|
data.mailContent[m] = encrypted;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
delete data.appendix.AESKey;
|
delete data.appendix.AESKey;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user