mirror of
				https://github.com/zadam/trilium.git
				synced 2025-11-04 04:16:17 +01:00 
			
		
		
		
	fix order of pasted notes when doing multi-select operations
This commit is contained in:
		@@ -6,20 +6,18 @@ const contextMenu = (function() {
 | 
			
		||||
    let clipboardIds = [];
 | 
			
		||||
    let clipboardMode = null;
 | 
			
		||||
 | 
			
		||||
    function pasteAfter(node) {
 | 
			
		||||
    async function pasteAfter(node) {
 | 
			
		||||
        if (clipboardMode === 'cut') {
 | 
			
		||||
            for (const nodeKey of clipboardIds) {
 | 
			
		||||
                const subjectNode = treeUtils.getNodeByKey(nodeKey);
 | 
			
		||||
            const nodes = clipboardIds.map(nodeKey => treeUtils.getNodeByKey(nodeKey));
 | 
			
		||||
 | 
			
		||||
                treeChanges.moveAfterNode([subjectNode], node);
 | 
			
		||||
            }
 | 
			
		||||
            await treeChanges.moveAfterNode(nodes, node);
 | 
			
		||||
 | 
			
		||||
            clipboardIds = [];
 | 
			
		||||
            clipboardMode = null;
 | 
			
		||||
        }
 | 
			
		||||
        else if (clipboardMode === 'copy') {
 | 
			
		||||
            for (const noteId of clipboardIds) {
 | 
			
		||||
                cloning.cloneNoteAfter(noteId, node.data.note_tree_id);
 | 
			
		||||
                await cloning.cloneNoteAfter(noteId, node.data.note_tree_id);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            // copy will keep clipboardIds and clipboardMode so it's possible to paste into multiple places
 | 
			
		||||
@@ -32,20 +30,18 @@ const contextMenu = (function() {
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    function pasteInto(node) {
 | 
			
		||||
    async function pasteInto(node) {
 | 
			
		||||
        if (clipboardMode === 'cut') {
 | 
			
		||||
            for (const nodeKey of clipboardIds) {
 | 
			
		||||
                const subjectNode = treeUtils.getNodeByKey(nodeKey);
 | 
			
		||||
            const nodes = clipboardIds.map(nodeKey => treeUtils.getNodeByKey(nodeKey));
 | 
			
		||||
 | 
			
		||||
                treeChanges.moveToNode([subjectNode], node);
 | 
			
		||||
            }
 | 
			
		||||
            await treeChanges.moveToNode(nodes, node);
 | 
			
		||||
 | 
			
		||||
            clipboardIds = [];
 | 
			
		||||
            clipboardMode = null;
 | 
			
		||||
        }
 | 
			
		||||
        else if (clipboardMode === 'copy') {
 | 
			
		||||
            for (const noteId of clipboardIds) {
 | 
			
		||||
                cloning.cloneNoteTo(noteId, node.data.note_id);
 | 
			
		||||
                await cloning.cloneNoteTo(noteId, node.data.note_id);
 | 
			
		||||
            }
 | 
			
		||||
            // copy will keep clipboardIds and clipboardMode so it's possible to paste into multiple places
 | 
			
		||||
        }
 | 
			
		||||
 
 | 
			
		||||
@@ -15,6 +15,8 @@ const treeChanges = (function() {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    async function moveAfterNode(nodesToMove, afterNode) {
 | 
			
		||||
        nodesToMove.reverse(); // need to reverse to keep the note order
 | 
			
		||||
 | 
			
		||||
        for (const nodeToMove of nodesToMove) {
 | 
			
		||||
            const resp = await server.put('tree/' + nodeToMove.data.note_tree_id + '/move-after/' + afterNode.data.note_tree_id);
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user