diff --git a/config/current.ver b/config/current.ver index b01de29..95ce23d 100644 --- a/config/current.ver +++ b/config/current.ver @@ -1 +1 @@ -1.1.16 \ No newline at end of file +1.1.17 \ No newline at end of file diff --git a/public/assets/js/bridge/rte-editor.js b/public/assets/js/bridge/rte-editor.js index f715082..2d6b857 100644 --- a/public/assets/js/bridge/rte-editor.js +++ b/public/assets/js/bridge/rte-editor.js @@ -758,6 +758,14 @@ console.log('editor.getHtml', gjsHtml); console.log('serializeHtml', serHtml); console.groupEnd(); + console.warn('[EDIT SUMMARY]', { + source: 'rte', + modelId: component && (component.getId ? component.getId() : component.get && component.get('id')), + modelContentLen: String(component && component.get ? component.get('content') : '').length, + viewHtmlLen: String(component?.view?.el?.innerHTML || '').length, + editorHtmlLen: String(gjsHtml || '').length, + serializeHtmlLen: String(serHtml || '').length, + }); } catch {} } closeModal(); diff --git a/public/editor/bridge-core.js b/public/editor/bridge-core.js index 55ea207..0f11ecd 100644 --- a/public/editor/bridge-core.js +++ b/public/editor/bridge-core.js @@ -436,6 +436,17 @@ if (!editor || !editor.Canvas || !editor.Canvas.getBody) return; const logComponentInput = (model, label) => { try { + // Force-sync direct edits from view -> model before logging. + const viewEl = model && model.view && model.view.el ? model.view.el : null; + if (model && model.get && viewEl && !model.__bridgeUiSyncing) { + const viewHtml = String(viewEl.innerHTML || '').trim(); + const modelHtml = String(model.get('content') || '').trim(); + if (viewHtml && viewHtml !== modelHtml) { + model.__bridgeUiSyncing = true; + try { model.set('content', viewHtml); } catch {} + model.__bridgeUiSyncing = false; + } + } const selectedEl = model && model.view && model.view.el; const viewOuter = selectedEl ? String(selectedEl.outerHTML || '') : ''; const modelContent = model && model.get ? String(model.get('content') || '') : ''; @@ -450,6 +461,16 @@ editorHtmlLen: editorHtml.length, editorHtml: editorHtml.slice(0, 1000), }); + if (label === 'DESELECT' && model && model.get && model.get('type') === 'text') { + const viewHtml = selectedEl ? String(selectedEl.innerHTML || '') : ''; + console.warn('[EDIT SUMMARY]', { + source: 'ui', + modelId: model && (model.getId ? model.getId() : model.get && model.get('id')), + modelContentLen: modelContent.length, + viewHtmlLen: viewHtml.length, + editorHtmlLen: editorHtml.length, + }); + } } catch {} }; if (!editor.__bridgeUiEditDebugBound) {