when reloading tree after sync, decrypt tree items if in encryption context

This commit is contained in:
azivner 2017-11-03 21:20:06 -04:00
parent cf45594d89
commit bd71547258
2 changed files with 36 additions and 27 deletions

View File

@ -72,6 +72,22 @@ function computeScrypt(password, salt, callback) {
}); });
} }
function decryptTreeItems() {
if (!isEncryptionAvailable()) {
return;
}
for (const noteId of globalAllNoteIds) {
const note = getNodeByKey(noteId);
if (note.data.encryption > 0) {
const title = decryptString(note.data.note_title);
note.setTitle(title);
}
}
}
$("#encryption-password-form").submit(() => { $("#encryption-password-form").submit(() => {
const password = $("#encryption-password").val(); const password = $("#encryption-password").val();
$("#encryption-password").val(""); $("#encryption-password").val("");
@ -81,15 +97,7 @@ $("#encryption-password-form").submit(() => {
globalDataKey = key; globalDataKey = key;
for (const noteId of globalAllNoteIds) { decryptTreeItems();
const note = getNodeByKey(noteId);
if (note.data.encryption > 0) {
const title = decryptString(note.data.note_title);
note.setTitle(title);
}
}
if (globalEncryptionDeferred !== null) { if (globalEncryptionDeferred !== null) {
globalEncryptionDeferred.resolve(); globalEncryptionDeferred.resolve();
@ -97,11 +105,11 @@ $("#encryption-password-form").submit(() => {
globalEncryptionDeferred = null; globalEncryptionDeferred = null;
} }
}) })
.catch(reason => { .catch(reason => {
console.log(reason); console.log(reason);
alert(reason); alert(reason);
}); });
return false; return false;
}); });

View File

@ -1,5 +1,5 @@
function checkStatus() { async function checkStatus() {
$.ajax({ const resp = await $.ajax({
url: baseApiUrl + 'status', url: baseApiUrl + 'status',
type: 'POST', type: 'POST',
contentType: "application/json", contentType: "application/json",
@ -8,18 +8,6 @@ function checkStatus() {
currentNoteId: globalCurrentNote ? globalCurrentNote.detail.note_id : null, currentNoteId: globalCurrentNote ? globalCurrentNote.detail.note_id : null,
currentNoteDateModified: globalCurrentNoteLoadTime currentNoteDateModified: globalCurrentNoteLoadTime
}), }),
success: resp => {
if (resp.changedTree) {
loadTree().then(resp => {
console.log("Reloading tree because of background changes");
// this will also reload the note content
globalTree.fancytree('getTree').reload(resp.notes);
});
}
$("#changesToPushCount").html(resp.changesToPushCount);
},
statusCode: { statusCode: {
401: () => { 401: () => {
// if the user got logged out then we should display the page // if the user got logged out then we should display the page
@ -32,6 +20,19 @@ function checkStatus() {
} }
} }
}); });
if (resp.changedTree) {
const treeResp = await loadTree();
console.log("Reloading tree because of background changes");
// this will also reload the note content
await globalTree.fancytree('getTree').reload(treeResp.notes);
decryptTreeItems();
}
$("#changesToPushCount").html(resp.changesToPushCount);
} }
setInterval(checkStatus, 5 * 1000); setInterval(checkStatus, 5 * 1000);