This commit is contained in:
2026-01-19 00:56:28 +01:00
parent b25ca61f07
commit 64d1fb072a

View File

@@ -941,18 +941,52 @@
eventCounts = {}; eventCounts = {};
try { try {
const parsedState = JSON.parse(jsonPayload); const parsedState = JSON.parse(jsonPayload);
ed.loadProjectData(parsedState); const isArray = Array.isArray(parsedState);
applied = true; const hasPages = parsedState && Array.isArray(parsedState.pages);
log('CONTENT', 'JSON-Projektzustand angewendet.', 'orange'); const isLegacy = parsedState && typeof parsedState === 'object'
const hasComponents = ed.getComponents && ed.getComponents().length > 0; && !hasPages
const hasHtml = (ed.getHtml && ed.getHtml().trim()) ? true : false; && (parsedState.components || parsedState.styles);
if (!hasComponents && !hasHtml && html) { if (isArray) {
log('CONTENT WARN', 'JSON geladen aber leer, wechsle auf HTML-Fallback.', 'orange', 'warn'); ed.setComponents(parsedState);
applied = false; applied = true;
log('CONTENT', 'JSON-Komponenten (Array) angewendet.', 'orange');
} else if (isLegacy) {
if (parsedState.components) {
ed.setComponents(parsedState.components);
} else {
ed.setComponents(parsedState);
}
if (parsedState.styles) {
ed.setStyle(parsedState.styles);
}
applied = true;
log('CONTENT', 'Legacy JSON (components/styles) angewendet.', 'orange');
} else if (parsedState && typeof parsedState === 'object' && !hasPages) {
ed.setComponents(parsedState);
applied = true;
log('CONTENT', 'JSON ohne Pages als Komponenten angewendet.', 'orange');
} else {
ed.loadProjectData(parsedState);
applied = true;
log('CONTENT', 'JSON-Projektzustand angewendet.', 'orange');
const hasComponents = ed.getComponents && ed.getComponents().length > 0;
const hasHtml = (ed.getHtml && ed.getHtml().trim()) ? true : false;
if (!hasComponents && !hasHtml && html) {
log('CONTENT WARN', 'JSON geladen aber leer, wechsle auf HTML-Fallback.', 'orange', 'warn');
applied = false;
}
} }
} catch (e) { } catch (e) {
log('CONTENT ERROR', `JSON loadProjectData Fehler: ${e.message}`, 'red', 'error'); log('CONTENT ERROR', `JSON loadProjectData Fehler: ${e.message}`, 'red', 'error');
if (!html) { try {
const fallback = parsedState && parsedState.components ? parsedState.components : parsedState;
if (fallback) {
ed.setComponents(fallback);
applied = true;
log('CONTENT', 'JSON-Fallback via setComponents angewendet.', 'orange');
}
} catch {}
if (!applied && !html) {
html = jsonPayload; html = jsonPayload;
} }
} finally { } finally {