diff --git a/finnow-api/source/auth/api.d b/finnow-api/source/auth/api.d index 897a7ba..fb616b1 100644 --- a/finnow-api/source/auth/api.d +++ b/finnow-api/source/auth/api.d @@ -43,4 +43,5 @@ void changeMyPassword(ref ServerHttpRequest request, ref ServerHttpResponse resp AuthContext auth = getAuthContext(request); PasswordChangeRequest data = readJsonBodyAs!PasswordChangeRequest(request); changePassword(auth.user, new FileSystemUserRepository(), data.currentPassword, data.newPassword); + infoF!"User \"%s\" changed their password."(auth.user.username); } diff --git a/finnow-api/source/auth/api_public.d b/finnow-api/source/auth/api_public.d index f0fb55c..cd10540 100644 --- a/finnow-api/source/auth/api_public.d +++ b/finnow-api/source/auth/api_public.d @@ -19,7 +19,7 @@ void postLogin(ref ServerHttpRequest request, ref ServerHttpResponse response) { LoginData data = readJsonBodyAs!LoginData(request); string token = generateTokenForLogin(data.username, data.password); response.writeBodyString(token); - debugF!"Generated token for user: %s"(data.username); + infoF!"User \"%s\" logged in."(data.username); } struct UsernameAvailabilityResponse { @@ -71,6 +71,6 @@ void postRegister(ref ServerHttpRequest request, ref ServerHttpResponse response } User user = createNewUser(userRepo, registrationData.username, registrationData.password); - infoF!"Created user: %s"(registrationData.username); + infoF!"User \"%s\" registered."(registrationData.username); response.writeBodyString(user.username); } diff --git a/web-app/src/assets/main.css b/web-app/src/assets/main.css index 13d9690..c66ca86 100644 --- a/web-app/src/assets/main.css +++ b/web-app/src/assets/main.css @@ -39,13 +39,40 @@ a:hover { .app-module-container { display: flex; flex-wrap: wrap; - gap: 20px; + align-items: stretch; + gap: 1rem; padding: 1rem; } -@media (max-width: 600px) { - .app-module-container { - padding: 0.5rem; +.app-module { + width: calc(33.33% - 1.666rem); + display: inline-block; + min-height: 200px; + background-color: var(--bg-lighter); + border-radius: 0.5rem; + padding: 0.25rem 0.5rem 0.5rem 0.5rem; + display: flex; + flex-direction: column; + justify-content: space-between; +} + +.app-module-full-width { + width: 100%; +} + +.app-module-header { + margin: 0; +} + +@media (max-width: 1600px) { + .app-module { + width: calc(50% - 1.5rem); + } +} + +@media (max-width: 800px) { + .app-module { + width: 100%; } } diff --git a/web-app/src/components/HomeModule.vue b/web-app/src/components/HomeModule.vue index 7c80814..1b3b733 100644 --- a/web-app/src/components/HomeModule.vue +++ b/web-app/src/components/HomeModule.vue @@ -14,20 +14,3 @@ defineProps<{ title: string }>() - diff --git a/web-app/src/components/TransactionCard.vue b/web-app/src/components/TransactionCard.vue index 8828780..a823fdb 100644 --- a/web-app/src/components/TransactionCard.vue +++ b/web-app/src/components/TransactionCard.vue @@ -30,88 +30,74 @@ function goToTransaction() { } - diff --git a/web-app/src/components/common/PaginationControls.vue b/web-app/src/components/common/PaginationControls.vue index 6bce246..80aa812 100644 --- a/web-app/src/components/common/PaginationControls.vue +++ b/web-app/src/components/common/PaginationControls.vue @@ -28,44 +28,18 @@ function incrementPage(step: number) { diff --git a/web-app/src/pages/home/AnalyticsModule.vue b/web-app/src/pages/home/AnalyticsModule.vue index ca6dff1..0ae8aec 100644 --- a/web-app/src/pages/home/AnalyticsModule.vue +++ b/web-app/src/pages/home/AnalyticsModule.vue @@ -104,68 +104,37 @@ onMounted(async () => { })