This commit is contained in:
2026-01-16 01:24:53 +01:00
parent 31fd91d815
commit ef8b556b73
8 changed files with 23 additions and 16 deletions

View File

@@ -538,7 +538,7 @@
log('SAVE FAILED (API)', `Speichern fehlgeschlagen: API-Fehler: ${data.error || 'Unbekannt'}`, 'red', 'error', true); log('SAVE FAILED (API)', `Speichern fehlgeschlagen: API-Fehler: ${data.error || 'Unbekannt'}`, 'red', 'error', true);
alert(`Speichern fehlgeschlagen: ${data.error || 'API-Fehler'}`); alert(`Speichern fehlgeschlagen: ${data.error || 'API-Fehler'}`);
} else { } else {
log('SAVE SUCCESS', `Speichern erfolgreich für Aktion ${action}.`, '#008000', 'info', true); log('SAVE SUCCESS', `Speichern erfolgreich für Aktion ${action}.`, '#008000', 'info');
// 💡 HINZUGEFÜGT: Bestätigung an das Elternfenster senden // 💡 HINZUGEFÜGT: Bestätigung an das Elternfenster senden
window.parent.postMessage({ source: 'editor', type: 'save:success' }, '*'); window.parent.postMessage({ source: 'editor', type: 'save:success' }, '*');
editor.refresh(); // Optional: Editor-Ansicht aktualisieren editor.refresh(); // Optional: Editor-Ansicht aktualisieren

View File

@@ -127,7 +127,7 @@
<a href="#" style="${css({color:'#0ea5e9','text-decoration':'none'})}">Datenschutz</a></p> <a href="#" style="${css({color:'#0ea5e9','text-decoration':'none'})}">Datenschutz</a></p>
</div>` }); </div>` });
log('SUCCESS', `Registrierung abgeschlossen. ${ALL_CUSTOM_BLOCK_IDS.length} Blöcke erstellt.`, '#008000', 'info', true); log('SUCCESS', `Registrierung abgeschlossen. ${ALL_CUSTOM_BLOCK_IDS.length} Blöcke erstellt.`, '#008000', 'info');
} }
// 🛑 KRITISCHE EXPORT-KORREKTUR: Exportiere 'register', um den Fehler in bridge-core.js zu beheben // 🛑 KRITISCHE EXPORT-KORREKTUR: Exportiere 'register', um den Fehler in bridge-core.js zu beheben

View File

@@ -1108,7 +1108,7 @@ const refreshPlaceholderComponent = (component) => {
log('PLACEHOLDER WARN', 'DB Placeholder Schema konnte nicht geladen werden Fallback bleibt aktiv.', '#b45309'); log('PLACEHOLDER WARN', 'DB Placeholder Schema konnte nicht geladen werden Fallback bleibt aktiv.', '#b45309');
}); });
log('SUCCESS', `Placeholder-Registrierung abgeschlossen. ${ALL_PLACEHOLDER_BLOCK_IDS.length} Blöcke erstellt.`, '#008000', 'info', true); log('SUCCESS', `Placeholder-Registrierung abgeschlossen. ${ALL_PLACEHOLDER_BLOCK_IDS.length} Blöcke erstellt.`, '#008000', 'info');
} }
window.BridgeBlocksPlaceholder = { window.BridgeBlocksPlaceholder = {

View File

@@ -128,7 +128,7 @@
// Löst die notwendigen Events für den Bridge Core / Cleanup aus. // Löst die notwendigen Events für den Bridge Core / Cleanup aus.
editor.trigger('block:add'); editor.trigger('block:add');
log('SUCCESS', `Erfolgreich ${ALL_STANDARD_BLOCK_IDS.length} Standardblöcke in Kategorie '${TARGET_CAT_LABEL}' registriert.`, '#008000', 'info', true); log('SUCCESS', `Erfolgreich ${ALL_STANDARD_BLOCK_IDS.length} Standardblöcke in Kategorie '${TARGET_CAT_LABEL}' registriert.`, '#008000', 'info');
}; };
// Exportiere für den manuellen Aufruf in bridge-core.js // Exportiere für den manuellen Aufruf in bridge-core.js

View File

