restore revision with attachments

This commit is contained in:
zadam
2023-04-19 22:47:33 +02:00
parent 8b46d6c718
commit c6c162cdda
4 changed files with 39 additions and 10 deletions

View File

@@ -95,11 +95,27 @@ function restoreNoteRevision(req) {
if (noteRevision) {
const note = noteRevision.getNote();
note.saveNoteRevision();
sql.transactional(() => {
note.saveNoteRevision();
note.title = noteRevision.title;
note.setContent(noteRevision.getContent());
note.save();
for (const oldNoteAttachment of note.getAttachments()) {
oldNoteAttachment.markAsDeleted();
}
let revisionContent = noteRevision.getContent();
for (const revisionAttachment of noteRevision.getAttachments()) {
const noteAttachment = revisionAttachment.copy();
noteAttachment.parentId = note.noteId;
noteAttachment.setContent(revisionAttachment.getContent(), { forceSave: true });
// content is rewritten to point to the restored revision attachments
revisionContent = revisionContent.replaceAll(`attachments/${revisionAttachment.attachmentId}`, `attachments/${noteAttachment.attachmentId}`);
}
note.title = noteRevision.title;
note.setContent(revisionContent, { forceSave: true });
});
}
}