diff --git a/public/javascripts/context_menu.js b/public/javascripts/context_menu.js index 15c659fa9..033b63888 100644 --- a/public/javascripts/context_menu.js +++ b/public/javascripts/context_menu.js @@ -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 } diff --git a/public/javascripts/tree_changes.js b/public/javascripts/tree_changes.js index 960e42930..66eaa83c3 100644 --- a/public/javascripts/tree_changes.js +++ b/public/javascripts/tree_changes.js @@ -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);