From d1c896acf4e732fc7681633ff8d3e7b998598583 Mon Sep 17 00:00:00 2001 From: lexx Date: Thu, 14 May 2026 23:10:07 +0300 Subject: [PATCH] rich editor --- front/js/svelte/files/imageserver.js | 2 +- .../js/svelte/libs/CodemirrorMarkdown.svelte | 20 ++++++++++------ front/js/svelte/libs/Trix.svelte | 19 ++++++++------- .../svelte/records/elements/Markdown.svelte | 24 ++----------------- .../svelte/records/elements/RichEditor.svelte | 18 +++++++------- 5 files changed, 36 insertions(+), 47 deletions(-) diff --git a/front/js/svelte/files/imageserver.js b/front/js/svelte/files/imageserver.js index f0afa18..cc3d639 100644 --- a/front/js/svelte/files/imageserver.js +++ b/front/js/svelte/files/imageserver.js @@ -32,7 +32,7 @@ export function htmlurl(channel, file, preset) { } else if (file.mime === "image/svg+xml") { html = `${file.path}`; } else { - html = `${file.originalName}`; + html = `${file.filename}`; } return html; diff --git a/front/js/svelte/libs/CodemirrorMarkdown.svelte b/front/js/svelte/libs/CodemirrorMarkdown.svelte index cb7d10c..88f7ec7 100644 --- a/front/js/svelte/libs/CodemirrorMarkdown.svelte +++ b/front/js/svelte/libs/CodemirrorMarkdown.svelte @@ -8,19 +8,25 @@ import { indentWithTab } from "@codemirror/commands"; import { markdown } from "@codemirror/lang-markdown"; import { lintKeymap } from "@codemirror/lint"; + import { fileurl, presetUrl } from "../files/imageserver"; let parentElement; let codeMirrorView; export let value; export let editable = true; - export function insertMedia(info) { - let insertText = ""; - if (info.file.width > 0) { - insertText = `![${info.file.filename}](${info.url})`; - } else { - insertText = `[${info.file.filename}](${info.originalUrl})`; - } + export function insertMedia(channel, files, presetPath) { + const insertText = files.reduce((text, aFile) => { + const url = + aFile.width > 0 + ? presetUrl(channel, aFile, presetPath) + : fileurl(channel, aFile); + + let addTest = `![${aFile.filename}](${url})`; + + return text + "\n" + addTest; + }, ""); + const cursor = codeMirrorView.state.selection.main.head; const transaction = codeMirrorView.state.update({ changes: { diff --git a/front/js/svelte/libs/Trix.svelte b/front/js/svelte/libs/Trix.svelte index df908ee..5e68d1a 100644 --- a/front/js/svelte/libs/Trix.svelte +++ b/front/js/svelte/libs/Trix.svelte @@ -11,15 +11,16 @@ value = e.target.value; } - export function insertMedia(info) { - if (info.file.width > 0) { - var attachment = new Trix.Attachment({ content: info.html }); - editor.editor.insertAttachment(attachment); - } else { - editor.editor.insertHTML( - `${info.file.filename}`, - ); - } + export function insertMedia(html) { + console.log({ html }); + var attachment = new Trix.Attachment({ content: html }); + editor.editor.insertAttachment(attachment); + // if (info.file.width > 0) { + // var attachment = new Trix.Attachment({ content: html }); + // editor.editor.insertAttachment(attachment); + // } else { + // editor.editor.insertHTML(html); + // } } onMount(() => { diff --git a/front/js/svelte/records/elements/Markdown.svelte b/front/js/svelte/records/elements/Markdown.svelte index 67a751b..5eab54f 100644 --- a/front/js/svelte/records/elements/Markdown.svelte +++ b/front/js/svelte/records/elements/Markdown.svelte @@ -15,34 +15,14 @@ $: errorMessage = getErrorMessage(validationErrors, field.name); let editor; - function insertMedia(e) { - editor.insertMedia(e.detail); - } - function onFilesInserted(e) { - console.log(e.detail); const presetPath = e.detail.preset.path; - - e.detail.files.map((aFile) => { - let html = htmlurl(channel, record, presetPath); - - editor.insertMedia({ - html: html, - url: presetUrl(channel, aFile, presetPath), - originalUrl: channel.filesUrl + "/" + aFile.path, - file: aFile, - }); - }); + editor.insertMedia(channel, e.detail.files, presetPath); }
- { + const html = htmlurl(channel, aFile, presetPath); + editor.insertMedia(html); + }); }
- + {#if errorMessage}