mirror of
https://github.com/zadam/trilium.git
synced 2025-06-06 18:08:33 +02:00
fix order of pasted notes when doing multi-select operations
This commit is contained in:
parent
fcd11c341c
commit
f42835e083
@ -6,20 +6,18 @@ const contextMenu = (function() {
|
|||||||
let clipboardIds = [];
|
let clipboardIds = [];
|
||||||
let clipboardMode = null;
|
let clipboardMode = null;
|
||||||
|
|
||||||
function pasteAfter(node) {
|
async function pasteAfter(node) {
|
||||||
if (clipboardMode === 'cut') {
|
if (clipboardMode === 'cut') {
|
||||||
for (const nodeKey of clipboardIds) {
|
const nodes = clipboardIds.map(nodeKey => treeUtils.getNodeByKey(nodeKey));
|
||||||
const subjectNode = treeUtils.getNodeByKey(nodeKey);
|
|
||||||
|
|
||||||
treeChanges.moveAfterNode([subjectNode], node);
|
await treeChanges.moveAfterNode(nodes, node);
|
||||||
}
|
|
||||||
|
|
||||||
clipboardIds = [];
|
clipboardIds = [];
|
||||||
clipboardMode = null;
|
clipboardMode = null;
|
||||||
}
|
}
|
||||||
else if (clipboardMode === 'copy') {
|
else if (clipboardMode === 'copy') {
|
||||||
for (const noteId of clipboardIds) {
|
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
|
// 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') {
|
if (clipboardMode === 'cut') {
|
||||||
for (const nodeKey of clipboardIds) {
|
const nodes = clipboardIds.map(nodeKey => treeUtils.getNodeByKey(nodeKey));
|
||||||
const subjectNode = treeUtils.getNodeByKey(nodeKey);
|
|
||||||
|
|
||||||
treeChanges.moveToNode([subjectNode], node);
|
await treeChanges.moveToNode(nodes, node);
|
||||||
}
|
|
||||||
|
|
||||||
clipboardIds = [];
|
clipboardIds = [];
|
||||||
clipboardMode = null;
|
clipboardMode = null;
|
||||||
}
|
}
|
||||||
else if (clipboardMode === 'copy') {
|
else if (clipboardMode === 'copy') {
|
||||||
for (const noteId of clipboardIds) {
|
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
|
// 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) {
|
async function moveAfterNode(nodesToMove, afterNode) {
|
||||||
|
nodesToMove.reverse(); // need to reverse to keep the note order
|
||||||
|
|
||||||
for (const nodeToMove of nodesToMove) {
|
for (const nodeToMove of nodesToMove) {
|
||||||
const resp = await server.put('tree/' + nodeToMove.data.note_tree_id + '/move-after/' + afterNode.data.note_tree_id);
|
const resp = await server.put('tree/' + nodeToMove.data.note_tree_id + '/move-after/' + afterNode.data.note_tree_id);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user