fix duplicating subtree with internal links, closes #3813

This commit is contained in:
zadam 2023-04-09 22:45:31 +02:00
parent 293573a0cd
commit 839b172b92
3 changed files with 7 additions and 6 deletions

View File

@ -96,7 +96,7 @@ class BAttribute extends AbstractBeccaEntity {
} }
if (this.type === 'relation' && !(this.value in this.becca.notes)) { if (this.type === 'relation' && !(this.value in this.becca.notes)) {
throw new Error(`Cannot save relation '${this.name}' of note '${this.noteId}' since it target not existing note '${this.value}'.`); throw new Error(`Cannot save relation '${this.name}' of note '${this.noteId}' since it targets not existing note '${this.value}'.`);
} }
} }

View File

@ -841,7 +841,7 @@ function duplicateSubtree(origNoteId, newParentNoteId) {
throw new Error('Duplicating root is not possible'); throw new Error('Duplicating root is not possible');
} }
log.info(`Duplicating ${origNoteId} subtree into ${newParentNoteId}`); log.info(`Duplicating '${origNoteId}' subtree into '${newParentNoteId}'`);
const origNote = becca.notes[origNoteId]; const origNote = becca.notes[origNoteId];
// might be null if orig note is not in the target newParentNoteId // might be null if orig note is not in the target newParentNoteId
@ -919,7 +919,8 @@ function duplicateSubtreeInner(origNote, origBranch, newParentNoteId, noteIdMapp
attr.value = noteIdMapping[attr.value]; attr.value = noteIdMapping[attr.value];
} }
attr.save(); // the relation targets may not be created yet, the mapping is pre-generated
attr.save({skipValidation: true});
} }
for (const childBranch of origNote.getChildBranches()) { for (const childBranch of origNote.getChildBranches()) {