mirror of
https://github.com/zadam/trilium.git
synced 2025-03-01 14:22:32 +01:00
unprotecting note outside of protected session is not forbidden because it could overwrite previous note
This commit is contained in:
parent
145efe67c3
commit
a42bbba0e5
@ -119,11 +119,12 @@ async function saveNoteIfChanged() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function setNoteBackgroundIfProtected(note) {
|
function setNoteBackgroundIfProtected(note) {
|
||||||
const isProtected = !!note.isProtected;
|
const isProtected = note.isProtected;
|
||||||
|
|
||||||
$noteDetailWrapper.toggleClass("protected", isProtected);
|
$noteDetailWrapper.toggleClass("protected", isProtected);
|
||||||
$protectButton.toggleClass("active", isProtected);
|
$protectButton.toggleClass("active", isProtected);
|
||||||
$unprotectButton.toggleClass("active", !isProtected);
|
$unprotectButton.toggleClass("active", !isProtected);
|
||||||
|
$unprotectButton.prop("disabled", !protectedSessionHolder.isProtectedSessionAvailable());
|
||||||
}
|
}
|
||||||
|
|
||||||
let isNewNoteCreated = false;
|
let isNewNoteCreated = false;
|
||||||
@ -157,8 +158,6 @@ async function loadNoteDetail(noteId) {
|
|||||||
|
|
||||||
setNoteBackgroundIfProtected(currentNote);
|
setNoteBackgroundIfProtected(currentNote);
|
||||||
|
|
||||||
await handleProtectedSession();
|
|
||||||
|
|
||||||
$noteDetailWrapper.show();
|
$noteDetailWrapper.show();
|
||||||
|
|
||||||
noteChangeDisabled = true;
|
noteChangeDisabled = true;
|
||||||
@ -171,6 +170,8 @@ async function loadNoteDetail(noteId) {
|
|||||||
|
|
||||||
$noteDetailComponents.hide();
|
$noteDetailComponents.hide();
|
||||||
|
|
||||||
|
await handleProtectedSession();
|
||||||
|
|
||||||
await getComponent(currentNote.type).show();
|
await getComponent(currentNote.type).show();
|
||||||
}
|
}
|
||||||
finally {
|
finally {
|
||||||
|
@ -32,6 +32,7 @@ function ensureProtectedSession(requireProtectedSession, modal) {
|
|||||||
const dfd = $.Deferred();
|
const dfd = $.Deferred();
|
||||||
|
|
||||||
if (requireProtectedSession && !protectedSessionHolder.isProtectedSessionAvailable()) {
|
if (requireProtectedSession && !protectedSessionHolder.isProtectedSessionAvailable()) {
|
||||||
|
// using deferred instead of promise because it allows resolving from outside
|
||||||
protectedSessionDeferred = dfd;
|
protectedSessionDeferred = dfd;
|
||||||
|
|
||||||
if (treeService.getCurrentNode().data.isProtected) {
|
if (treeService.getCurrentNode().data.isProtected) {
|
||||||
@ -39,7 +40,6 @@ function ensureProtectedSession(requireProtectedSession, modal) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
$dialog.dialog({
|
$dialog.dialog({
|
||||||
// modal: modal,
|
|
||||||
// everything is now non-modal, because modal dialog caused weird high CPU usage on opening
|
// everything is now non-modal, because modal dialog caused weird high CPU usage on opening
|
||||||
// and tearing of text input
|
// and tearing of text input
|
||||||
modal: false,
|
modal: false,
|
||||||
@ -128,7 +128,14 @@ async function unprotectNoteAndSendToServer() {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
await ensureProtectedSession(true, true);
|
if (!protectedSessionHolder.isProtectedSessionAvailable()) {
|
||||||
|
console.log("Unprotecting notes outside of protected session is not allowed.");
|
||||||
|
// the reason is that it's not easy to handle even with ensureProtectedSession,
|
||||||
|
// because we would first have to make sure the note is loaded and only then unprotect
|
||||||
|
// we used to have a bug where we would overwrite the previous note with unprotected content.
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
const note = noteDetailService.getCurrentNote();
|
const note = noteDetailService.getCurrentNote();
|
||||||
note.isProtected = false;
|
note.isProtected = false;
|
||||||
|
@ -419,7 +419,7 @@ function scrollToCurrentNote() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function setBranchBackgroundBasedOnProtectedStatus(noteId) {
|
function setBranchBackgroundBasedOnProtectedStatus(noteId) {
|
||||||
getNodesByNoteId(noteId).map(node => node.toggleClass("protected", !!node.data.isProtected));
|
getNodesByNoteId(noteId).map(node => node.toggleClass("protected", node.data.isProtected));
|
||||||
}
|
}
|
||||||
|
|
||||||
function setProtected(noteId, isProtected) {
|
function setProtected(noteId, isProtected) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user