mirror of
				https://github.com/zadam/trilium.git
				synced 2025-10-31 02:16:05 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			64 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			64 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| import appContext from "./app_context.js";
 | |
| import noteCreateService from "../services/note_create.js";
 | |
| import treeService from "../services/tree.js";
 | |
| import hoistedNoteService from "../services/hoisted_note.js";
 | |
| import Component from "./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 activeNoteContext = appContext.tabManager.getActiveContext();
 | |
| 
 | |
|         if (!activeNoteContext) {
 | |
|             return;
 | |
|         }
 | |
| 
 | |
|         await noteCreateService.createNote(activeNoteContext.notePath, {
 | |
|             isProtected: activeNoteContext.note.isProtected,
 | |
|             saveSelection: false
 | |
|         });
 | |
|     }
 | |
| 
 | |
|     async createNoteAfterCommand() {
 | |
|         const node = this.tree.getActiveNode();
 | |
| 
 | |
|         if (!node) {
 | |
|             return;
 | |
|         }
 | |
| 
 | |
|         const parentNotePath = treeService.getNotePath(node.getParent());
 | |
|         const isProtected = await treeService.getParentProtectedStatus(node);
 | |
| 
 | |
|         if (node.data.noteId === 'root' || node.data.noteId === hoistedNoteService.getHoistedNoteId()) {
 | |
|             return;
 | |
|         }
 | |
| 
 | |
|         await noteCreateService.createNote(parentNotePath, {
 | |
|             target: 'after',
 | |
|             targetBranchId: node.data.branchId,
 | |
|             isProtected: isProtected,
 | |
|             saveSelection: false
 | |
|         });
 | |
|     }
 | |
| }
 |