diff --git a/static/js/chart_split_controls.js b/static/js/chart_split_controls.js new file mode 100644 index 0000000..4664fde --- /dev/null +++ b/static/js/chart_split_controls.js @@ -0,0 +1,58 @@ +document.addEventListener('DOMContentLoaded', function() { + // Znajdź przyciski + const toggleMonthlySplit = document.getElementById('toggleMonthlySplit'); + const toggleDailySplit = document.getElementById('toggleDailySplit'); + const toggleCategorySplit = document.getElementById('toggleCategorySplit'); + + // Funkcja ustawiająca aktywność przycisków podziału czasu + function setActiveTimeSplit(active) { + if (active === 'monthly') { + toggleMonthlySplit.classList.add('btn-primary'); + toggleMonthlySplit.classList.remove('btn-outline-light'); + toggleMonthlySplit.setAttribute('aria-pressed', 'true'); + + toggleDailySplit.classList.remove('btn-primary'); + toggleDailySplit.classList.add('btn-outline-light'); + toggleDailySplit.setAttribute('aria-pressed', 'false'); + } else if (active === 'daily') { + toggleDailySplit.classList.add('btn-primary'); + toggleDailySplit.classList.remove('btn-outline-light'); + toggleDailySplit.setAttribute('aria-pressed', 'true'); + + toggleMonthlySplit.classList.remove('btn-primary'); + toggleMonthlySplit.classList.add('btn-outline-light'); + toggleMonthlySplit.setAttribute('aria-pressed', 'false'); + } + } + + // Obsługa kliknięć przycisków czasu + toggleMonthlySplit.addEventListener('click', function() { + setActiveTimeSplit('monthly'); + loadExpenses('monthly'); + }); + + toggleDailySplit.addEventListener('click', function() { + setActiveTimeSplit('daily'); + loadExpenses('daily'); + }); + + // Obsługa kliknięcia przycisku podziału kategorii + toggleCategorySplit.addEventListener('click', function() { + const isActive = this.classList.contains('btn-primary'); + if (isActive) { + this.classList.remove('btn-primary'); + this.classList.add('btn-outline-light'); + this.setAttribute('aria-pressed', 'false'); + loadExpenses(); // wyłącz podział kategorii + } else { + this.classList.add('btn-primary'); + this.classList.remove('btn-outline-light'); + this.setAttribute('aria-pressed', 'true'); + loadExpenses({ bycategory: true }); // włącz podział kategorii + } + }); + + // Inicjalizacja - domyślnie ustaw podział dzienny + setActiveTimeSplit('daily'); + loadExpenses('daily'); +}); diff --git a/static/js/expense_chart.js b/static/js/expense_chart.js index dc27573..c05e1d7 100644 --- a/static/js/expense_chart.js +++ b/static/js/expense_chart.js @@ -173,52 +173,4 @@ document.addEventListener("DOMContentLoaded", function () { loadExpenses("currentmonth"); } - - // podzial casu - const toggleMonthlySplit = document.getElementById('toggleMonthlySplit'); - const toggleDailySplit = document.getElementById('toggleDailySplit'); - const toggleCategorySplit = document.getElementById('toggleCategorySplit'); - - toggleMonthlySplit.addEventListener('click', function() { - this.classList.add('btn-primary'); - this.classList.remove('btn-outline-light'); - this.setAttribute('aria-pressed', 'true'); - - toggleDailySplit.classList.remove('btn-primary'); - toggleDailySplit.classList.add('btn-outline-light'); - toggleDailySplit.setAttribute('aria-pressed', 'false'); - - loadExpenses('monthly'); - }); - - toggleDailySplit.addEventListener('click', function() { - this.classList.add('btn-primary'); - this.classList.remove('btn-outline-light'); - this.setAttribute('aria-pressed', 'true'); - - toggleMonthlySplit.classList.remove('btn-primary'); - toggleMonthlySplit.classList.add('btn-outline-light'); - toggleMonthlySplit.setAttribute('aria-pressed', 'false'); - - loadExpenses('daily'); - }); - - toggleCategorySplit.addEventListener('click', function() { - const isActive = this.classList.contains('btn-primary'); - if (isActive) { - this.classList.remove('btn-primary'); - this.classList.add('btn-outline-light'); - this.setAttribute('aria-pressed', 'false'); - // Wyłącz podział na kategorie - loadExpenses(); // bez podziału na kategorie - } else { - this.classList.add('btn-primary'); - this.classList.remove('btn-outline-light'); - this.setAttribute('aria-pressed', 'true'); - // Włącz podział na kategorie - loadExpenses({ bycategory: true }); - } - }); - - }); diff --git a/templates/expenses.html b/templates/expenses.html index 15a7b87..99732e8 100644 --- a/templates/expenses.html +++ b/templates/expenses.html @@ -188,4 +188,5 @@ + {% endblock %} \ No newline at end of file