From ddeb9544d4b450e82a101c5a696765037018538a Mon Sep 17 00:00:00 2001 From: mirrerror Date: Wed, 25 Oct 2023 11:33:53 +0300 Subject: [PATCH 1/4] update .gitignore --- .gitignore | 4 ++-- .../com/faf223/expensetrackerfaf/web/package-lock.json | 8 ++++---- .../java/com/faf223/expensetrackerfaf/web/package.json | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index 890199e..68c1a68 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,8 @@ target/ !**/src/main/**/target/ !**/src/test/**/target/ /src/main/resources/application.properties +/src/main/java/web/src/package.json +/src/main/java/web/src/package-lock.json ### STS ### .apt_generated @@ -32,5 +34,3 @@ build/ ### VS Code ### .vscode/ - -/src/main/resources/application.properties diff --git a/src/main/java/com/faf223/expensetrackerfaf/web/package-lock.json b/src/main/java/com/faf223/expensetrackerfaf/web/package-lock.json index 58c9edf..743c5b0 100644 --- a/src/main/java/com/faf223/expensetrackerfaf/web/package-lock.json +++ b/src/main/java/com/faf223/expensetrackerfaf/web/package-lock.json @@ -25,7 +25,7 @@ "prettier": "^2.8.0", "prettier-plugin-svelte": "^2.10.1", "svelte": "^4.0.5", - "vite": "^4.4.2" + "vite": "^4.5.0" } }, "node_modules/@aashutoshrathi/word-wrap": { @@ -2371,9 +2371,9 @@ "dev": true }, "node_modules/vite": { - "version": "4.4.11", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.4.11.tgz", - "integrity": "sha512-ksNZJlkcU9b0lBwAGZGGaZHCMqHsc8OpgtoYhsQ4/I2v5cnpmmmqe5pM4nv/4Hn6G/2GhTdj0DhZh2e+Er1q5A==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.0.tgz", + "integrity": "sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==", "dev": true, "dependencies": { "esbuild": "^0.18.10", diff --git a/src/main/java/com/faf223/expensetrackerfaf/web/package.json b/src/main/java/com/faf223/expensetrackerfaf/web/package.json index 556c627..7cadf1d 100644 --- a/src/main/java/com/faf223/expensetrackerfaf/web/package.json +++ b/src/main/java/com/faf223/expensetrackerfaf/web/package.json @@ -20,7 +20,7 @@ "prettier": "^2.8.0", "prettier-plugin-svelte": "^2.10.1", "svelte": "^4.0.5", - "vite": "^4.4.2" + "vite": "^4.5.0" }, "type": "module", "dependencies": { From ca7eed91547f5f08a1e848779fce655b009bf43a Mon Sep 17 00:00:00 2001 From: mirrerror Date: Thu, 26 Oct 2023 09:08:44 +0300 Subject: [PATCH 2/4] add package lock --- .../expensetrackerfaf/web/package-lock.json | 28 ++++++------------- 1 file changed, 8 insertions(+), 20 deletions(-) diff --git a/src/main/java/com/faf223/expensetrackerfaf/web/package-lock.json b/src/main/java/com/faf223/expensetrackerfaf/web/package-lock.json index 133e4e9..385192e 100644 --- a/src/main/java/com/faf223/expensetrackerfaf/web/package-lock.json +++ b/src/main/java/com/faf223/expensetrackerfaf/web/package-lock.json @@ -656,9 +656,9 @@ } }, "node_modules/@sveltejs/kit": { - "version": "1.25.1", - "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-1.25.1.tgz", - "integrity": "sha512-pD8XsvNJNgTNkFngNlM60my/X8dXWPKVzN5RghEQr0NjGZmuCjy49AfFu2cGbZjNf5pBcqd2RCNMW912P5fkhA==", + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-1.27.0.tgz", + "integrity": "sha512-a1wPIq2uO3RsTmV+KbA4venOgCJDbfHTXFe+g7eJR3N8l46DSuulUONJ1qnk2EnZWYC1Uj3Wbp3US0WFocIzXg==", "dev": true, "hasInstallScript": true, "dependencies": { @@ -669,12 +669,12 @@ "esm-env": "^1.0.0", "kleur": "^4.1.5", "magic-string": "^0.30.0", - "mime": "^3.0.0", + "mrmime": "^1.0.1", "sade": "^1.8.1", "set-cookie-parser": "^2.6.0", "sirv": "^2.0.2", "tiny-glob": "^0.2.9", - "undici": "~5.25.0" + "undici": "~5.26.2" }, "bin": { "svelte-kit": "svelte-kit.js" @@ -1759,18 +1759,6 @@ "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", "dev": true }, - "node_modules/mime": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", - "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", - "dev": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=10.0.0" - } - }, "node_modules/mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", @@ -2470,9 +2458,9 @@ } }, "node_modules/undici": { - "version": "5.25.4", - "resolved": "https://registry.npmjs.org/undici/-/undici-5.25.4.tgz", - "integrity": "sha512-450yJxT29qKMf3aoudzFpIciqpx6Pji3hEWaXqXmanbXF58LTAGCKxcJjxMXWu3iG+Mudgo3ZUfDB6YDFd/dAw==", + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.26.5.tgz", + "integrity": "sha512-cSb4bPFd5qgR7qr2jYAi0hlX9n5YKK2ONKkLFkxl+v/9BvC0sOpZjBHDBSXc5lWAf5ty9oZdRXytBIHzgUcerw==", "dev": true, "dependencies": { "@fastify/busboy": "^2.0.0" From 9c8946f23684d00076b8ef9db018b1ec4741d337 Mon Sep 17 00:00:00 2001 From: mirrerror Date: Thu, 26 Oct 2023 13:29:57 +0300 Subject: [PATCH 3/4] fix cors filter --- .../expensetrackerfaf/config/CorsFilter.java | 23 +++++++++---------- 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/faf223/expensetrackerfaf/config/CorsFilter.java b/src/main/java/com/faf223/expensetrackerfaf/config/CorsFilter.java index 8c61939..ed23357 100644 --- a/src/main/java/com/faf223/expensetrackerfaf/config/CorsFilter.java +++ b/src/main/java/com/faf223/expensetrackerfaf/config/CorsFilter.java @@ -17,21 +17,20 @@ public class CorsFilter implements Filter { public void destroy() { } + @Override - public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) - throws IOException, ServletException { - HttpServletResponse response = (HttpServletResponse) res; - HttpServletRequest request = (HttpServletRequest) req; - - response.setHeader("Access-Control-Allow-Origin", "http://localhost:5173"); - response.setHeader("Access-Control-Allow-Methods", "POST, PUT, GET, OPTIONS, DELETE"); - response.setHeader("Access-Control-Max-Age", "3600"); - response.setHeader("Access-Control-Allow-Headers", "X-Requested-With, X-Auth-Token"); + public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { + HttpServletResponse response = (HttpServletResponse) servletResponse; + response.setHeader("Access-Control-Allow-Origin", "*"); response.setHeader("Access-Control-Allow-Credentials", "true"); - - if (!"OPTIONS".equalsIgnoreCase(request.getMethod())) { - chain.doFilter(req, res); + response.setHeader("Access-Control-Allow-Methods", "POST, GET, HEAD, OPTIONS"); + response.setHeader("Access-Control-Allow-Headers", "Origin, Accept, X-Requested-With, Content-Type, Access-Control-Request-Method, Access-Control-Request-Headers"); + if ("OPTIONS".equalsIgnoreCase(((HttpServletRequest) servletRequest).getMethod())) { + response.setStatus(HttpServletResponse.SC_OK); + } else { + filterChain.doFilter(servletRequest, response); } + } @Override From 34903cd287bb4aede19445e616a138602cef3b06 Mon Sep 17 00:00:00 2001 From: Daniel Date: Thu, 26 Oct 2023 14:27:44 +0300 Subject: [PATCH 4/4] Fixed front --- .../expensetrackerfaf/web/package-lock.json | 85 ++++++++++++++--- .../faf223/expensetrackerfaf/web/package.json | 3 +- .../routes/dashboard/board/Dashboard.svelte | 57 ++++++++---- .../dashboard/board/graphs/Graph1.svelte | 92 +++++++++++-------- .../infolists/contents/ContentExpense.svelte | 4 +- .../infolists/contents/ContentIncome.svelte | 38 +++++++- .../board/infolists/modals/Modal.svelte | 6 +- .../web/src/routes/dashboard/stores.js | 7 ++ 8 files changed, 210 insertions(+), 82 deletions(-) create mode 100644 src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/stores.js diff --git a/src/main/java/com/faf223/expensetrackerfaf/web/package-lock.json b/src/main/java/com/faf223/expensetrackerfaf/web/package-lock.json index f079f07..c2848dc 100644 --- a/src/main/java/com/faf223/expensetrackerfaf/web/package-lock.json +++ b/src/main/java/com/faf223/expensetrackerfaf/web/package-lock.json @@ -14,6 +14,7 @@ "chart.js": "^4.4.0", "email-validator": "^2.0.4", "js-cookie": "^3.0.5", + "stores": "^1.0.0", "svelte-cookie": "^1.0.1", "svelte-fa": "^3.0.4", "svelte-simple-modal": "^1.6.1", @@ -30,7 +31,7 @@ "prettier": "^2.8.0", "prettier-plugin-svelte": "^2.10.1", "svelte": "^4.0.5", - "vite": "^4.5.0" + "vite": "^4.4.2" } }, "node_modules/@aashutoshrathi/word-wrap": { @@ -651,9 +652,9 @@ } }, "node_modules/@sveltejs/kit": { - "version": "1.27.0", - "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-1.27.0.tgz", - "integrity": "sha512-a1wPIq2uO3RsTmV+KbA4venOgCJDbfHTXFe+g7eJR3N8l46DSuulUONJ1qnk2EnZWYC1Uj3Wbp3US0WFocIzXg==", + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-1.25.1.tgz", + "integrity": "sha512-pD8XsvNJNgTNkFngNlM60my/X8dXWPKVzN5RghEQr0NjGZmuCjy49AfFu2cGbZjNf5pBcqd2RCNMW912P5fkhA==", "dev": true, "hasInstallScript": true, "dependencies": { @@ -664,12 +665,12 @@ "esm-env": "^1.0.0", "kleur": "^4.1.5", "magic-string": "^0.30.0", - "mrmime": "^1.0.1", + "mime": "^3.0.0", "sade": "^1.8.1", "set-cookie-parser": "^2.6.0", "sirv": "^2.0.2", "tiny-glob": "^0.2.9", - "undici": "~5.26.2" + "undici": "~5.25.0" }, "bin": { "svelte-kit": "svelte-kit.js" @@ -975,6 +976,11 @@ "node": ">=4" } }, + "node_modules/curry": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/curry/-/curry-1.2.0.tgz", + "integrity": "sha512-PAdmqPH2DUYTCc/aknv6RxRxmqdRHclvbz+wP8t1Xpg2Nu13qg+oLb6/5iFoDmf4dbmC9loYoy9PwwGbFt/AqA==" + }, "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -1485,6 +1491,11 @@ "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==", "dev": true }, + "node_modules/graceful-fs-stream": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/graceful-fs-stream/-/graceful-fs-stream-0.0.1.tgz", + "integrity": "sha512-yZ9Lx4O/LbIQ0prZNtXOt97h8ICA2fwPcmSkrjZcOnXKrMzR8ao+kE78N76su0ffaawHLHyFYt75AkgHdVb41Q==" + }, "node_modules/graphemer": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", @@ -1742,6 +1753,18 @@ "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==" }, + "node_modules/mime": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", + "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=10.0.0" + } + }, "node_modules/mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", @@ -1773,6 +1796,25 @@ "node": "*" } }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, "node_modules/mri": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", @@ -1821,6 +1863,14 @@ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -2269,6 +2319,17 @@ "node": ">=0.10.0" } }, + "node_modules/stores": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stores/-/stores-1.0.0.tgz", + "integrity": "sha512-aOWM422mpxSj37uo9R1aVKDF2sDRCzjdbn6CYT/H9BECxuuliALmAZcmRVI9/Wq6Pu/HKDY1xZ+ssSuvY6fLlA==", + "dependencies": { + "curry": "~1.2.0", + "graceful-fs-stream": "0.0.1", + "mkdirp": "^0.5.1", + "on-headers": "^1.0.1" + } + }, "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -2446,9 +2507,9 @@ } }, "node_modules/undici": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici/-/undici-5.26.5.tgz", - "integrity": "sha512-cSb4bPFd5qgR7qr2jYAi0hlX9n5YKK2ONKkLFkxl+v/9BvC0sOpZjBHDBSXc5lWAf5ty9oZdRXytBIHzgUcerw==", + "version": "5.25.4", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.25.4.tgz", + "integrity": "sha512-450yJxT29qKMf3aoudzFpIciqpx6Pji3hEWaXqXmanbXF58LTAGCKxcJjxMXWu3iG+Mudgo3ZUfDB6YDFd/dAw==", "dev": true, "dependencies": { "@fastify/busboy": "^2.0.0" @@ -2473,9 +2534,9 @@ "dev": true }, "node_modules/vite": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.0.tgz", - "integrity": "sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==", + "version": "4.4.11", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.4.11.tgz", + "integrity": "sha512-ksNZJlkcU9b0lBwAGZGGaZHCMqHsc8OpgtoYhsQ4/I2v5cnpmmmqe5pM4nv/4Hn6G/2GhTdj0DhZh2e+Er1q5A==", "dev": true, "dependencies": { "esbuild": "^0.18.10", diff --git a/src/main/java/com/faf223/expensetrackerfaf/web/package.json b/src/main/java/com/faf223/expensetrackerfaf/web/package.json index ec1d9b6..4dcd8b3 100644 --- a/src/main/java/com/faf223/expensetrackerfaf/web/package.json +++ b/src/main/java/com/faf223/expensetrackerfaf/web/package.json @@ -20,7 +20,7 @@ "prettier": "^2.8.0", "prettier-plugin-svelte": "^2.10.1", "svelte": "^4.0.5", - "vite": "^4.5.0" + "vite": "^4.4.2" }, "type": "module", "dependencies": { @@ -30,6 +30,7 @@ "chart.js": "^4.4.0", "email-validator": "^2.0.4", "js-cookie": "^3.0.5", + "stores": "^1.0.0", "svelte-cookie": "^1.0.1", "svelte-fa": "^3.0.4", "svelte-simple-modal": "^1.6.1", 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 8849016..c04b686 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 @@ -4,33 +4,52 @@ import QuickInfobar from "./other/QuickInfobar.svelte"; import { getCookie } from "svelte-cookie"; import {onMount} from "svelte"; - import {writable} from "svelte/store"; + + import {incomeData} from "../stores.js"; + import {expenseData} from "../stores.js"; + import {incomeTypes} from "../stores.js"; + import axios from "axios"; - const incomeData = writable([]); - const expenseData = writable([]); - onMount(async () => { - if (getCookie('access_token') === null ) { + onMount(() => { + if (getCookie('access_token') === null) { window.location.href = '/auth/login'; } - try { - const response = await axios.get('http://localhost:8081/incomes/personal-incomes', config); - incomeData.set(response.data); - } catch (error) { - console.error('Error fetching income data:', error); - } + const token = getCookie('access_token'); + const config = { + headers: { + 'Authorization': `Bearer ${token}` + } + }; - try { - const response = await axios.get('http://localhost:8081/expenses/personal-expenses', config); - expenseData.set(response.data); - } catch (error) { - console.error('Error fetching expense data:', error); - } + 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)); - console.log(getCookie('access_token')); - }) + 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)); + + Promise.all([incomePromise, expensePromise, incomeTypesPromise]) + .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 433a217..56b6e48 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 @@ -1,62 +1,78 @@
- -