diff --git a/public/assets/js/bridge/rte-editor.js b/public/assets/js/bridge/rte-editor.js index 4f3d50d..c24d620 100644 --- a/public/assets/js/bridge/rte-editor.js +++ b/public/assets/js/bridge/rte-editor.js @@ -71,6 +71,27 @@ const isTextLike = (component) => !!(component && component.is && (component.is('text') || component.is('button') || component.is('link'))); + const logConsoleSnapshot = (editor, component, label) => { + try { + const viewEl = component && component.view ? component.view.el : null; + const modelContent = component && component.get ? String(component.get('content') || '') : ''; + const editorHtml = editor && typeof editor.getHtml === 'function' ? String(editor.getHtml() || '') : ''; + const maxLen = 1000; + console.log(`[RTE DEBUG] ${label}`, { + modelId: component && (component.getId ? component.getId() : component.get && component.get('id')), + modelType: component && component.get ? component.get('type') : undefined, + modelContentLen: modelContent.length, + modelContent: modelContent.slice(0, maxLen), + viewHtmlLen: viewEl ? String(viewEl.innerHTML || '').length : 0, + viewHtml: viewEl ? String(viewEl.innerHTML || '').slice(0, maxLen) : '', + viewOuterLen: viewEl ? String(viewEl.outerHTML || '').length : 0, + viewOuter: viewEl ? String(viewEl.outerHTML || '').slice(0, maxLen) : '', + editorHtmlLen: editorHtml.length, + editorHtml: editorHtml.slice(0, maxLen), + }); + } catch {} + }; + const applyContentToComponent = (editor, component, html) => { if (!component) return; const content = String(html || ''); @@ -289,7 +310,9 @@ const rawHtml = content.innerHTML || ''; const html = sanitizeInlineHtml(rawHtml, content.textContent || ''); component.__bridgeRteLastContent = html; + logConsoleSnapshot(editor, component, 'before-save'); applyContentToComponent(editor, component, html); + logConsoleSnapshot(editor, component, 'after-save'); closeModal(); }); @@ -346,7 +369,9 @@ const current = String(model.get('content') || '').trim(); if (!current || current === '
' || current === '