@@ -214,7 +214,7 @@
// DOM Cleanup wird über renderBlocks aufgerufen // DOM Cleanup wird über renderBlocks aufgerufen
renderBlocks(editor); renderBlocks(editor);
log('END', `Kategorisierung abgeschlossen. Sichtbare Kategorien (Modelle): ${visibleCategories.sort().join(', ')}.`, 'green', 'info', true); // FINAL Log ist forced=true für Abschlussmeldung log('END', `Kategorisierung abgeschlossen. Sichtbare Kategorien (Modelle): ${visibleCategories.sort().join(', ')}.`, 'green', 'info');
normalizationIsRunning = false; normalizationIsRunning = false;
}; };

View File

@@ -4,11 +4,16 @@
if (!B || typeof grapesjs === 'undefined') return; if (!B || typeof grapesjs === 'undefined') return;
const PluginName = 'bridge-categorization-master'; const PluginName = 'bridge-categorization-master';
const log = (message) => {
if (typeof B.log === 'function') {
B.log(PluginName, message, '#888', 'info');
}
};
// Dies ist nun ein leeres Plugin. Die Logik wurde nach categorization-cleanup.js verschoben. // Dies ist nun ein leeres Plugin. Die Logik wurde nach categorization-cleanup.js verschoben.
grapesjs.plugins.add(PluginName, (editor, opts = {}) => { grapesjs.plugins.add(PluginName, (editor, opts = {}) => {
// Leere Plugin-Funktion. Führt keine Aufräumarbeiten, Normalisierung oder Exporte durch. // Leere Plugin-Funktion. Führt keine Aufräumarbeiten, Normalisierung oder Exporte durch.
console.log(`[${PluginName}] Plugin existiert (Logik nach cleanup.js verschoben).`); log('Plugin existiert (Logik nach cleanup.js verschoben).');
}); });
})(window.BridgeParts || (window.BridgeParts = {})); })(window.BridgeParts || (window.BridgeParts = {}));

View File

@@ -354,11 +354,15 @@ export function initEditor() {
      try { hideReadyBadge(iframe.contentDocument); } catch {}       try { hideReadyBadge(iframe.contentDocument); } catch {}
      bridgeListener = (ev) => { bridgeListener = (ev) => {
        const d = ev?.data || {}; const d = ev?.data || {};
        if (!d) return; if (!d) return;
        // wir erwarten Nachrichten aus der Bridge/Editor if (d.source === 'bridge-core' && d.type === 'rte-blur') {
        if (d.source !== 'bridge' && d.source !== 'editor') return; try { console.log(d.detail || '[RTE BLUR]'); } catch {}
return;
}
// wir erwarten Nachrichten aus der Bridge/Editor
if (d.source !== 'bridge' && d.source !== 'editor') return;
        if (myToken !== reqToken) return;         if (myToken !== reqToken) return;
        // NEU: Wenn der Editor meldet, dass er *gespeichert* hat,         // NEU: Wenn der Editor meldet, dass er *gespeichert* hat,

View File

@@ -698,7 +698,7 @@
}); });
} }
if (!editor.Commands.get('bridge-open-richtext')) { if (editor.Commands && editor.Commands.add) {
editor.Commands.add('bridge-open-richtext', { editor.Commands.add('bridge-open-richtext', {
run(ed, sender, opts = {}) { run(ed, sender, opts = {}) {
if (sender && sender.set) sender.set('active', 0); if (sender && sender.set) sender.set('active', 0);
@@ -961,7 +961,7 @@
modal.open(); modal.open();
}; };
if (!editor.Commands.get('bridge-table:edit')) { if (editor.Commands && editor.Commands.add) {
editor.Commands.add('bridge-table:edit', { editor.Commands.add('bridge-table:edit', {
run(ed, sender, opts = {}) { run(ed, sender, opts = {}) {
if (sender && sender.set) sender.set('active', 0); if (sender && sender.set) sender.set('active', 0);
@@ -1109,9 +1109,7 @@
}); });
const ensurePlaceholderCommandStub = (editor) => { const ensurePlaceholderCommandStub = (editor) => {
if (!editor || !editor.Commands) return; if (!editor || !editor.Commands || !editor.Commands.add) return;
const existing = editor.Commands.get && editor.Commands.get('bridge-placeholder:edit');
if (existing) return;
editor.Commands.add('bridge-placeholder:edit', { editor.Commands.add('bridge-placeholder:edit', {
__bridgePlaceholderStub: true, __bridgePlaceholderStub: true,
run(ed, sender, opts = {}) { run(ed, sender, opts = {}) {