mirror of
https://github.com/zadam/trilium.git
synced 2025-02-25 07:25:32 +08:00
allow duplicating multiple notes at once, closes #1259
This commit is contained in:
parent
1fcb99fa60
commit
a577485e42
3 changed files with 16 additions and 5 deletions
|
@ -95,8 +95,8 @@ class TreeContextMenu {
|
||||||
enabled: !clipboard.isClipboardEmpty() && notSearch && noSelectedNotes },
|
enabled: !clipboard.isClipboardEmpty() && notSearch && noSelectedNotes },
|
||||||
{ title: 'Paste after', command: "pasteNotesAfterFromClipboard", uiIcon: "paste",
|
{ title: 'Paste after', command: "pasteNotesAfterFromClipboard", uiIcon: "paste",
|
||||||
enabled: !clipboard.isClipboardEmpty() && isNotRoot && !isHoisted && parentNotSearch && noSelectedNotes },
|
enabled: !clipboard.isClipboardEmpty() && isNotRoot && !isHoisted && parentNotSearch && noSelectedNotes },
|
||||||
{ title: "Duplicate note here", command: "duplicateNote", uiIcon: "empty",
|
{ title: "Duplicate note(s) here", command: "duplicateNote", uiIcon: "empty",
|
||||||
enabled: noSelectedNotes && parentNotSearch && isNotRoot && !isHoisted && (!note.isProtected || protectedSessionHolder.isProtectedSessionAvailable()) },
|
enabled: parentNotSearch && isNotRoot && !isHoisted },
|
||||||
{ title: "----" },
|
{ title: "----" },
|
||||||
{ title: "Export", command: "exportNote", uiIcon: "empty",
|
{ title: "Export", command: "exportNote", uiIcon: "empty",
|
||||||
enabled: notSearch && noSelectedNotes },
|
enabled: notSearch && noSelectedNotes },
|
||||||
|
|
|
@ -15,6 +15,7 @@ import clipboard from "../services/clipboard.js";
|
||||||
import protectedSessionService from "../services/protected_session.js";
|
import protectedSessionService from "../services/protected_session.js";
|
||||||
import syncService from "../services/sync.js";
|
import syncService from "../services/sync.js";
|
||||||
import options from "../services/options.js";
|
import options from "../services/options.js";
|
||||||
|
import protectedSessionHolder from "../services/protected_session_holder.js";
|
||||||
|
|
||||||
const TPL = `
|
const TPL = `
|
||||||
<div class="tree-wrapper">
|
<div class="tree-wrapper">
|
||||||
|
@ -1362,8 +1363,18 @@ export default class NoteTreeWidget extends TabAwareWidget {
|
||||||
}
|
}
|
||||||
|
|
||||||
duplicateNoteCommand({node}) {
|
duplicateNoteCommand({node}) {
|
||||||
const branch = treeCache.getBranch(node.data.branchId);
|
const nodesToDuplicate = this.getSelectedOrActiveNodes(node);
|
||||||
|
|
||||||
noteCreateService.duplicateNote(node.data.noteId, branch.parentNoteId);
|
for (const nodeToDuplicate of nodesToDuplicate) {
|
||||||
|
const note = treeCache.getNoteFromCache(nodeToDuplicate.data.noteId);
|
||||||
|
|
||||||
|
if (note.isProtected && !protectedSessionHolder.isProtectedSessionAvailable()) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
const branch = treeCache.getBranch(nodeToDuplicate.data.branchId);
|
||||||
|
|
||||||
|
noteCreateService.duplicateNote(nodeToDuplicate.data.noteId, branch.parentNoteId);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -727,7 +727,7 @@ function duplicateNote(noteId, parentNoteId) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// might be null if orig note is not in the target parentNoteId
|
// might be null if orig note is not in the target parentNoteId
|
||||||
const origBranch = (origNote.getBranches()).find(branch => branch.parentNoteId === parentNoteId);
|
const origBranch = origNote.getBranches().find(branch => branch.parentNoteId === parentNoteId);
|
||||||
|
|
||||||
const newNote = new Note(origNote);
|
const newNote = new Note(origNote);
|
||||||
newNote.noteId = undefined; // force creation of new note
|
newNote.noteId = undefined; // force creation of new note
|
||||||
|
|
Loading…
Reference in a new issue