From 55f53e3346a2a2916f4e563d81d21e6e4a53e408 Mon Sep 17 00:00:00 2001 From: NOrtmann1 Date: Sun, 14 Jun 2026 23:06:00 +0200 Subject: [PATCH] Update editor.js --- js/editor.js | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/js/editor.js b/js/editor.js index cb614be..2a4fbe1 100644 --- a/js/editor.js +++ b/js/editor.js @@ -94,7 +94,7 @@ function initEditor() { container.appendChild(blockDiv); } - // beim Abschicken verbliebene Blöcke auslesen UND gelöschte Bilder ermitteln + // beim Abschicken verbleibende Blöcke auslesen UND gelöschte Bilder ermitteln form.addEventListener("submit", function(e) { const blocks = []; const currentImages = []; @@ -102,12 +102,24 @@ function initEditor() { // alle aktuell im Formular verbliebenen Blöcke scannen container.querySelectorAll(".editor-block").forEach(blockDiv => { const type = blockDiv.getAttribute("data-type"); - let value = blockDiv.getAttribute("data-value") || ""; + let value = ""; if (type === "text") { value = blockDiv.querySelector("textarea").value; } else if (type === "image") { - // Pfade sammeln, die der Nutzer NICHT gelöscht hat + + const imgTag = blockDiv.querySelector("img"); + if (imgTag) { + const srcValue = imgTag.getAttribute("src") || ""; + // Wenn es ein neues Bild ist, nutzen wir das data-value (Base64) + if (srcValue.startsWith('data:image/')) { + value = blockDiv.getAttribute("data-value") || ""; + } else { + value = srcValue; + } + } + + // Pfade sammeln, die der Nutzer NICHT gelöscht hat (für den Abgleich) if (value && value.startsWith('uploads/')) { currentImages.push(value); } @@ -119,10 +131,10 @@ function initEditor() { // das reguläre unsichtbare Content-Feld befüllen hiddenContentInput.value = JSON.stringify(blocks); - // Welche Bilder aus 'initialImages' fehlen in 'currentImages' ? + // Differenz berechnen: Welche Bilder aus 'initialImages' fehlen in 'currentImages' ? const deletedImages = initialImages.filter(img => !currentImages.includes(img)); - // 'deleted_images'-Feld dynamisch erzeugen + // das 'deleted_images'-Feld dynamisch befüllen und an den Controller senden let deletedInput = document.getElementById("deleted-images"); if (!deletedInput) { deletedInput = document.createElement("input");