diff --git a/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/auth/login/LoginForm.svelte b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/auth/login/LoginForm.svelte
index ed00879..a0bade3 100644
--- a/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/auth/login/LoginForm.svelte
+++ b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/auth/login/LoginForm.svelte
@@ -1,5 +1,4 @@
+
@@ -78,18 +78,18 @@
height: 600px;
box-shadow: 1px 1px 108.8px 19.2px rgb(25, 31, 53);
}
-
+
#formTitle {
font-family: 'Source Sans Pro', sans-serif;
color: #5c6bc0;
margin-top: 94px;
}
-
+
#formTitle span {
color: #dfdeee;
font-weight: lighter;
}
-
+
.registerForm h5 {
font-family: 'Source Sans Pro', sans-serif;
font-size: 13px;
@@ -98,7 +98,7 @@
margin-top: -15px;
margin-bottom: 70px;
}
-
+
.registerForm input[type="text"],
.registerForm input[type="password"] {
display: block;
@@ -116,21 +116,21 @@
-o-transition: all .2s ease-out;
transition: all .2s ease-out;
}
-
+
.registerForm input[type="text"]:focus,
.registerForm input[type="password"]:focus {
border: 1px solid #79A6FE;
}
-
+
a {
color: #5c7fda;
text-decoration: none;
}
-
+
a:hover {
text-decoration: underline;
}
-
+
.submitButton {
border: 0;
background: #7f5feb;
@@ -145,23 +145,23 @@
transition: 0.3s;
cursor: pointer;
}
-
+
.submitButton:hover {
background: #5d33e6;
}
-
+
.recoveryPass {
position: relative;
float: right;
right: 28px;
}
-
+
.noAccount {
position: absolute;
top: 92%;
left: 24%;
}
-
+
.error {
text-align: center;
width: 337px;
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 9a7ee4f..9ee8e54 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
@@ -5,60 +5,40 @@
import { getCookie } from "svelte-cookie";
import {onMount} from "svelte";
- import {incomeData} from "../stores.js";
- import {expenseData} from "../stores.js";
- import {incomeTypes} from "../stores.js";
- import {expenseTypes} from "../stores.js";
+ import {incomeData, expenseData, incomeTypes, expenseTypes} from "../stores.js";
import axios from "axios";
- onMount(() => {
- if (getCookie('access_token') === '') {
- window.location.href = '/auth/login';
- console.log("no token");
- }
-
+ onMount(async () => {
const token = getCookie('access_token');
+ if (token === '') {
+ window.location.href = '/auth/login';
+ return;
+ }
+
const config = {
headers: {
'Authorization': `Bearer ${token}`
}
};
- const incomePromise = axios.get('http://localhost:8081/incomes/personal-incomes', config)
- .then(response => {
- incomeData.set(response.data);
- console.log("Received Income Data");
- })
- .catch(error => console.error('Error fetching income data:', error));
+ try {
+ const [incomeResponse, expenseResponse, incomeTypesResponse, expenseTypesResponse] = await Promise.all([
+ axios.get('http://localhost:8081/incomes/personal-incomes', config),
+ axios.get('http://localhost:8081/expenses/personal-expenses', config),
+ axios.get('http://localhost:8081/incomes/categories', config),
+ axios.get('http://localhost:8081/expenses/categories', config)
+ ]);
- const expensePromise = axios.get('http://localhost:8081/expenses/personal-expenses', config)
- .then(response => {
- expenseData.set(response.data);
- console.log("Received Expense Data");
- })
- .catch(error => console.error('Error fetching expense data:', error));
-
- const incomeTypesPromise = axios.get('http://localhost:8081/incomes/categories', config)
- .then(response => {
- incomeTypes.set(response.data);
- console.log("Received Income Type Data");
- })
- .catch(error => console.error('Error:', error));
-
- 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'));
- });
+ incomeData.set(incomeResponse.data);
+ expenseData.set(expenseResponse.data);
+ incomeTypes.set(incomeTypesResponse.data);
+ expenseTypes.set(expenseTypesResponse.data);
+ } catch (error) {
+ console.error('Error:', error);
+ }
});
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 bc4771f..3b653b1 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,9 +7,9 @@
let chartCanvas;
let chart = null;
- function groupAndSumByCategory(incomes) {
+ function groupAndSumByCategory() {
const groupedData = new Map();
- incomes.forEach(income => {
+ $incomeData.forEach(income => {
const category = income.incomeCategory.name;
if (groupedData.has(category)) {
groupedData.set(category, groupedData.get(category) + parseInt(income.amount));
@@ -21,10 +21,9 @@
return groupedData;
}
- function createGraph(data) {
+ function createGraph() {
try {
-
- const groupedIncomeData = groupAndSumByCategory(data);
+ const groupedIncomeData = groupAndSumByCategory();
const chartLabels = Array.from(groupedIncomeData.keys());
const chartValues = Array.from(groupedIncomeData.values());
@@ -38,7 +37,16 @@
labels: chartLabels,
datasets: [{
label: 'Revenue',
- backgroundColor: 'rgb(255, 99, 132)',
+ backgroundColor:
+ ['rgb(0, 0, 179)',
+ 'rgb(0, 16, 217)',
+ 'rgb(0, 32, 255)',
+ 'rgb(0, 64, 255)',
+ 'rgb(0, 96, 255)',
+ 'rgb(0, 128, 255)',
+ 'rgb(0, 159, 255)',
+ 'rgb(0, 191, 255)',
+ 'rgb(0, 255, 255)'],
data: chartValues
}]
},
@@ -50,7 +58,6 @@
} else {
chart.data.labels = chartLabels;
chart.data.datasets[0].data = chartValues;
- console.log(chart.data.datasets[0].data);
chart.update();
}
} catch (error) {
@@ -60,13 +67,12 @@
$: {
if ($incomeData) {
- createGraph($incomeData);
- console.log($incomeData);
+ createGraph();
}
}
onMount(() => {
- createGraph($incomeData);
+ createGraph();
});
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 eee5dc2..9fb1a4a 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,15 +1,16 @@
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 34dcb86..10245ba 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,5 +1,5 @@
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 e05f4b9..0015c1f 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
@@ -36,6 +36,10 @@
#expenseInfo {
display: flex;
flex-direction: column;
+ background-color: #212942;
+ color:white;
+ border-radius: 10px;
+ margin: 10px;
}
#expenseList {
@@ -54,6 +58,7 @@
ul {
list-style: none;
padding: 0;
+ color:black;
}
li {
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 104bf91..2f4e2e5 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
@@ -35,6 +35,10 @@
#incomeInfo {
display: flex;
flex-direction: column;
+ background-color: #212942;
+ color:white;
+ border-radius: 10px;
+ margin: 10px;
}
#incomeList {
@@ -49,6 +53,7 @@
ul {
list-style: none;
padding: 0;
+ color: black;
}
li {
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 007d1df..75abede 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
@@ -3,13 +3,41 @@
import { writable } from 'svelte/store';
import axios from 'axios';
import { getCookie } from "svelte-cookie";
- import {expenseTypes} from "../../../stores.js";
+ import {expenseTypes, expenseData} from "../../../stores.js";
let showModal;
let amount = '';
+ let newData;
const selectedExpenseId = writable('');
+ function addNewExpense(id, amount) {
+ const today = new Date().toISOString().split('T')[0];
+ const expenseCategory = $expenseTypes.find(incomeType => incomeType.id === id);
+
+ console.log(amount);
+
+ if (expenseCategory) {
+ const newIncome = {
+ incomeId: 0,
+ userDTO: {
+ name: "Dummy",
+ surname: "User",
+ username: "dummyuser"
+ },
+ expenseCategory: expenseCategory,
+ date: today,
+ amount: amount
+ };
+
+ newData = $expenseData;
+ newData.push(newIncome);
+ $expenseData = newData;
+ } else {
+ console.error('Expense category not found for id:', id);
+ }
+ }
+
const createExpense = async () => {
const selectedExpense = $expenseTypes.find(expense => expense.id === $selectedExpenseId);
const data = {
@@ -17,9 +45,11 @@
amount: amount,
};
+ addNewExpense(selectedExpense.id, amount);
+
try {
const token = getCookie('access_token');
- console.log(token);
+
const response = await axios.post('http://localhost:8081/expenses', data, {
headers: {
'Authorization': `Bearer ${token}`,
@@ -27,10 +57,8 @@
},
});
- console.log(response.data);
-
- if (response.status === 200) {
- console.log("cool");
+ if (response.status === 201) {
+ //console.log("cool");
} else {
console.error('Error:', response.status);
}
diff --git a/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/infolists/contents/ContentIncome.svelte b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/infolists/contents/ContentIncome.svelte
index 3116d9a..f23e81e 100644
--- a/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/infolists/contents/ContentIncome.svelte
+++ b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/infolists/contents/ContentIncome.svelte
@@ -3,8 +3,7 @@
import { writable } from 'svelte/store';
import axios from 'axios';
import { getCookie } from "svelte-cookie";
- import {incomeData} from "../../../stores.js";
- import {incomeTypes} from "../../../stores.js";
+ import {incomeData, incomeTypes} from "../../../stores.js";
let showModal;
let amount = '';
@@ -34,7 +33,6 @@
newData = $incomeData;
newData.push(newIncome);
$incomeData = newData;
- console.log("ggWPPPPP", newIncome);
} else {
console.error('Income category not found for id:', id);
}
@@ -51,7 +49,7 @@
try {
const token = getCookie('access_token');
- console.log(token);
+
const response = await axios.post('http://localhost:8081/incomes', data, {
headers: {
'Authorization': `Bearer ${token}`,
@@ -59,8 +57,8 @@
},
});
- if (response.status === 200) {
- console.log("cool");
+ if (response.status === 201) {
+ //console.log("cool");
} else {
console.error('Error:', response.status);
}
diff --git a/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/other/DataMenu.svelte b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/other/DataMenu.svelte
index 2eec838..f2f2009 100644
--- a/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/other/DataMenu.svelte
+++ b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/other/DataMenu.svelte
@@ -4,14 +4,6 @@
import Graph3 from '../graphs/Graph3.svelte';
import Expenses from "../infolists/Expenses.svelte";
import Incomes from "../infolists/Incomes.svelte";
-
- function updateAll() {
- Graph1.updateGraph();
- Graph2.updateGraph();
- Graph3.updateGraph();
- Expenses.updateInfo();
- Incomes.updateInfo();
- }