mirror of
				https://github.com/zadam/trilium.git
				synced 2025-10-31 18:36:30 +01:00 
			
		
		
		
	
		
			
	
	
		
			56 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			56 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|  | import appContext from "./app_context.js"; | ||
|  | import noteCreateService from "./note_create.js"; | ||
|  | import treeService from "./tree.js"; | ||
|  | import hoistedNoteService from "./hoisted_note.js"; | ||
|  | import Component from "../widgets/component.js"; | ||
|  | 
 | ||
|  | /** | ||
|  |  * This class contains command executors which logically belong to the NoteTree widget, but for better user experience | ||
|  |  * the keyboard shortcuts must be active on the whole screen and not just on the widget itself, so the executors | ||
|  |  * must be at the root of the component tree. | ||
|  |  */ | ||
|  | export default class MainTreeExecutors extends Component { | ||
|  |     get tree() { | ||
|  |         return appContext.mainTreeWidget; | ||
|  |     } | ||
|  | 
 | ||
|  |     async cloneNotesToCommand() { | ||
|  |         const selectedOrActiveNoteIds = this.tree.getSelectedOrActiveNodes().map(node => node.data.noteId); | ||
|  | 
 | ||
|  |         this.triggerCommand('cloneNoteIdsTo', {noteIds: selectedOrActiveNoteIds}); | ||
|  |     } | ||
|  | 
 | ||
|  |     async moveNotesToCommand() { | ||
|  |         const selectedOrActiveBranchIds = this.tree.getSelectedOrActiveNodes().map(node => node.data.branchId); | ||
|  | 
 | ||
|  |         this.triggerCommand('moveBranchIdsTo', {branchIds: selectedOrActiveBranchIds}); | ||
|  |     } | ||
|  | 
 | ||
|  |     async createNoteIntoCommand() { | ||
|  |         const note = appContext.tabManager.getActiveTabNote(); | ||
|  | 
 | ||
|  |         if (note) { | ||
|  |             await noteCreateService.createNote(note.noteId, { | ||
|  |                 isProtected: note.isProtected, | ||
|  |                 saveSelection: false | ||
|  |             }); | ||
|  |         } | ||
|  |     } | ||
|  | 
 | ||
|  |     async createNoteAfterCommand() { | ||
|  |         const node = this.tree.getActiveNode(); | ||
|  |         const parentNoteId = node.data.parentNoteId; | ||
|  |         const isProtected = await treeService.getParentProtectedStatus(node); | ||
|  | 
 | ||
|  |         if (node.data.noteId === 'root' || node.data.noteId === hoistedNoteService.getHoistedNoteId()) { | ||
|  |             return; | ||
|  |         } | ||
|  | 
 | ||
|  |         await noteCreateService.createNote(parentNoteId, { | ||
|  |             target: 'after', | ||
|  |             targetBranchId: node.data.branchId, | ||
|  |             isProtected: isProtected, | ||
|  |             saveSelection: true | ||
|  |         }); | ||
|  |     } | ||
|  | } |