mirror of
				https://github.com/TriliumNext/Notes.git
				synced 2025-10-31 04:51:31 +08: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
	 azivner
						azivner