From a2b7b38bf14d6b97478eddb0e51bdf4a3dd39f5e Mon Sep 17 00:00:00 2001 From: Daniel Date: Thu, 26 Oct 2023 23:02:25 +0300 Subject: [PATCH] All frontend elements now use Stores instead of requesting their own data 6 times less requests! --- .../routes/dashboard/board/Dashboard.svelte | 13 +- .../dashboard/board/graphs/Graph1.svelte | 27 +++-- .../dashboard/board/graphs/Graph2.svelte | 111 +++++++++--------- .../dashboard/board/graphs/Graph3.svelte | 46 ++++---- .../dashboard/board/infolists/Expenses.svelte | 30 +---- .../dashboard/board/infolists/Incomes.svelte | 33 ++---- .../infolists/contents/ContentExpense.svelte | 26 +--- .../infolists/contents/ContentIncome.svelte | 26 +--- .../dashboard/board/other/QuickInfobar.svelte | 40 +++---- .../web/src/routes/dashboard/stores.js | 4 +- 10 files changed, 142 insertions(+), 214 deletions(-) diff --git a/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/Dashboard.svelte b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/Dashboard.svelte index 45c3969..9a7ee4f 100644 --- a/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/Dashboard.svelte +++ b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/Dashboard.svelte @@ -8,17 +8,19 @@ import {incomeData} from "../stores.js"; import {expenseData} from "../stores.js"; import {incomeTypes} from "../stores.js"; + import {expenseTypes} from "../stores.js"; import axios from "axios"; onMount(() => { - if (getCookie('access_token') === null) { + if (getCookie('access_token') === '') { window.location.href = '/auth/login'; console.log("no token"); } const token = getCookie('access_token'); + const config = { headers: { 'Authorization': `Bearer ${token}` @@ -46,7 +48,14 @@ }) .catch(error => console.error('Error:', error)); - Promise.all([incomePromise, expensePromise, incomeTypesPromise]) + const expenseTypesPromise = axios.get('http://localhost:8081/expenses/categories', config) + .then(response => { + expenseTypes.set(response.data); + console.log("Received Expense Type Data"); + }) + .catch(error => console.error('Error:', error)); + + Promise.all([incomePromise, expensePromise, incomeTypesPromise, expenseTypesPromise]) .then(() => { console.log(getCookie('access_token')); }); diff --git a/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/graphs/Graph1.svelte b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/graphs/Graph1.svelte index 56b6e48..bc4771f 100644 --- a/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/graphs/Graph1.svelte +++ b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/graphs/Graph1.svelte @@ -7,21 +7,22 @@ let chartCanvas; let chart = null; + function groupAndSumByCategory(incomes) { + const groupedData = new Map(); + incomes.forEach(income => { + const category = income.incomeCategory.name; + if (groupedData.has(category)) { + groupedData.set(category, groupedData.get(category) + parseInt(income.amount)); + } else { + groupedData.set(category, income.amount); + } + } + ); + return groupedData; + } + function createGraph(data) { try { - function groupAndSumByCategory(incomes) { - const groupedData = new Map(); - incomes.forEach(income => { - const category = income.incomeCategory.name; - if (groupedData.has(category)) { - groupedData.set(category, groupedData.get(category) + parseInt(income.amount)); - } else { - groupedData.set(category, income.amount); - } - } - ); - return groupedData; - } const groupedIncomeData = groupAndSumByCategory(data); diff --git a/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/graphs/Graph2.svelte b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/graphs/Graph2.svelte index fe935a6..eee5dc2 100644 --- a/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/graphs/Graph2.svelte +++ b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/graphs/Graph2.svelte @@ -1,72 +1,73 @@
diff --git a/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/graphs/Graph3.svelte b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/graphs/Graph3.svelte index 640bd8a..34dcb86 100644 --- a/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/graphs/Graph3.svelte +++ b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/graphs/Graph3.svelte @@ -1,39 +1,24 @@
diff --git a/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/infolists/Expenses.svelte b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/infolists/Expenses.svelte index f266757..e05f4b9 100644 --- a/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/infolists/Expenses.svelte +++ b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/infolists/Expenses.svelte @@ -1,36 +1,18 @@
@@ -38,7 +20,7 @@
    - {#each data as item} + {#each $expenseData as item}
  • {item.incomeCategory ? `${item.incomeCategory.name}: ` : `${item.expenseCategory.name}: `} {item.incomeCategory ? `+${item.amount}$` : `-${item.amount}$`} diff --git a/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/infolists/Incomes.svelte b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/infolists/Incomes.svelte index f0c175e..104bf91 100644 --- a/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/infolists/Incomes.svelte +++ b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/infolists/Incomes.svelte @@ -1,37 +1,18 @@
    @@ -39,7 +20,7 @@
      - {#each data as item} + {#each $incomeData as item}
    • {item.incomeCategory ? `${item.incomeCategory.name}: ` : `${item.expenseCategory.name}: `} {item.incomeCategory ? `+${item.amount}$` : `-${item.amount}$`} diff --git a/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/infolists/contents/ContentExpense.svelte b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/infolists/contents/ContentExpense.svelte index 49c8297..007d1df 100644 --- a/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/infolists/contents/ContentExpense.svelte +++ b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/infolists/contents/ContentExpense.svelte @@ -1,37 +1,17 @@ diff --git a/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/stores.js b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/stores.js index 3b615b4..05ce287 100644 --- a/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/stores.js +++ b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/stores.js @@ -4,4 +4,6 @@ export const incomeData = writable([]); export const expenseData = writable([]); -export const incomeTypes = writable([]); \ No newline at end of file +export const incomeTypes = writable([]); + +export const expenseTypes = writable([]); \ No newline at end of file