From ff0fffccad2505dacdd0fb9144d4cc0b0f1452c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mathias=20Gla=CC=88ser?= Date: Sun, 20 Sep 2026 20:46:53 +0200 Subject: [PATCH] Verschachtelte Delete-Dialoge korrekt zuordnen --- public/scripts/shared-editable-action-card.js | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/public/scripts/shared-editable-action-card.js b/public/scripts/shared-editable-action-card.js index a69d8fa..78e1f77 100644 --- a/public/scripts/shared-editable-action-card.js +++ b/public/scripts/shared-editable-action-card.js @@ -5,6 +5,9 @@ const getCard = (element) => element.closest(cardSelector); + const getDirectDeleteElement = (card, selector) => Array.from(card?.children || []) + .find((child) => child.matches(selector)) || null; + const setEditMode = (card, enabled) => { if (!card) { return; @@ -29,9 +32,9 @@ const resetDeleteConfirmation = (card) => { const stage = card?.closest('.sg-delete-confirmation-pattern__stage'); - const confirmation = card?.querySelector('[data-shared-editable-card-delete-confirmation]'); - const input = card?.querySelector('[data-shared-editable-card-delete-input]'); - const submit = card?.querySelector('[data-shared-editable-card-delete-submit]'); + const confirmation = getDirectDeleteElement(card, '[data-shared-editable-card-delete-confirmation]'); + const input = confirmation?.querySelector('[data-shared-editable-card-delete-input]'); + const submit = confirmation?.querySelector('[data-shared-editable-card-delete-submit]'); if (input) { input.value = ''; @@ -51,8 +54,8 @@ const openDeleteConfirmation = (card) => { const stage = card?.closest('.sg-delete-confirmation-pattern__stage'); - const confirmation = card?.querySelector('[data-shared-editable-card-delete-confirmation]'); - const input = card?.querySelector('[data-shared-editable-card-delete-input]'); + const confirmation = getDirectDeleteElement(card, '[data-shared-editable-card-delete-confirmation]'); + const input = confirmation?.querySelector('[data-shared-editable-card-delete-input]'); if (input) { input.value = ''; @@ -68,7 +71,8 @@ const updateDeleteButton = (input) => { const card = getCard(input); - const submit = card?.querySelector('[data-shared-editable-card-delete-submit]'); + const confirmation = input?.closest('[data-shared-editable-card-delete-confirmation]'); + const submit = confirmation?.querySelector('[data-shared-editable-card-delete-submit]'); const token = card?.dataset.sharedEditableDeleteToken || 'DELETE'; const valid = input.value === token;