fix mentions

This commit is contained in:
zadam 2023-06-29 12:19:01 +02:00
parent b7c37fdf58
commit 788841d256
7 changed files with 23 additions and 26 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -247,7 +247,7 @@ class AbstractBeccaEntity {
throw new Error(`Cannot find content for ${this.constructor.primaryKeyName} '${this[this.constructor.primaryKeyName]}', blobId '${this.blobId}'`);
}
return blobService.processContent(row.content);
return blobService.processContent(row.content, this.isProtected, this.hasStringContent());
}
/**

View File

@ -1580,23 +1580,25 @@ class BNote extends AbstractBeccaEntity {
dateCreated: dateUtils.localNowDateTime()
}, true);
revision.save(); // to generate revisionId which is then used to save attachments
revision.save(); // to generate revisionId, which is then used to save attachments
for (const noteAttachment of this.getAttachments()) {
if (noteAttachment.utcDateScheduledForErasureSince) {
continue;
if (this.type === 'text') {
for (const noteAttachment of this.getAttachments()) {
if (noteAttachment.utcDateScheduledForErasureSince) {
continue;
}
const revisionAttachment = noteAttachment.copy();
revisionAttachment.parentId = revision.revisionId;
revisionAttachment.setContent(noteAttachment.getContent(), {forceSave: true});
// content is rewritten to point to the revision attachments
noteContent = noteContent.replaceAll(`attachments/${noteAttachment.attachmentId}`, `attachments/${revisionAttachment.attachmentId}`);
}
const revisionAttachment = noteAttachment.copy();
revisionAttachment.parentId = revision.revisionId;
revisionAttachment.setContent(noteAttachment.getContent(), { forceSave: true });
// content is rewritten to point to the revision attachments
noteContent = noteContent.replaceAll(`attachments/${noteAttachment.attachmentId}`, `attachments/${revisionAttachment.attachmentId}`);
revision.setContent(noteContent, {forceSave: true});
}
revision.setContent(noteContent, { forceSave: true });
return revision;
});
}

View File

@ -4,6 +4,7 @@ import server from "./server.js";
import libraryLoader from "./library_loader.js";
import ws from "./ws.js";
import froca from "./froca.js";
import linkService from "./link.js";
function setupGlobs() {
window.glob.PROFILING_LOG = false;
@ -13,6 +14,8 @@ function setupGlobs() {
window.glob.getComponentByEl = el => appContext.getComponentByEl(el);
window.glob.getHeaders = server.getHeaders;
window.glob.getReferenceLinkTitle = href => linkService.getReferenceLinkTitle(href);
window.glob.getReferenceLinkTitleSync = href => linkService.getReferenceLinkTitleSync(href);
// required for ESLint plugin and CKEditor
window.glob.getActiveContextNote = () => appContext.tabManager.getActiveContextNote();

View File

@ -454,8 +454,8 @@ export default class AttributeEditorWidget extends NoteContextAwareWidget {
return clickIndex;
}
async loadReferenceLinkTitle($el) {
const {noteId} = linkService.parseNavigationStateFromUrl($el.find("a").attr("href"));
async loadReferenceLinkTitle($el, href) {
const {noteId} = linkService.parseNavigationStateFromUrl(href);
const note = await froca.getNote(noteId, true);
const title = note ? note.title : '[missing]';
@ -468,7 +468,7 @@ export default class AttributeEditorWidget extends NoteContextAwareWidget {
}
async renderOwnedAttributes(ownedAttributes, saved) {
// attrs are not resorted if position changes after initial load
// attrs are not resorted if position changes after the initial load
ownedAttributes.sort((a, b) => a.position < b.position ? -1 : 1);
let htmlAttrs = (await attributeRenderer.renderAttributes(ownedAttributes, true)).html();

View File

@ -101,14 +101,6 @@ export default class AbstractTextTypeWidget extends TypeWidget {
await linkService.loadReferenceLinkTitle($el, href);
}
async getReferenceLinkTitle(href) {
return await linkService.getReferenceLinkTitle(href);
}
getReferenceLinkTitleSync(href) {
return linkService.getReferenceLinkTitleSync(href);
}
refreshIncludedNote($container, noteId) {
if ($container) {
$container.find(`section[data-note-id="${noteId}"]`).each((_, el) => {