revert debugging
This commit is contained in:
2026-06-14 23:30:32 +02:00
parent cb02e05d55
commit 2bb13d2e8c
2 changed files with 47 additions and 13 deletions
+3
View File
@@ -50,6 +50,9 @@ include_once 'php/controller/showArticle-controller.php';
echo '[]'; echo '[]';
} }
?></textarea> ?></textarea>
<!-- unsichtbares Input, um die zu löschenden Bilder zu übergeben-->
<input type="hidden" id="deleted-images" name="deleted_images" value="[]">
</main> </main>
<!-- Seitenleiste --> <!-- Seitenleiste -->
+42 -11
View File
@@ -96,23 +96,54 @@ function initEditor() {
// beim Abschicken verbleibende Blöcke auslesen UND gelöschte Bilder ermitteln // beim Abschicken verbleibende Blöcke auslesen UND gelöschte Bilder ermitteln
form.addEventListener("submit", function(e) { form.addEventListener("submit", function(e) {
// Welche Bilder aus 'initialImages' fehlen in 'currentImages' ? const blocks = [];
const deletedImages = initialImages.filter(img => !currentImages.includes(img)); const currentImages = [];
const oldInput = document.getElementById("deleted-images"); // alle aktuell im Formular verbliebenen Blöcke scannen
if (oldInput) { container.querySelectorAll(".editor-block").forEach(blockDiv => {
oldInput.remove(); const type = blockDiv.getAttribute("data-type");
let value = "";
if (type === "text") {
value = blockDiv.querySelector("textarea").value;
} else if (type === "image") {
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;
}
} }
const deletedInput = document.createElement("input"); // Pfade sammeln, die der Nutzer NICHT gelöscht hat (für den Abgleich)
if (value && value.startsWith('uploads/')) {
currentImages.push(value);
}
}
blocks.push({ type: type, value: value });
});
// das reguläre unsichtbare Content-Feld befüllen
hiddenContentInput.value = JSON.stringify(blocks);
// Differenz berechnen: Welche Bilder aus 'initialImages' fehlen in 'currentImages' ?
const deletedImages = initialImages.filter(img => !currentImages.includes(img));
// das 'deleted_images'-Feld dynamisch befüllen und an den Controller senden
let deletedInput = document.getElementById("deleted-images");
if (!deletedInput) {
deletedInput = document.createElement("input");
deletedInput.type = "hidden"; deletedInput.type = "hidden";
deletedInput.id = "deleted-images"; deletedInput.id = "deleted-images";
deletedInput.name = "deleted_images"; // Dieser Name kommt im $_POST an deletedInput.name = "deleted_images";
deletedInput.value = JSON.stringify(deletedImages);
form.appendChild(deletedInput); form.appendChild(deletedInput);
}
console.log("An PHP gesendete Löschliste:", deletedInput.value); deletedInput.value = JSON.stringify(deletedImages);
}); });
// Existierende Blöcke laden (stellt alte Daten aus der Session wieder her) // Existierende Blöcke laden (stellt alte Daten aus der Session wieder her)