diff --git a/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/+page.svelte b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/+page.svelte index 0d4f9a3..5a70387 100644 --- a/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/+page.svelte +++ b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/+page.svelte @@ -2,7 +2,6 @@ import { onMount } from "svelte"; onMount(() => { - // Redirect to /auth/login window.location.href = '/auth/login'; }); diff --git a/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/+page.svelte b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/+page.svelte index 42adfe0..01f3657 100644 --- a/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/+page.svelte +++ b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/+page.svelte @@ -3,15 +3,37 @@ import SideMenu from './menu/SideMenu.svelte'; import {selectedTab} from "./stores.js"; import {globalStyles} from "./styles.js"; + import StickyMenu from "./menu/StickyMenu.svelte"; + import {onMount} from "svelte"; function handleTabClick(tab) { selectedTab.set(tab); } + let screenWidth; + + onMount(() => { + screenWidth = window.innerWidth; + const handleResize = () => { + console.log(screenWidth); + screenWidth = window.innerWidth; + }; + + window.addEventListener('resize', handleResize); + + return () => { + window.removeEventListener('resize', handleResize); + }; + }); +
- + {#if screenWidth < 900} + + {:else} + + {/if}
@@ -19,10 +41,18 @@ @import url('https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400'); #wrapper { + padding: 0; + margin: 0; display: flex; align-items: stretch; min-height: 100vh; max-height: 100%; transition: all 0.3s cubic-bezier(.25,.8,.25,1); } + + @media only screen and (max-width: 900px) { + #wrapper { + flex-direction: column; + } + } \ No newline at end of file diff --git a/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/AdminPanel.svelte b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/AdminPanel.svelte new file mode 100644 index 0000000..4ffecc0 --- /dev/null +++ b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/AdminPanel.svelte @@ -0,0 +1 @@ +

ADMIN PANEL

\ No newline at end of file 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 a956f8a..98ab047 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,7 +4,17 @@ import ExpenseDashboard from "./ExpenseDashboard.svelte"; import IncomeDashboard from "./IncomeDashboard.svelte"; import Settings from "./Settings.svelte"; - import { incomeData, expenseData, incomeTypes, expenseTypes, selectedTab } from "../stores.js"; + import { + incomeData, + expenseData, + incomeTypes, + expenseTypes, + selectedTab, + monthIncome, + monthExpense, + tempExpense, + tempIncome + } from "../stores.js"; import {globalStyles} from "../styles.js"; let componentStyles; @@ -16,6 +26,8 @@ import axios from "axios"; import Statistics from "./Statistics.svelte"; + import AdminPanel from "./AdminPanel.svelte"; + import Profile from "./Profile.svelte"; onMount(async () => { const token = getCookie('access_token'); @@ -32,8 +44,8 @@ }; try { - var currentDate = new Date(); - var currentMonth = currentDate.getMonth() + 1; + const currentDate = new Date(); + const currentMonth = currentDate.getMonth() + 1; const [incomeResponse, expenseResponse, incomeTypesResponse, expenseTypesResponse] = await Promise.all([ axios.get('https://trackio.online:8081/incomes/personal-incomes?month=' + currentMonth , config), axios.get('https://trackio.online:8081/expenses/personal-expenses?month=' + currentMonth, config), @@ -45,8 +57,15 @@ incomeData.set(incomeResponse.data); expenseData.set(expenseResponse.data); + incomeTypes.set(incomeTypesResponse.data); expenseTypes.set(expenseTypesResponse.data); + + tempExpense.set(expenseResponse.data); + tempIncome.set(incomeResponse.data); + + monthIncome.set(incomeResponse.data); + monthExpense.set(expenseResponse.data); } catch (error) { console.error('Error:', error); } @@ -67,6 +86,10 @@ {:else if $selectedTab === 'statistics'} + {:else if $selectedTab === 'admin'} + + {:else if $selectedTab === 'profile'} + {/if} @@ -76,7 +99,6 @@ font-family: 'Source Sans Pro', sans-serif; border-radius: 20px; margin: 20px; - padding: 20px 20px 0; min-width: 100px; display: flex; flex: 1 1 auto; @@ -85,4 +107,12 @@ justify-content: stretch; transition: all 0.3s cubic-bezier(.25,.8,.25,1); } + + @media only screen and (max-width: 900px) { + #dashboard { + margin: 0; + flex-wrap: wrap; + width: 100%; + } + } diff --git a/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/ExpenseDashboard.svelte b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/ExpenseDashboard.svelte index 63c3b79..3896961 100644 --- a/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/ExpenseDashboard.svelte +++ b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/ExpenseDashboard.svelte @@ -1,9 +1,59 @@ - - - +
+
+
+ + +
+ +
+ +
+
+ +
+ + + diff --git a/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/Profile.svelte b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/Profile.svelte new file mode 100644 index 0000000..c74c94d --- /dev/null +++ b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/Profile.svelte @@ -0,0 +1 @@ +

PROFILE

\ No newline at end of file diff --git a/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/expenses/graphs/Graph3.svelte b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/expenses/graphs/Graph3.svelte index f7cae70..dc374c3 100644 --- a/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/expenses/graphs/Graph3.svelte +++ b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/expenses/graphs/Graph3.svelte @@ -1,59 +1,44 @@
- +
diff --git a/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/expenses/infolists/ContentExpense.svelte b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/expenses/infolists/ContentExpense.svelte index b65dbbd..8283051 100644 --- a/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/expenses/infolists/ContentExpense.svelte +++ b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/expenses/infolists/ContentExpense.svelte @@ -1,29 +1,23 @@
-

Expenses

-
(showModal = true)} on:keydown={() => console.log("keydown")}> +

Expenses: {$dateText}

+
console.log("keydown")}> +
- -
+ {#if showModal} +

Expense Details

@@ -94,9 +90,13 @@
- +
+ + +
+
- + {/if}
@@ -106,6 +106,32 @@ text-align: center; } + button { + background-image: linear-gradient(92.88deg, #455EB5 9.16%, #5643CC 43.89%, #673FD7 64.72%); + border-radius: 8px; + border-style: none; + box-sizing: border-box; + color: #FFFFFF; + cursor: pointer; + flex-shrink: 0; + font-family: "Inter UI", "SF Pro Display", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; + font-size: 16px; + font-weight: 500; + height: 3rem; + padding: 0 1.6rem; + text-align: center; + text-shadow: rgba(0, 0, 0, 0.25) 0 3px 8px; + transition: all .5s; + user-select: none; + -webkit-user-select: none; + touch-action: manipulation; + } + + button:hover { + box-shadow: rgba(80, 63, 205, 0.5) 0 1px 30px; + transition-duration: .1s; + } + #optionField { display: flex; align-items: center; @@ -133,7 +159,26 @@ border-radius: 20px; padding: 20px; max-width: 400px; - margin: 0 auto; + color: black; + } + + input[type=text] { + padding: 12px 20px; + margin: 8px 0; + display: inline-block; + border: 1px solid #ccc; + border-radius: 4px; + box-sizing: border-box; + } + + select { + padding: 12px 20px; + margin: 8px 0; + display: inline-block; + border: 1px solid #ccc; + border-radius: 4px; + box-sizing: border-box; + font-size: 16px; } h3 { diff --git a/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/expenses/infolists/Expenses.svelte b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/expenses/infolists/Expenses.svelte index 0f28cb4..0e66fa7 100644 --- a/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/expenses/infolists/Expenses.svelte +++ b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/expenses/infolists/Expenses.svelte @@ -1,38 +1,349 @@
- + +
+ + + +
    - {#each $expenseData.reverse() as item} -
  • + {#each $expenseData.toReversed() as item (item.expenseId)} +
  • +
    {#if textToIcon[item.expenseCategory.name]} {@html textToIcon[item.expenseCategory.name]} {/if} - {item.incomeCategory ? `${item.incomeCategory.name}: ` : `${item.expenseCategory.name}: `} + {item.incomeCategory ? `${item.incomeCategory.name}: ` : `${item.expenseCategory.name}: `} {item.incomeCategory ? `+${item.amount}$` : `-${item.amount}$`} - {`${item.date}`} + {`${item.date}`} + clickItemHandler(item.expenseId)}> + clickDeleteHandler(item.expenseId)}> + +
    + + {#if dropdownStates[item.expenseId]} + + {/if} + + {#if deleteDropdownStates[item.expenseId]} +
    + Confirm deletion? +
    + + +
    + + + +
    + {/if} +
  • {/each}
@@ -40,14 +351,107 @@
diff --git a/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/expenses/infolists/Modal.svelte b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/expenses/infolists/Modal.svelte deleted file mode 100644 index fca4643..0000000 --- a/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/expenses/infolists/Modal.svelte +++ /dev/null @@ -1,57 +0,0 @@ - - - - (showModal = false)} - on:click|self={() => dialog.close()} -> - -
- - -
-
- - diff --git a/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/expenses/other/DashHeader.svelte b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/expenses/other/DashHeader.svelte index c19c7e9..d09453e 100644 --- a/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/expenses/other/DashHeader.svelte +++ b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/expenses/other/DashHeader.svelte @@ -30,8 +30,7 @@ import {globalStyles} from "../../../styles.js"; #dashboardTitleWrapper { display: flex; flex-direction: column; - margin:20px; - margin-bottom: 0px; + margin: 20px 20px 0; } #dashboardTitleWrapper h5 { diff --git a/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/expenses/other/DataMenu.svelte b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/expenses/other/DataMenu.svelte deleted file mode 100644 index c03fb20..0000000 --- a/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/expenses/other/DataMenu.svelte +++ /dev/null @@ -1,437 +0,0 @@ - - -
-
- - - - - -
-
-
- -
-
- -
- -
- -
- - \ No newline at end of file diff --git a/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/expenses/other/QuickInfobar.svelte b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/expenses/other/QuickInfobar.svelte index e150a09..9c64799 100644 --- a/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/expenses/other/QuickInfobar.svelte +++ b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/expenses/other/QuickInfobar.svelte @@ -49,14 +49,17 @@ #quickInfobar { display: flex; justify-content: space-between; + flex-wrap: wrap; + min-height: 0; + flex: 1 1 auto; margin: 20px; } .infobarElement { margin: 10px; - width: 200px; - min-width: 100px; - height: 100px; + min-width: 0px; + min-height: 0px; + flex: 1 1 auto; color: white; padding: 10px; border-radius: 10px; diff --git a/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/expenses/util/EditEntry.svelte b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/expenses/util/EditEntry.svelte new file mode 100644 index 0000000..8901e74 --- /dev/null +++ b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/expenses/util/EditEntry.svelte @@ -0,0 +1,114 @@ + + +
+ Edit Entry + + +
+ + +
+
+ + \ No newline at end of file diff --git a/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/menu/SideMenu.svelte b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/menu/SideMenu.svelte index 69286ab..32ae702 100644 --- a/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/menu/SideMenu.svelte +++ b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/menu/SideMenu.svelte @@ -6,6 +6,7 @@ export let onTabClick; let username; + let isAdmin = true; onMount(async () => { const token = getCookie('access_token'); @@ -20,13 +21,15 @@ const response = await axios.get('https://trackio.online:8081/users/get-user-data', config); const data = response.data; username = data.username; - console.log(username) } catch (error) { console.error('Error:', error); } }); + function doNothing() { + } +
@@ -37,33 +40,35 @@