From 3e57404b64143d632491fde4ddae992cf9de9ab3 Mon Sep 17 00:00:00 2001 From: Gemini Date: Wed, 13 May 2026 19:25:49 +0000 Subject: [PATCH] Fix: Drag & Drop Merge, UI Layouts und Bugfixes (final) --- src/manage_packing_list_items.php | 22 ++++++++++++++++++++++ src/packing_list_detail.php | 6 +++--- 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/src/manage_packing_list_items.php b/src/manage_packing_list_items.php index 78ce917..696c4e9 100644 --- a/src/manage_packing_list_items.php +++ b/src/manage_packing_list_items.php @@ -688,6 +688,28 @@ $conn->close(); return; } } + + const isFromBackpack = evt.from.id !== 'table-container' && evt.from.classList.contains('nested-sortable'); + const isToTable = evt.to.id === 'table-container'; + if (isFromBackpack && isToTable) { + const articleId = itemEl.dataset.articleId; + const qtyInput = itemEl.querySelector('.quantity-input'); + const qty = parseInt(qtyInput ? qtyInput.value : 1, 10); + + const tableContainer = document.getElementById('table-container'); + const existingEl = Array.from(tableContainer.children).find(el => + el !== itemEl && el.classList.contains('packed-item-container') && String(el.dataset.articleId) === String(articleId) + ); + + if (existingEl) { + const exInput = existingEl.querySelector('.quantity-input'); + if (exInput) { + exInput.value = parseInt(exInput.value, 10) + qty; + } + itemEl.remove(); + } + } + syncListState(); } diff --git a/src/packing_list_detail.php b/src/packing_list_detail.php index ddc30e7..8b9b2ea 100644 --- a/src/packing_list_detail.php +++ b/src/packing_list_detail.php @@ -323,8 +323,8 @@ function render_item_row($item, $level, $items_by_parent) {
-
-
+
+
Gepackte Artikel
@@ -629,4 +629,4 @@ document.addEventListener('DOMContentLoaded', function() { }); - \ No newline at end of file +hp require_once 'footer.php'; ?> \ No newline at end of file