mirror of
				https://github.com/TriliumNext/Notes.git
				synced 2025-11-04 15:11:31 +08:00 
			
		
		
		
	deleting a note will close all tabs containing the note
This commit is contained in:
		
							parent
							
								
									aead6a44de
								
							
						
					
					
						commit
						48b4488a58
					
				@ -4,6 +4,7 @@ import server from './server.js';
 | 
				
			|||||||
import infoService from "./info.js";
 | 
					import infoService from "./info.js";
 | 
				
			||||||
import treeCache from "./tree_cache.js";
 | 
					import treeCache from "./tree_cache.js";
 | 
				
			||||||
import hoistedNoteService from "./hoisted_note.js";
 | 
					import hoistedNoteService from "./hoisted_note.js";
 | 
				
			||||||
 | 
					import noteDetailService from "./note_detail.js";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
async function moveBeforeNode(nodesToMove, beforeNode) {
 | 
					async function moveBeforeNode(nodesToMove, beforeNode) {
 | 
				
			||||||
    nodesToMove = await filterRootNote(nodesToMove);
 | 
					    nodesToMove = await filterRootNote(nodesToMove);
 | 
				
			||||||
@ -85,7 +86,11 @@ async function deleteNodes(nodes) {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    for (const node of nodes) {
 | 
					    for (const node of nodes) {
 | 
				
			||||||
        await server.remove('branches/' + node.data.branchId);
 | 
					        const {noteDeleted} = await server.remove('branches/' + node.data.branchId);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (noteDeleted) {
 | 
				
			||||||
 | 
					            noteDetailService.noteDeleted(node.data.noteId);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // following code assumes that nodes contain only top-most selected nodes - getSelectedNodes has been
 | 
					    // following code assumes that nodes contain only top-most selected nodes - getSelectedNodes has been
 | 
				
			||||||
 | 
				
			|||||||
@ -267,7 +267,7 @@ async function loadNote(noteId) {
 | 
				
			|||||||
async function filterTabs(noteId) {
 | 
					async function filterTabs(noteId) {
 | 
				
			||||||
    for (const tc of tabContexts) {
 | 
					    for (const tc of tabContexts) {
 | 
				
			||||||
        if (tc.notePath && !tc.notePath.split("/").includes(noteId)) {
 | 
					        if (tc.notePath && !tc.notePath.split("/").includes(noteId)) {
 | 
				
			||||||
            await tabRow.removeTab(tc.tab);
 | 
					            await tabRow.removeTab(tc.$tab[0]);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -281,6 +281,14 @@ async function filterTabs(noteId) {
 | 
				
			|||||||
    await saveOpenTabs();
 | 
					    await saveOpenTabs();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					async function noteDeleted(noteId) {
 | 
				
			||||||
 | 
					    for (const tc of tabContexts) {
 | 
				
			||||||
 | 
					        if (tc.notePath && tc.notePath.split("/").includes(noteId)) {
 | 
				
			||||||
 | 
					            await tabRow.removeTab(tc.$tab[0]);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function focusOnTitle() {
 | 
					function focusOnTitle() {
 | 
				
			||||||
    getActiveTabContext().$noteTitle.focus();
 | 
					    getActiveTabContext().$noteTitle.focus();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -496,5 +504,6 @@ export default {
 | 
				
			|||||||
    activateTabContext,
 | 
					    activateTabContext,
 | 
				
			||||||
    clearOpenTabsTask,
 | 
					    clearOpenTabsTask,
 | 
				
			||||||
    filterTabs,
 | 
					    filterTabs,
 | 
				
			||||||
    openEmptyTab
 | 
					    openEmptyTab,
 | 
				
			||||||
 | 
					    noteDeleted
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
@ -853,7 +853,6 @@ export default {
 | 
				
			|||||||
    loadTree,
 | 
					    loadTree,
 | 
				
			||||||
    treeInitialized,
 | 
					    treeInitialized,
 | 
				
			||||||
    setExpandedToServer,
 | 
					    setExpandedToServer,
 | 
				
			||||||
    getHashValueFromAddress,
 | 
					 | 
				
			||||||
    getNodesByNoteId,
 | 
					    getNodesByNoteId,
 | 
				
			||||||
    checkFolderStatus,
 | 
					    checkFolderStatus,
 | 
				
			||||||
    reloadNote,
 | 
					    reloadNote,
 | 
				
			||||||
 | 
				
			|||||||
@ -102,7 +102,9 @@ async function setExpanded(req) {
 | 
				
			|||||||
async function deleteBranch(req) {
 | 
					async function deleteBranch(req) {
 | 
				
			||||||
    const branch = await repository.getBranch(req.params.branchId);
 | 
					    const branch = await repository.getBranch(req.params.branchId);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    await notes.deleteNote(branch);
 | 
					    return {
 | 
				
			||||||
 | 
					        noteDeleted: await notes.deleteNote(branch)
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
async function setPrefix(req) {
 | 
					async function setPrefix(req) {
 | 
				
			||||||
 | 
				
			|||||||
@ -373,9 +373,10 @@ async function updateNote(noteId, noteUpdates) {
 | 
				
			|||||||
    await protectNoteRevisions(note);
 | 
					    await protectNoteRevisions(note);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/** @return {boolean} - true if note has been deleted, false otherwise */
 | 
				
			||||||
async function deleteNote(branch) {
 | 
					async function deleteNote(branch) {
 | 
				
			||||||
    if (!branch || branch.isDeleted) {
 | 
					    if (!branch || branch.isDeleted) {
 | 
				
			||||||
        return;
 | 
					        return false;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (branch.branchId === 'root'
 | 
					    if (branch.branchId === 'root'
 | 
				
			||||||
@ -418,6 +419,11 @@ async function deleteNote(branch) {
 | 
				
			|||||||
            link.isDeleted = true;
 | 
					            link.isDeleted = true;
 | 
				
			||||||
            await link.save();
 | 
					            await link.save();
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return true;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    else {
 | 
				
			||||||
 | 
					        return false;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user