From 79ba2068ec4c6039523399789214e627c0fe2303 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Gruszczy=C5=84ski?= Date: Fri, 1 Aug 2025 11:54:42 +0200 Subject: [PATCH] modyfikacja funckji zaznaczanie wszystkiego --- static/js/select_all_table.js | 35 +++++++++++++++++++++++++++++++++++ templates/expenses.html | 17 ++++++++++------- 2 files changed, 45 insertions(+), 7 deletions(-) create mode 100644 static/js/select_all_table.js diff --git a/static/js/select_all_table.js b/static/js/select_all_table.js new file mode 100644 index 0000000..dc5a0d5 --- /dev/null +++ b/static/js/select_all_table.js @@ -0,0 +1,35 @@ +document.addEventListener('DOMContentLoaded', () => { + const checkboxes = document.querySelectorAll('.list-checkbox'); + const totalEl = document.getElementById('listsTotal'); + const selectAllBtn = document.getElementById('selectAllBtn'); + const deselectAllBtn = document.getElementById('deselectAllBtn'); + + function updateTotal() { + let total = 0; + checkboxes.forEach(cb => { + const row = cb.closest('tr'); + if (cb.checked && row.style.display !== 'none') { + total += parseFloat(cb.dataset.amount); + } + }); + totalEl.textContent = total.toFixed(2) + ' PLN'; + } + + selectAllBtn.addEventListener('click', () => { + checkboxes.forEach(cb => cb.checked = true); + updateTotal(); + selectAllBtn.style.display = 'none'; + deselectAllBtn.style.display = 'inline-block'; + }); + + deselectAllBtn.addEventListener('click', () => { + checkboxes.forEach(cb => cb.checked = false); + updateTotal(); + deselectAllBtn.style.display = 'none'; + selectAllBtn.style.display = 'inline-block'; + }); + + checkboxes.forEach(cb => { + cb.addEventListener('change', updateTotal); + }); +}); diff --git a/templates/expenses.html b/templates/expenses.html index 1d7bef9..03f693a 100644 --- a/templates/expenses.html +++ b/templates/expenses.html @@ -85,12 +85,16 @@ -
- +
+
+ + +
+
💰 Suma: 0.00 PLN
+
@@ -124,9 +128,6 @@
- -
-
💰 Suma zaznaczonych: 0.00 PLN
@@ -176,4 +177,6 @@ + + {% endblock %} \ No newline at end of file