From 308dfaa58dcd6e5af65bc73c58462e551ad76ddf Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sun, 4 May 2025 11:16:32 +0200 Subject: [PATCH 1/8] Feature/upgrade prisma to version 6.7.0 (#4647) * Upgrade prisma to version 6.7.0 * Update changelog --- CHANGELOG.md | 1 + package-lock.json | 72 +++++++++++++++++++++++------------------------ package.json | 4 +-- 3 files changed, 39 insertions(+), 38 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 95d1e00e..ea0e682f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Deprecated the endpoint to get a portfolio position in favor of get a holding - Deprecated the endpoint to update portfolio position tags in favor of update holding tags +- Upgraded `prisma` from version `6.6.0` to `6.7.0` ## 2.159.0 - 2025-05-02 diff --git a/package-lock.json b/package-lock.json index 6e4e2c30..cd38cff6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -41,7 +41,7 @@ "@nestjs/platform-express": "10.4.15", "@nestjs/schedule": "4.1.2", "@nestjs/serve-static": "4.0.2", - "@prisma/client": "6.6.0", + "@prisma/client": "6.7.0", "@simplewebauthn/browser": "13.1.0", "@simplewebauthn/server": "13.1.1", "@stripe/stripe-js": "5.4.0", @@ -150,7 +150,7 @@ "nx": "20.8.1", "prettier": "3.5.3", "prettier-plugin-organize-attributes": "1.0.0", - "prisma": "6.6.0", + "prisma": "6.7.0", "react": "18.2.0", "react-dom": "18.2.0", "replace-in-file": "8.3.0", @@ -9631,9 +9631,9 @@ "license": "MIT" }, "node_modules/@prisma/client": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/@prisma/client/-/client-6.6.0.tgz", - "integrity": "sha512-vfp73YT/BHsWWOAuthKQ/1lBgESSqYqAWZEYyTdGXyFAHpmewwWL2Iz6ErIzkj4aHbuc6/cGSsE6ZY+pBO04Cg==", + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/@prisma/client/-/client-6.7.0.tgz", + "integrity": "sha512-+k61zZn1XHjbZul8q6TdQLpuI/cvyfil87zqK2zpreNIXyXtpUv3+H/oM69hcsFcZXaokHJIzPAt5Z8C8eK2QA==", "hasInstallScript": true, "license": "Apache-2.0", "engines": { @@ -9653,9 +9653,9 @@ } }, "node_modules/@prisma/config": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/@prisma/config/-/config-6.6.0.tgz", - "integrity": "sha512-d8FlXRHsx72RbN8nA2QCRORNv5AcUnPXgtPvwhXmYkQSMF/j9cKaJg+9VcUzBRXGy9QBckNzEQDEJZdEOZ+ubA==", + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/@prisma/config/-/config-6.7.0.tgz", + "integrity": "sha512-di8QDdvSz7DLUi3OOcCHSwxRNeW7jtGRUD2+Z3SdNE3A+pPiNT8WgUJoUyOwJmUr5t+JA2W15P78C/N+8RXrOA==", "devOptional": true, "license": "Apache-2.0", "dependencies": { @@ -9664,53 +9664,53 @@ } }, "node_modules/@prisma/debug": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/@prisma/debug/-/debug-6.6.0.tgz", - "integrity": "sha512-DL6n4IKlW5k2LEXzpN60SQ1kP/F6fqaCgU/McgaYsxSf43GZ8lwtmXLke9efS+L1uGmrhtBUP4npV/QKF8s2ZQ==", + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/@prisma/debug/-/debug-6.7.0.tgz", + "integrity": "sha512-RabHn9emKoYFsv99RLxvfG2GHzWk2ZI1BuVzqYtmMSIcuGboHY5uFt3Q3boOREM9de6z5s3bQoyKeWnq8Fz22w==", "devOptional": true, "license": "Apache-2.0" }, "node_modules/@prisma/engines": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-6.6.0.tgz", - "integrity": "sha512-nC0IV4NHh7500cozD1fBoTwTD1ydJERndreIjpZr/S3mno3P6tm8qnXmIND5SwUkibNeSJMpgl4gAnlqJ/gVlg==", + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-6.7.0.tgz", + "integrity": "sha512-3wDMesnOxPrOsq++e5oKV9LmIiEazFTRFZrlULDQ8fxdub5w4NgRBoxtWbvXmj2nJVCnzuz6eFix3OhIqsZ1jw==", "devOptional": true, "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { - "@prisma/debug": "6.6.0", - "@prisma/engines-version": "6.6.0-53.f676762280b54cd07c770017ed3711ddde35f37a", - "@prisma/fetch-engine": "6.6.0", - "@prisma/get-platform": "6.6.0" + "@prisma/debug": "6.7.0", + "@prisma/engines-version": "6.7.0-36.3cff47a7f5d65c3ea74883f1d736e41d68ce91ed", + "@prisma/fetch-engine": "6.7.0", + "@prisma/get-platform": "6.7.0" } }, "node_modules/@prisma/engines-version": { - "version": "6.6.0-53.f676762280b54cd07c770017ed3711ddde35f37a", - "resolved": "https://registry.npmjs.org/@prisma/engines-version/-/engines-version-6.6.0-53.f676762280b54cd07c770017ed3711ddde35f37a.tgz", - "integrity": "sha512-JzRaQ5Em1fuEcbR3nUsMNYaIYrOT1iMheenjCvzZblJcjv/3JIuxXN7RCNT5i6lRkLodW5ojCGhR7n5yvnNKrw==", + "version": "6.7.0-36.3cff47a7f5d65c3ea74883f1d736e41d68ce91ed", + "resolved": "https://registry.npmjs.org/@prisma/engines-version/-/engines-version-6.7.0-36.3cff47a7f5d65c3ea74883f1d736e41d68ce91ed.tgz", + "integrity": "sha512-EvpOFEWf1KkJpDsBCrih0kg3HdHuaCnXmMn7XFPObpFTzagK1N0Q0FMnYPsEhvARfANP5Ok11QyoTIRA2hgJTA==", "devOptional": true, "license": "Apache-2.0" }, "node_modules/@prisma/fetch-engine": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/@prisma/fetch-engine/-/fetch-engine-6.6.0.tgz", - "integrity": "sha512-Ohfo8gKp05LFLZaBlPUApM0M7k43a0jmo86YY35u1/4t+vuQH9mRGU7jGwVzGFY3v+9edeb/cowb1oG4buM1yw==", + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/@prisma/fetch-engine/-/fetch-engine-6.7.0.tgz", + "integrity": "sha512-zLlAGnrkmioPKJR4Yf7NfW3hftcvqeNNEHleMZK9yX7RZSkhmxacAYyfGsCcqRt47jiZ7RKdgE0Wh2fWnm7WsQ==", "devOptional": true, "license": "Apache-2.0", "dependencies": { - "@prisma/debug": "6.6.0", - "@prisma/engines-version": "6.6.0-53.f676762280b54cd07c770017ed3711ddde35f37a", - "@prisma/get-platform": "6.6.0" + "@prisma/debug": "6.7.0", + "@prisma/engines-version": "6.7.0-36.3cff47a7f5d65c3ea74883f1d736e41d68ce91ed", + "@prisma/get-platform": "6.7.0" } }, "node_modules/@prisma/get-platform": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/@prisma/get-platform/-/get-platform-6.6.0.tgz", - "integrity": "sha512-3qCwmnT4Jh5WCGUrkWcc6VZaw0JY7eWN175/pcb5Z6FiLZZ3ygY93UX0WuV41bG51a6JN/oBH0uywJ90Y+V5eA==", + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/@prisma/get-platform/-/get-platform-6.7.0.tgz", + "integrity": "sha512-i9IH5lO4fQwnMLvQLYNdgVh9TK3PuWBfQd7QLk/YurnAIg+VeADcZDbmhAi4XBBDD+hDif9hrKyASu0hbjwabw==", "devOptional": true, "license": "Apache-2.0", "dependencies": { - "@prisma/debug": "6.6.0" + "@prisma/debug": "6.7.0" } }, "node_modules/@redis/bloom": { @@ -28457,15 +28457,15 @@ } }, "node_modules/prisma": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/prisma/-/prisma-6.6.0.tgz", - "integrity": "sha512-SYCUykz+1cnl6Ugd8VUvtTQq5+j1Q7C0CtzKPjQ8JyA2ALh0EEJkMCS+KgdnvKW1lrxjtjCyJSHOOT236mENYg==", + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/prisma/-/prisma-6.7.0.tgz", + "integrity": "sha512-vArg+4UqnQ13CVhc2WUosemwh6hr6cr6FY2uzDvCIFwH8pu8BXVv38PktoMLVjtX7sbYThxbnZF5YiR8sN2clw==", "devOptional": true, "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { - "@prisma/config": "6.6.0", - "@prisma/engines": "6.6.0" + "@prisma/config": "6.7.0", + "@prisma/engines": "6.7.0" }, "bin": { "prisma": "build/index.js" diff --git a/package.json b/package.json index f591c933..161aa539 100644 --- a/package.json +++ b/package.json @@ -87,7 +87,7 @@ "@nestjs/platform-express": "10.4.15", "@nestjs/schedule": "4.1.2", "@nestjs/serve-static": "4.0.2", - "@prisma/client": "6.6.0", + "@prisma/client": "6.7.0", "@simplewebauthn/browser": "13.1.0", "@simplewebauthn/server": "13.1.1", "@stripe/stripe-js": "5.4.0", @@ -196,7 +196,7 @@ "nx": "20.8.1", "prettier": "3.5.3", "prettier-plugin-organize-attributes": "1.0.0", - "prisma": "6.6.0", + "prisma": "6.7.0", "react": "18.2.0", "react-dom": "18.2.0", "replace-in-file": "8.3.0", From 620ae023d9ac8c1f3450c8f4285a373b6b57a130 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sun, 4 May 2025 11:17:15 +0200 Subject: [PATCH 2/8] Feature/move watchlist to general availability (#4653) * Add watchlist to features page * Move watchlist to general availability * Update changelog --- CHANGELOG.md | 5 +++ .../src/app/pages/features/features-page.html | 45 +++++++++++++------ .../src/app/pages/home/home-page.component.ts | 12 ++--- 3 files changed, 42 insertions(+), 20 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ea0e682f..a124432f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,8 +7,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## Unreleased +### Added + +- Added the watchlist to the features page + ### Changed +- Moved the watchlist from experimental to general availability - Deprecated the endpoint to get a portfolio position in favor of get a holding - Deprecated the endpoint to update portfolio position tags in favor of update holding tags - Upgraded `prisma` from version `6.6.0` to `6.7.0` diff --git a/apps/client/src/app/pages/features/features-page.html b/apps/client/src/app/pages/features/features-page.html index aa2ae372..30b1af29 100644 --- a/apps/client/src/app/pages/features/features-page.html +++ b/apps/client/src/app/pages/features/features-page.html @@ -175,10 +175,15 @@
-

Dark Mode

+

+ Static Analysis + @if (hasPermissionForSubscription) { + + } +

- Ghostfolio automatically switches to a dark color theme based - on your operating system's preferences. + Identify potential risks in your portfolio with Ghostfolio + X-ray, the static portfolio analysis.

@@ -188,10 +193,14 @@
-

Zen Mode

+

+ Watchlist + @if (hasPermissionForSubscription) { + + } +

- Keep calm and activate Zen Mode if the markets are going - crazy. + Follow assets you are interested in closely on your watchlist.

@@ -221,15 +230,23 @@
-

- Static Analysis - @if (hasPermissionForSubscription) { - - } -

+

Dark Mode

- Identify potential risks in your portfolio with Ghostfolio - X-ray, the static portfolio analysis. + Ghostfolio automatically switches to a dark color theme based + on your operating system's preferences. +

+
+
+
+ +
+ + +
+

Zen Mode

+

+ Keep calm and activate Zen Mode if the markets are going + crazy.

diff --git a/apps/client/src/app/pages/home/home-page.component.ts b/apps/client/src/app/pages/home/home-page.component.ts index 928ad293..ec49143a 100644 --- a/apps/client/src/app/pages/home/home-page.component.ts +++ b/apps/client/src/app/pages/home/home-page.component.ts @@ -48,18 +48,18 @@ export class HomePageComponent implements OnDestroy, OnInit { label: $localize`Summary`, path: ['/home', 'summary'] }, + { + iconName: 'bookmark-outline', + label: $localize`Watchlist`, + path: ['/home', 'watchlist'] + }, { iconName: 'newspaper-outline', label: $localize`Markets`, path: ['/home', 'market'] - }, - { - iconName: 'bookmark-outline', - label: $localize`Watchlist`, - path: ['/home', 'watchlist'], - showCondition: this.user?.settings?.isExperimentalFeatures } ]; + this.user = state.user; this.changeDetectorRef.markForCheck(); From b93671c74006de66c8a3b227228fcf33a00204a8 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 4 May 2025 12:03:30 +0200 Subject: [PATCH 3/8] Feature/update locales (#4654) Co-authored-by: github-actions[bot] --- apps/client/src/locales/messages.ca.xlf | 24 ++++++++++++++---------- apps/client/src/locales/messages.de.xlf | 24 ++++++++++++++---------- apps/client/src/locales/messages.es.xlf | 24 ++++++++++++++---------- apps/client/src/locales/messages.fr.xlf | 24 ++++++++++++++---------- apps/client/src/locales/messages.it.xlf | 24 ++++++++++++++---------- apps/client/src/locales/messages.nl.xlf | 24 ++++++++++++++---------- apps/client/src/locales/messages.pl.xlf | 24 ++++++++++++++---------- apps/client/src/locales/messages.pt.xlf | 24 ++++++++++++++---------- apps/client/src/locales/messages.tr.xlf | 24 ++++++++++++++---------- apps/client/src/locales/messages.uk.xlf | 24 ++++++++++++++---------- apps/client/src/locales/messages.xlf | 24 ++++++++++++++---------- apps/client/src/locales/messages.zh.xlf | 24 ++++++++++++++---------- 12 files changed, 168 insertions(+), 120 deletions(-) diff --git a/apps/client/src/locales/messages.ca.xlf b/apps/client/src/locales/messages.ca.xlf index 5dd6bfbd..0896d6b0 100644 --- a/apps/client/src/locales/messages.ca.xlf +++ b/apps/client/src/locales/messages.ca.xlf @@ -354,7 +354,7 @@ apps/client/src/app/pages/features/features-page.html - 260 + 277 @@ -3491,7 +3491,7 @@ apps/client/src/app/pages/features/features-page.html - 191 + 246 @@ -4035,7 +4035,7 @@ Dark Mode apps/client/src/app/pages/features/features-page.html - 178 + 233 @@ -4043,7 +4043,7 @@ Market Mood apps/client/src/app/pages/features/features-page.html - 206 + 215 @@ -4051,7 +4051,7 @@ Static Analysis apps/client/src/app/pages/features/features-page.html - 225 + 179 @@ -4059,7 +4059,7 @@ Multi-Language apps/client/src/app/pages/features/features-page.html - 242 + 259 @@ -4067,7 +4067,7 @@ Open Source Software apps/client/src/app/pages/features/features-page.html - 279 + 296 @@ -4075,7 +4075,7 @@ Get Started apps/client/src/app/pages/features/features-page.html - 304 + 321 apps/client/src/app/pages/public/public-page.html @@ -4123,7 +4123,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 53 + 58 apps/client/src/app/pages/markets/markets-page-routing.module.ts @@ -7944,6 +7944,10 @@ apps/client/src/app/components/home-watchlist/home-watchlist.html 4 + + apps/client/src/app/pages/features/features-page.html + 197 + Watchlist @@ -7954,7 +7958,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 58 + 53 diff --git a/apps/client/src/locales/messages.de.xlf b/apps/client/src/locales/messages.de.xlf index 00ad0143..428e1243 100644 --- a/apps/client/src/locales/messages.de.xlf +++ b/apps/client/src/locales/messages.de.xlf @@ -1002,7 +1002,7 @@ Registrieren apps/client/src/app/pages/features/features-page.html - 304 + 321 apps/client/src/app/pages/public/public-page.html @@ -1766,7 +1766,7 @@ apps/client/src/app/pages/features/features-page.html - 191 + 246 @@ -1994,7 +1994,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 53 + 58 apps/client/src/app/pages/markets/markets-page-routing.module.ts @@ -3238,7 +3238,7 @@ apps/client/src/app/pages/features/features-page.html - 260 + 277 @@ -4278,7 +4278,7 @@ Dark Mode apps/client/src/app/pages/features/features-page.html - 178 + 233 @@ -4286,7 +4286,7 @@ Marktstimmung apps/client/src/app/pages/features/features-page.html - 206 + 215 @@ -4294,7 +4294,7 @@ Statische Analyse apps/client/src/app/pages/features/features-page.html - 225 + 179 @@ -4302,7 +4302,7 @@ Mehrsprachigkeit apps/client/src/app/pages/features/features-page.html - 242 + 259 @@ -4310,7 +4310,7 @@ Open Source Software apps/client/src/app/pages/features/features-page.html - 279 + 296 @@ -7944,6 +7944,10 @@ apps/client/src/app/components/home-watchlist/home-watchlist.html 4 + + apps/client/src/app/pages/features/features-page.html + 197 + Watchlist @@ -7954,7 +7958,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 58 + 53 diff --git a/apps/client/src/locales/messages.es.xlf b/apps/client/src/locales/messages.es.xlf index 46bd07d4..0969f6e0 100644 --- a/apps/client/src/locales/messages.es.xlf +++ b/apps/client/src/locales/messages.es.xlf @@ -987,7 +987,7 @@ Empezar apps/client/src/app/pages/features/features-page.html - 304 + 321 apps/client/src/app/pages/public/public-page.html @@ -1751,7 +1751,7 @@ apps/client/src/app/pages/features/features-page.html - 191 + 246 @@ -1979,7 +1979,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 53 + 58 apps/client/src/app/pages/markets/markets-page-routing.module.ts @@ -3223,7 +3223,7 @@ apps/client/src/app/pages/features/features-page.html - 260 + 277 @@ -4255,7 +4255,7 @@ Dark Mode apps/client/src/app/pages/features/features-page.html - 178 + 233 @@ -4263,7 +4263,7 @@ Market Mood apps/client/src/app/pages/features/features-page.html - 206 + 215 @@ -4271,7 +4271,7 @@ Static Analysis apps/client/src/app/pages/features/features-page.html - 225 + 179 @@ -4279,7 +4279,7 @@ Multi-Language apps/client/src/app/pages/features/features-page.html - 242 + 259 @@ -4287,7 +4287,7 @@ Open Source Software apps/client/src/app/pages/features/features-page.html - 279 + 296 @@ -7945,6 +7945,10 @@ apps/client/src/app/components/home-watchlist/home-watchlist.html 4 + + apps/client/src/app/pages/features/features-page.html + 197 + Watchlist @@ -7955,7 +7959,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 58 + 53 diff --git a/apps/client/src/locales/messages.fr.xlf b/apps/client/src/locales/messages.fr.xlf index e554ce9f..1ec966c7 100644 --- a/apps/client/src/locales/messages.fr.xlf +++ b/apps/client/src/locales/messages.fr.xlf @@ -2034,7 +2034,7 @@ apps/client/src/app/pages/features/features-page.html - 260 + 277 @@ -2098,7 +2098,7 @@ apps/client/src/app/pages/features/features-page.html - 191 + 246 @@ -2398,7 +2398,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 53 + 58 apps/client/src/app/pages/markets/markets-page-routing.module.ts @@ -2866,7 +2866,7 @@ Démarrer apps/client/src/app/pages/features/features-page.html - 304 + 321 apps/client/src/app/pages/public/public-page.html @@ -4254,7 +4254,7 @@ Mode Sombre apps/client/src/app/pages/features/features-page.html - 178 + 233 @@ -4262,7 +4262,7 @@ Sentiment du Marché apps/client/src/app/pages/features/features-page.html - 206 + 215 @@ -4270,7 +4270,7 @@ Analyse statique apps/client/src/app/pages/features/features-page.html - 225 + 179 @@ -4278,7 +4278,7 @@ Multi-Langue apps/client/src/app/pages/features/features-page.html - 242 + 259 @@ -4286,7 +4286,7 @@ Logiciel Open Source apps/client/src/app/pages/features/features-page.html - 279 + 296 @@ -7944,6 +7944,10 @@ apps/client/src/app/components/home-watchlist/home-watchlist.html 4 + + apps/client/src/app/pages/features/features-page.html + 197 + Watchlist @@ -7954,7 +7958,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 58 + 53 diff --git a/apps/client/src/locales/messages.it.xlf b/apps/client/src/locales/messages.it.xlf index cbc8d579..ca395c91 100644 --- a/apps/client/src/locales/messages.it.xlf +++ b/apps/client/src/locales/messages.it.xlf @@ -987,7 +987,7 @@ Inizia apps/client/src/app/pages/features/features-page.html - 304 + 321 apps/client/src/app/pages/public/public-page.html @@ -1751,7 +1751,7 @@ apps/client/src/app/pages/features/features-page.html - 191 + 246 @@ -1979,7 +1979,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 53 + 58 apps/client/src/app/pages/markets/markets-page-routing.module.ts @@ -3223,7 +3223,7 @@ apps/client/src/app/pages/features/features-page.html - 260 + 277 @@ -4255,7 +4255,7 @@ Modalità scura apps/client/src/app/pages/features/features-page.html - 178 + 233 @@ -4263,7 +4263,7 @@ Umore del mercato apps/client/src/app/pages/features/features-page.html - 206 + 215 @@ -4271,7 +4271,7 @@ Analisi statica apps/client/src/app/pages/features/features-page.html - 225 + 179 @@ -4279,7 +4279,7 @@ Multilingue apps/client/src/app/pages/features/features-page.html - 242 + 259 @@ -4287,7 +4287,7 @@ Software open source apps/client/src/app/pages/features/features-page.html - 279 + 296 @@ -7945,6 +7945,10 @@ apps/client/src/app/components/home-watchlist/home-watchlist.html 4 + + apps/client/src/app/pages/features/features-page.html + 197 + Watchlist @@ -7955,7 +7959,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 58 + 53 diff --git a/apps/client/src/locales/messages.nl.xlf b/apps/client/src/locales/messages.nl.xlf index d53e7845..c97acc60 100644 --- a/apps/client/src/locales/messages.nl.xlf +++ b/apps/client/src/locales/messages.nl.xlf @@ -986,7 +986,7 @@ Aan de slag apps/client/src/app/pages/features/features-page.html - 304 + 321 apps/client/src/app/pages/public/public-page.html @@ -1750,7 +1750,7 @@ apps/client/src/app/pages/features/features-page.html - 191 + 246 @@ -1978,7 +1978,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 53 + 58 apps/client/src/app/pages/markets/markets-page-routing.module.ts @@ -3222,7 +3222,7 @@ apps/client/src/app/pages/features/features-page.html - 260 + 277 @@ -4254,7 +4254,7 @@ Dark Mode apps/client/src/app/pages/features/features-page.html - 178 + 233 @@ -4262,7 +4262,7 @@ Marktsentiment apps/client/src/app/pages/features/features-page.html - 206 + 215 @@ -4270,7 +4270,7 @@ Statische Analyse apps/client/src/app/pages/features/features-page.html - 225 + 179 @@ -4278,7 +4278,7 @@ Meerdere talen apps/client/src/app/pages/features/features-page.html - 242 + 259 @@ -4286,7 +4286,7 @@ Open Source Software apps/client/src/app/pages/features/features-page.html - 279 + 296 @@ -7944,6 +7944,10 @@ apps/client/src/app/components/home-watchlist/home-watchlist.html 4 + + apps/client/src/app/pages/features/features-page.html + 197 + Watchlist @@ -7954,7 +7958,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 58 + 53 diff --git a/apps/client/src/locales/messages.pl.xlf b/apps/client/src/locales/messages.pl.xlf index 85ef03d3..5ed3b1d1 100644 --- a/apps/client/src/locales/messages.pl.xlf +++ b/apps/client/src/locales/messages.pl.xlf @@ -787,7 +787,7 @@ apps/client/src/app/pages/features/features-page.html - 260 + 277 @@ -3195,7 +3195,7 @@ apps/client/src/app/pages/features/features-page.html - 191 + 246 @@ -3663,7 +3663,7 @@ Ciemny motyw apps/client/src/app/pages/features/features-page.html - 178 + 233 @@ -3671,7 +3671,7 @@ Nastrój rynku apps/client/src/app/pages/features/features-page.html - 206 + 215 @@ -3679,7 +3679,7 @@ Analiza statyczna apps/client/src/app/pages/features/features-page.html - 225 + 179 @@ -3687,7 +3687,7 @@ Wielo-językowość apps/client/src/app/pages/features/features-page.html - 242 + 259 @@ -3695,7 +3695,7 @@ Oprogramowanie Open Source apps/client/src/app/pages/features/features-page.html - 279 + 296 @@ -3703,7 +3703,7 @@ Rozpocznij apps/client/src/app/pages/features/features-page.html - 304 + 321 apps/client/src/app/pages/public/public-page.html @@ -3751,7 +3751,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 53 + 58 apps/client/src/app/pages/markets/markets-page-routing.module.ts @@ -7944,6 +7944,10 @@ apps/client/src/app/components/home-watchlist/home-watchlist.html 4 + + apps/client/src/app/pages/features/features-page.html + 197 + Watchlist @@ -7954,7 +7958,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 58 + 53 diff --git a/apps/client/src/locales/messages.pt.xlf b/apps/client/src/locales/messages.pt.xlf index d270243d..d32e34e0 100644 --- a/apps/client/src/locales/messages.pt.xlf +++ b/apps/client/src/locales/messages.pt.xlf @@ -2010,7 +2010,7 @@ apps/client/src/app/pages/features/features-page.html - 191 + 246 @@ -2310,7 +2310,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 53 + 58 apps/client/src/app/pages/markets/markets-page-routing.module.ts @@ -2762,7 +2762,7 @@ Começar apps/client/src/app/pages/features/features-page.html - 304 + 321 apps/client/src/app/pages/public/public-page.html @@ -3266,7 +3266,7 @@ apps/client/src/app/pages/features/features-page.html - 260 + 277 @@ -4254,7 +4254,7 @@ Modo escuro apps/client/src/app/pages/features/features-page.html - 178 + 233 @@ -4262,7 +4262,7 @@ Humor do mercado apps/client/src/app/pages/features/features-page.html - 206 + 215 @@ -4270,7 +4270,7 @@ Análise estática apps/client/src/app/pages/features/features-page.html - 225 + 179 @@ -4278,7 +4278,7 @@ Multilíngua apps/client/src/app/pages/features/features-page.html - 242 + 259 @@ -4286,7 +4286,7 @@ Software de código aberto apps/client/src/app/pages/features/features-page.html - 279 + 296 @@ -7944,6 +7944,10 @@ apps/client/src/app/components/home-watchlist/home-watchlist.html 4 + + apps/client/src/app/pages/features/features-page.html + 197 + Watchlist @@ -7954,7 +7958,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 58 + 53 diff --git a/apps/client/src/locales/messages.tr.xlf b/apps/client/src/locales/messages.tr.xlf index 9ec4a583..cb37e4f1 100644 --- a/apps/client/src/locales/messages.tr.xlf +++ b/apps/client/src/locales/messages.tr.xlf @@ -759,7 +759,7 @@ apps/client/src/app/pages/features/features-page.html - 260 + 277 @@ -3207,7 +3207,7 @@ Karanlık Mod apps/client/src/app/pages/features/features-page.html - 178 + 233 @@ -3219,7 +3219,7 @@ apps/client/src/app/pages/features/features-page.html - 191 + 246 @@ -3227,7 +3227,7 @@ Piyasa Modu apps/client/src/app/pages/features/features-page.html - 206 + 215 @@ -3235,7 +3235,7 @@ Statik Analiz apps/client/src/app/pages/features/features-page.html - 225 + 179 @@ -3243,7 +3243,7 @@ Çoklu Dil apps/client/src/app/pages/features/features-page.html - 242 + 259 @@ -3251,7 +3251,7 @@ Açık Kaynak Yazılım apps/client/src/app/pages/features/features-page.html - 279 + 296 @@ -3259,7 +3259,7 @@ Başla apps/client/src/app/pages/features/features-page.html - 304 + 321 apps/client/src/app/pages/public/public-page.html @@ -3307,7 +3307,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 53 + 58 apps/client/src/app/pages/markets/markets-page-routing.module.ts @@ -7944,6 +7944,10 @@ apps/client/src/app/components/home-watchlist/home-watchlist.html 4 + + apps/client/src/app/pages/features/features-page.html + 197 + Watchlist @@ -7954,7 +7958,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 58 + 53 diff --git a/apps/client/src/locales/messages.uk.xlf b/apps/client/src/locales/messages.uk.xlf index 17a42efb..02ec03d8 100644 --- a/apps/client/src/locales/messages.uk.xlf +++ b/apps/client/src/locales/messages.uk.xlf @@ -354,7 +354,7 @@ apps/client/src/app/pages/features/features-page.html - 260 + 277 @@ -3715,7 +3715,7 @@ apps/client/src/app/pages/features/features-page.html - 191 + 246 @@ -4251,7 +4251,7 @@ Темний режим apps/client/src/app/pages/features/features-page.html - 178 + 233 @@ -4259,7 +4259,7 @@ Ринковий настрій apps/client/src/app/pages/features/features-page.html - 206 + 215 @@ -4267,7 +4267,7 @@ Статичний аналіз apps/client/src/app/pages/features/features-page.html - 225 + 179 @@ -4275,7 +4275,7 @@ Багатомовність apps/client/src/app/pages/features/features-page.html - 242 + 259 @@ -4283,7 +4283,7 @@ Програмне забезпечення з відкритим кодом apps/client/src/app/pages/features/features-page.html - 279 + 296 @@ -4291,7 +4291,7 @@ Почати apps/client/src/app/pages/features/features-page.html - 304 + 321 apps/client/src/app/pages/public/public-page.html @@ -4339,7 +4339,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 53 + 58 apps/client/src/app/pages/markets/markets-page-routing.module.ts @@ -7944,6 +7944,10 @@ apps/client/src/app/components/home-watchlist/home-watchlist.html 4 + + apps/client/src/app/pages/features/features-page.html + 197 + Watchlist @@ -7954,7 +7958,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 58 + 53 diff --git a/apps/client/src/locales/messages.xlf b/apps/client/src/locales/messages.xlf index 5a96dd10..40e05466 100644 --- a/apps/client/src/locales/messages.xlf +++ b/apps/client/src/locales/messages.xlf @@ -765,7 +765,7 @@ apps/client/src/app/pages/features/features-page.html - 260 + 277 @@ -2995,7 +2995,7 @@ apps/client/src/app/pages/features/features-page.html - 191 + 246 @@ -3416,42 +3416,42 @@ Dark Mode apps/client/src/app/pages/features/features-page.html - 178 + 233 Market Mood apps/client/src/app/pages/features/features-page.html - 206 + 215 Static Analysis apps/client/src/app/pages/features/features-page.html - 225 + 179 Multi-Language apps/client/src/app/pages/features/features-page.html - 242 + 259 Open Source Software apps/client/src/app/pages/features/features-page.html - 279 + 296 Get Started apps/client/src/app/pages/features/features-page.html - 304 + 321 apps/client/src/app/pages/public/public-page.html @@ -3496,7 +3496,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 53 + 58 apps/client/src/app/pages/markets/markets-page-routing.module.ts @@ -7186,7 +7186,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 58 + 53 @@ -7195,6 +7195,10 @@ apps/client/src/app/components/home-watchlist/home-watchlist.html 4 + + apps/client/src/app/pages/features/features-page.html + 197 + Get Early Access diff --git a/apps/client/src/locales/messages.zh.xlf b/apps/client/src/locales/messages.zh.xlf index 385b4aef..9ba7a63b 100644 --- a/apps/client/src/locales/messages.zh.xlf +++ b/apps/client/src/locales/messages.zh.xlf @@ -788,7 +788,7 @@ apps/client/src/app/pages/features/features-page.html - 260 + 277 @@ -3204,7 +3204,7 @@ apps/client/src/app/pages/features/features-page.html - 191 + 246 @@ -3672,7 +3672,7 @@ 深色模式 apps/client/src/app/pages/features/features-page.html - 178 + 233 @@ -3680,7 +3680,7 @@ 市场情绪 apps/client/src/app/pages/features/features-page.html - 206 + 215 @@ -3688,7 +3688,7 @@ 静态分析 apps/client/src/app/pages/features/features-page.html - 225 + 179 @@ -3696,7 +3696,7 @@ 多语言 apps/client/src/app/pages/features/features-page.html - 242 + 259 @@ -3704,7 +3704,7 @@ 开源软件 apps/client/src/app/pages/features/features-page.html - 279 + 296 @@ -3712,7 +3712,7 @@ 立即开始 apps/client/src/app/pages/features/features-page.html - 304 + 321 apps/client/src/app/pages/public/public-page.html @@ -3760,7 +3760,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 53 + 58 apps/client/src/app/pages/markets/markets-page-routing.module.ts @@ -7945,6 +7945,10 @@ apps/client/src/app/components/home-watchlist/home-watchlist.html 4 + + apps/client/src/app/pages/features/features-page.html + 197 + Watchlist @@ -7955,7 +7959,7 @@ apps/client/src/app/pages/home/home-page.component.ts - 58 + 53 From ecffb53f07ecc3feed23be2e31be63c061fb6f4c Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sun, 4 May 2025 15:54:54 +0200 Subject: [PATCH 4/8] Feature/extend faq pages (#4655) * Extend FAQ pages * Update changelog --- CHANGELOG.md | 1 + .../overview/faq-overview-page.component.ts | 3 + .../pages/faq/overview/faq-overview-page.html | 24 ++++++-- .../faq/overview/faq-overview-page.module.ts | 9 ++- .../app/pages/faq/saas/saas-page.component.ts | 4 +- .../src/app/pages/faq/saas/saas-page.html | 59 +++++++++++++------ .../app/pages/faq/saas/saas-page.module.ts | 9 ++- .../self-hosting-page.component.ts | 4 ++ .../faq/self-hosting/self-hosting-page.html | 19 ++++++ .../self-hosting/self-hosting-page.module.ts | 9 ++- 10 files changed, 113 insertions(+), 28 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a124432f..3fb6bfeb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added - Added the watchlist to the features page +- Extended the content of the Frequently Asked Questions (FAQ) pages ### Changed diff --git a/apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts b/apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts index 9232ca3b..ddafa573 100644 --- a/apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts +++ b/apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts @@ -12,6 +12,9 @@ import { Subject, takeUntil } from 'rxjs'; standalone: false }) export class FaqOverviewPageComponent implements OnDestroy { + public pricingUrl = + `https://ghostfol.io/${document.documentElement.lang}/` + + $localize`:snake-case:pricing`; public routerLinkFeatures = ['/' + $localize`:snake-case:features`]; public user: User; diff --git a/apps/client/src/app/pages/faq/overview/faq-overview-page.html b/apps/client/src/app/pages/faq/overview/faq-overview-page.html index fea3bba5..f8fd62eb 100644 --- a/apps/client/src/app/pages/faq/overview/faq-overview-page.html +++ b/apps/client/src/app/pages/faq/overview/faq-overview-page.html @@ -59,9 +59,14 @@ world. The source code is fully available as open source software (OSS). Thanks to our generous - Ghostfolio Premium users - and sponsors we - have the ability to run a free, limited plan for novice + Ghostfolio Premium + users and + sponsors we have + the ability to run a free, limited plan for novice investors.
@@ -82,8 +87,11 @@ By offering - Ghostfolio Premium, a - subscription plan with a managed hosting service and enhanced + Ghostfolio Premium, a subscription plan with a managed hosting service and enhanced features, we fund our business while providing added value to our users. @@ -105,7 +113,11 @@ Any support for Ghostfolio is welcome. Be it with a - Ghostfolio Premium + Ghostfolio Premium subscription to finance the hosting infrastructure, a positive rating in the How do I start? - You can sign up via the “Get Started” button at the top of the page. You have multiple options to join - Ghostfolio: Create an account with a security token or - Google Sign. We will guide you to set up your portfolio. + You can sign up via the + Get Started button at the top + of the page. You have multiple options to join Ghostfolio: Create an + account with a security token or Google Sign. We will guide you + to set up your portfolio. @@ -38,8 +38,8 @@ > Yes, it is! Our - pricing page details - everything you get for free.pricing page + details everything you get for free. @@ -49,12 +49,20 @@ > Ghostfolio Premium is a fully - managed Ghostfolio cloud offering for ambitious investors. Revenue is - used to cover the costs of the hosting infrastructure and to fund - ongoing development. It is the Open Source code base with some extras - like the markets overview and - a professional data provider.Ghostfolio Premium + is a fully managed Ghostfolio cloud offering for ambitious investors. + Revenue is used to cover the costs of the hosting infrastructure and + to fund ongoing development. It is the Open Source code base with some + extras like the + markets overview and a + professional data provider. @@ -65,8 +73,15 @@ > Yes, you can try - Ghostfolio Premium by signing - up for Ghostfolio and applying for a trial (see + Ghostfolio Premium + by signing up for Ghostfolio and applying for a trial (see Membership). It is easy, free and there is no commitment. You can stop using it at any time. No, Ghostfolio Premium does - not include auto-renewal. Upon expiration, you can choose whether to - start a new subscription.No, + Ghostfolio Premium + does not include auto-renewal. Upon expiration, you can choose whether + to start a new subscription. @if (user?.subscription?.type === 'Premium') { diff --git a/apps/client/src/app/pages/faq/saas/saas-page.module.ts b/apps/client/src/app/pages/faq/saas/saas-page.module.ts index 4ddcf9d2..81cd2b52 100644 --- a/apps/client/src/app/pages/faq/saas/saas-page.module.ts +++ b/apps/client/src/app/pages/faq/saas/saas-page.module.ts @@ -1,3 +1,5 @@ +import { GfPremiumIndicatorComponent } from '@ghostfolio/ui/premium-indicator'; + import { CommonModule } from '@angular/common'; import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; import { MatCardModule } from '@angular/material/card'; @@ -7,7 +9,12 @@ import { SaasPageComponent } from './saas-page.component'; @NgModule({ declarations: [SaasPageComponent], - imports: [CommonModule, MatCardModule, SaasPageRoutingModule], + imports: [ + CommonModule, + GfPremiumIndicatorComponent, + MatCardModule, + SaasPageRoutingModule + ], schemas: [CUSTOM_ELEMENTS_SCHEMA] }) export class SaasPageModule {} diff --git a/apps/client/src/app/pages/faq/self-hosting/self-hosting-page.component.ts b/apps/client/src/app/pages/faq/self-hosting/self-hosting-page.component.ts index 387187be..f0ff7dbc 100644 --- a/apps/client/src/app/pages/faq/self-hosting/self-hosting-page.component.ts +++ b/apps/client/src/app/pages/faq/self-hosting/self-hosting-page.component.ts @@ -9,6 +9,10 @@ import { Subject } from 'rxjs'; standalone: false }) export class SelfHostingPageComponent implements OnDestroy { + public pricingUrl = + `https://ghostfol.io/${document.documentElement.lang}/` + + $localize`:snake-case:pricing`; + private unsubscribeSubject = new Subject(); public ngOnDestroy() { diff --git a/apps/client/src/app/pages/faq/self-hosting/self-hosting-page.html b/apps/client/src/app/pages/faq/self-hosting/self-hosting-page.html index dcb48aa5..a3085415 100644 --- a/apps/client/src/app/pages/faq/self-hosting/self-hosting-page.html +++ b/apps/client/src/app/pages/faq/self-hosting/self-hosting-page.html @@ -140,6 +140,25 @@ providers are considered experimental. + + + Can I get access to a professional data provider? + + Yes, access to a professional data provider is included with a + Ghostfolio Premium + subscription via an API key. + How do I set up a benchmark? diff --git a/apps/client/src/app/pages/faq/self-hosting/self-hosting-page.module.ts b/apps/client/src/app/pages/faq/self-hosting/self-hosting-page.module.ts index 65f9969a..931f24aa 100644 --- a/apps/client/src/app/pages/faq/self-hosting/self-hosting-page.module.ts +++ b/apps/client/src/app/pages/faq/self-hosting/self-hosting-page.module.ts @@ -1,3 +1,5 @@ +import { GfPremiumIndicatorComponent } from '@ghostfolio/ui/premium-indicator'; + import { CommonModule } from '@angular/common'; import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; import { MatCardModule } from '@angular/material/card'; @@ -7,7 +9,12 @@ import { SelfHostingPageComponent } from './self-hosting-page.component'; @NgModule({ declarations: [SelfHostingPageComponent], - imports: [CommonModule, MatCardModule, SelfHostingPageRoutingModule], + imports: [ + CommonModule, + GfPremiumIndicatorComponent, + MatCardModule, + SelfHostingPageRoutingModule + ], schemas: [CUSTOM_ELEMENTS_SCHEMA] }) export class SelfHostingPageModule {} From d661cdc78fbc01729deaf8b48c27fe939a02de15 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sun, 4 May 2025 15:55:31 +0200 Subject: [PATCH 5/8] Feature/rename account to accounts in platform database schema (#4656) * Rename Account to accounts in platform database schema * Update changelog --- CHANGELOG.md | 1 + apps/api/src/app/platform/platform.service.ts | 4 ++-- prisma/schema.prisma | 8 ++++---- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3fb6bfeb..0f59ee6d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Moved the watchlist from experimental to general availability - Deprecated the endpoint to get a portfolio position in favor of get a holding - Deprecated the endpoint to update portfolio position tags in favor of update holding tags +- Renamed `Account` to `accounts` in the `Platform` database schema - Upgraded `prisma` from version `6.6.0` to `6.7.0` ## 2.159.0 - 2025-05-02 diff --git a/apps/api/src/app/platform/platform.service.ts b/apps/api/src/app/platform/platform.service.ts index db827569..200b4de0 100644 --- a/apps/api/src/app/platform/platform.service.ts +++ b/apps/api/src/app/platform/platform.service.ts @@ -54,7 +54,7 @@ export class PlatformService { await this.prismaService.platform.findMany({ include: { _count: { - select: { Account: true } + select: { accounts: true } } } }); @@ -64,7 +64,7 @@ export class PlatformService { id, name, url, - accountCount: _count.Account + accountCount: _count.accounts }; }); } diff --git a/prisma/schema.prisma b/prisma/schema.prisma index c33f7d6c..863c196a 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -147,10 +147,10 @@ model Order { } model Platform { - id String @id @default(uuid()) - name String? - url String @unique - Account Account[] + accounts Account[] + id String @id @default(uuid()) + name String? + url String @unique @@index([name]) } From 5b6447b60d81abbece874bcb21770a3b397afd99 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 4 May 2025 15:58:24 +0200 Subject: [PATCH 6/8] Feature/update locales (#4658) Co-authored-by: github-actions[bot] --- apps/client/src/locales/messages.ca.xlf | 16 ++++++++++++---- apps/client/src/locales/messages.de.xlf | 16 ++++++++++++---- apps/client/src/locales/messages.es.xlf | 16 ++++++++++++---- apps/client/src/locales/messages.fr.xlf | 16 ++++++++++++---- apps/client/src/locales/messages.it.xlf | 16 ++++++++++++---- apps/client/src/locales/messages.nl.xlf | 16 ++++++++++++---- apps/client/src/locales/messages.pl.xlf | 16 ++++++++++++---- apps/client/src/locales/messages.pt.xlf | 16 ++++++++++++---- apps/client/src/locales/messages.tr.xlf | 16 ++++++++++++---- apps/client/src/locales/messages.uk.xlf | 16 ++++++++++++---- apps/client/src/locales/messages.xlf | 16 ++++++++++++---- apps/client/src/locales/messages.zh.xlf | 16 ++++++++++++---- 12 files changed, 144 insertions(+), 48 deletions(-) diff --git a/apps/client/src/locales/messages.ca.xlf b/apps/client/src/locales/messages.ca.xlf index 0896d6b0..305fa508 100644 --- a/apps/client/src/locales/messages.ca.xlf +++ b/apps/client/src/locales/messages.ca.xlf @@ -591,7 +591,7 @@ apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts - 15 + 18 apps/client/src/app/pages/pricing/pricing-page.component.ts @@ -632,7 +632,7 @@ apps/client/src/app/pages/faq/saas/saas-page.component.ts - 15 + 18 apps/client/src/app/pages/resources/overview/resources-overview.component.ts @@ -711,9 +711,17 @@ apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.component.ts 15 + + apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts + 17 + apps/client/src/app/pages/faq/saas/saas-page.component.ts - 16 + 17 + + + apps/client/src/app/pages/faq/self-hosting/self-hosting-page.component.ts + 14 libs/ui/src/lib/membership-card/membership-card.component.ts @@ -746,7 +754,7 @@ apps/client/src/app/pages/faq/saas/saas-page.component.ts - 17 + 19 apps/client/src/app/pages/features/features-page.component.ts diff --git a/apps/client/src/locales/messages.de.xlf b/apps/client/src/locales/messages.de.xlf index 428e1243..47c1a134 100644 --- a/apps/client/src/locales/messages.de.xlf +++ b/apps/client/src/locales/messages.de.xlf @@ -5256,7 +5256,7 @@ apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts - 15 + 18 apps/client/src/app/pages/pricing/pricing-page.component.ts @@ -5432,7 +5432,7 @@ apps/client/src/app/pages/faq/saas/saas-page.component.ts - 15 + 18 apps/client/src/app/pages/resources/overview/resources-overview.component.ts @@ -5511,9 +5511,17 @@ apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.component.ts 15 + + apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts + 17 + apps/client/src/app/pages/faq/saas/saas-page.component.ts - 16 + 17 + + + apps/client/src/app/pages/faq/self-hosting/self-hosting-page.component.ts + 14 libs/ui/src/lib/membership-card/membership-card.component.ts @@ -5546,7 +5554,7 @@ apps/client/src/app/pages/faq/saas/saas-page.component.ts - 17 + 19 apps/client/src/app/pages/features/features-page.component.ts diff --git a/apps/client/src/locales/messages.es.xlf b/apps/client/src/locales/messages.es.xlf index 0969f6e0..8541df0b 100644 --- a/apps/client/src/locales/messages.es.xlf +++ b/apps/client/src/locales/messages.es.xlf @@ -5233,7 +5233,7 @@ apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts - 15 + 18 apps/client/src/app/pages/pricing/pricing-page.component.ts @@ -5409,7 +5409,7 @@ apps/client/src/app/pages/faq/saas/saas-page.component.ts - 15 + 18 apps/client/src/app/pages/resources/overview/resources-overview.component.ts @@ -5488,9 +5488,17 @@ apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.component.ts 15 + + apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts + 17 + apps/client/src/app/pages/faq/saas/saas-page.component.ts - 16 + 17 + + + apps/client/src/app/pages/faq/self-hosting/self-hosting-page.component.ts + 14 libs/ui/src/lib/membership-card/membership-card.component.ts @@ -5523,7 +5531,7 @@ apps/client/src/app/pages/faq/saas/saas-page.component.ts - 17 + 19 apps/client/src/app/pages/features/features-page.component.ts diff --git a/apps/client/src/locales/messages.fr.xlf b/apps/client/src/locales/messages.fr.xlf index 1ec966c7..165a0329 100644 --- a/apps/client/src/locales/messages.fr.xlf +++ b/apps/client/src/locales/messages.fr.xlf @@ -5232,7 +5232,7 @@ apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts - 15 + 18 apps/client/src/app/pages/pricing/pricing-page.component.ts @@ -5408,7 +5408,7 @@ apps/client/src/app/pages/faq/saas/saas-page.component.ts - 15 + 18 apps/client/src/app/pages/resources/overview/resources-overview.component.ts @@ -5487,9 +5487,17 @@ apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.component.ts 15 + + apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts + 17 + apps/client/src/app/pages/faq/saas/saas-page.component.ts - 16 + 17 + + + apps/client/src/app/pages/faq/self-hosting/self-hosting-page.component.ts + 14 libs/ui/src/lib/membership-card/membership-card.component.ts @@ -5522,7 +5530,7 @@ apps/client/src/app/pages/faq/saas/saas-page.component.ts - 17 + 19 apps/client/src/app/pages/features/features-page.component.ts diff --git a/apps/client/src/locales/messages.it.xlf b/apps/client/src/locales/messages.it.xlf index ca395c91..d1b32c6c 100644 --- a/apps/client/src/locales/messages.it.xlf +++ b/apps/client/src/locales/messages.it.xlf @@ -5233,7 +5233,7 @@ apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts - 15 + 18 apps/client/src/app/pages/pricing/pricing-page.component.ts @@ -5409,7 +5409,7 @@ apps/client/src/app/pages/faq/saas/saas-page.component.ts - 15 + 18 apps/client/src/app/pages/resources/overview/resources-overview.component.ts @@ -5488,9 +5488,17 @@ apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.component.ts 15 + + apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts + 17 + apps/client/src/app/pages/faq/saas/saas-page.component.ts - 16 + 17 + + + apps/client/src/app/pages/faq/self-hosting/self-hosting-page.component.ts + 14 libs/ui/src/lib/membership-card/membership-card.component.ts @@ -5523,7 +5531,7 @@ apps/client/src/app/pages/faq/saas/saas-page.component.ts - 17 + 19 apps/client/src/app/pages/features/features-page.component.ts diff --git a/apps/client/src/locales/messages.nl.xlf b/apps/client/src/locales/messages.nl.xlf index c97acc60..378f1a42 100644 --- a/apps/client/src/locales/messages.nl.xlf +++ b/apps/client/src/locales/messages.nl.xlf @@ -5232,7 +5232,7 @@ apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts - 15 + 18 apps/client/src/app/pages/pricing/pricing-page.component.ts @@ -5408,7 +5408,7 @@ apps/client/src/app/pages/faq/saas/saas-page.component.ts - 15 + 18 apps/client/src/app/pages/resources/overview/resources-overview.component.ts @@ -5487,9 +5487,17 @@ apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.component.ts 15 + + apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts + 17 + apps/client/src/app/pages/faq/saas/saas-page.component.ts - 16 + 17 + + + apps/client/src/app/pages/faq/self-hosting/self-hosting-page.component.ts + 14 libs/ui/src/lib/membership-card/membership-card.component.ts @@ -5522,7 +5530,7 @@ apps/client/src/app/pages/faq/saas/saas-page.component.ts - 17 + 19 apps/client/src/app/pages/features/features-page.component.ts diff --git a/apps/client/src/locales/messages.pl.xlf b/apps/client/src/locales/messages.pl.xlf index 5ed3b1d1..714c83bd 100644 --- a/apps/client/src/locales/messages.pl.xlf +++ b/apps/client/src/locales/messages.pl.xlf @@ -193,7 +193,7 @@ apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts - 15 + 18 apps/client/src/app/pages/pricing/pricing-page.component.ts @@ -251,7 +251,7 @@ apps/client/src/app/pages/faq/saas/saas-page.component.ts - 15 + 18 apps/client/src/app/pages/resources/overview/resources-overview.component.ts @@ -330,9 +330,17 @@ apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.component.ts 15 + + apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts + 17 + apps/client/src/app/pages/faq/saas/saas-page.component.ts - 16 + 17 + + + apps/client/src/app/pages/faq/self-hosting/self-hosting-page.component.ts + 14 libs/ui/src/lib/membership-card/membership-card.component.ts @@ -382,7 +390,7 @@ apps/client/src/app/pages/faq/saas/saas-page.component.ts - 17 + 19 apps/client/src/app/pages/features/features-page.component.ts diff --git a/apps/client/src/locales/messages.pt.xlf b/apps/client/src/locales/messages.pt.xlf index d32e34e0..4a9ec251 100644 --- a/apps/client/src/locales/messages.pt.xlf +++ b/apps/client/src/locales/messages.pt.xlf @@ -5232,7 +5232,7 @@ apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts - 15 + 18 apps/client/src/app/pages/pricing/pricing-page.component.ts @@ -5408,7 +5408,7 @@ apps/client/src/app/pages/faq/saas/saas-page.component.ts - 15 + 18 apps/client/src/app/pages/resources/overview/resources-overview.component.ts @@ -5487,9 +5487,17 @@ apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.component.ts 15 + + apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts + 17 + apps/client/src/app/pages/faq/saas/saas-page.component.ts - 16 + 17 + + + apps/client/src/app/pages/faq/self-hosting/self-hosting-page.component.ts + 14 libs/ui/src/lib/membership-card/membership-card.component.ts @@ -5522,7 +5530,7 @@ apps/client/src/app/pages/faq/saas/saas-page.component.ts - 17 + 19 apps/client/src/app/pages/features/features-page.component.ts diff --git a/apps/client/src/locales/messages.tr.xlf b/apps/client/src/locales/messages.tr.xlf index cb37e4f1..717fe544 100644 --- a/apps/client/src/locales/messages.tr.xlf +++ b/apps/client/src/locales/messages.tr.xlf @@ -193,7 +193,7 @@ apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts - 15 + 18 apps/client/src/app/pages/pricing/pricing-page.component.ts @@ -251,7 +251,7 @@ apps/client/src/app/pages/faq/saas/saas-page.component.ts - 15 + 18 apps/client/src/app/pages/resources/overview/resources-overview.component.ts @@ -330,9 +330,17 @@ apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.component.ts 15 + + apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts + 17 + apps/client/src/app/pages/faq/saas/saas-page.component.ts - 16 + 17 + + + apps/client/src/app/pages/faq/self-hosting/self-hosting-page.component.ts + 14 libs/ui/src/lib/membership-card/membership-card.component.ts @@ -382,7 +390,7 @@ apps/client/src/app/pages/faq/saas/saas-page.component.ts - 17 + 19 apps/client/src/app/pages/features/features-page.component.ts diff --git a/apps/client/src/locales/messages.uk.xlf b/apps/client/src/locales/messages.uk.xlf index 02ec03d8..7945267a 100644 --- a/apps/client/src/locales/messages.uk.xlf +++ b/apps/client/src/locales/messages.uk.xlf @@ -591,7 +591,7 @@ apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts - 15 + 18 apps/client/src/app/pages/pricing/pricing-page.component.ts @@ -632,7 +632,7 @@ apps/client/src/app/pages/faq/saas/saas-page.component.ts - 15 + 18 apps/client/src/app/pages/resources/overview/resources-overview.component.ts @@ -711,9 +711,17 @@ apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.component.ts 15 + + apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts + 17 + apps/client/src/app/pages/faq/saas/saas-page.component.ts - 16 + 17 + + + apps/client/src/app/pages/faq/self-hosting/self-hosting-page.component.ts + 14 libs/ui/src/lib/membership-card/membership-card.component.ts @@ -746,7 +754,7 @@ apps/client/src/app/pages/faq/saas/saas-page.component.ts - 17 + 19 apps/client/src/app/pages/features/features-page.component.ts diff --git a/apps/client/src/locales/messages.xlf b/apps/client/src/locales/messages.xlf index 40e05466..33d3e2f0 100644 --- a/apps/client/src/locales/messages.xlf +++ b/apps/client/src/locales/messages.xlf @@ -191,7 +191,7 @@ apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts - 15 + 18 apps/client/src/app/pages/pricing/pricing-page.component.ts @@ -247,7 +247,7 @@ apps/client/src/app/pages/faq/saas/saas-page.component.ts - 15 + 18 apps/client/src/app/pages/resources/overview/resources-overview.component.ts @@ -325,9 +325,17 @@ apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.component.ts 15 + + apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts + 17 + apps/client/src/app/pages/faq/saas/saas-page.component.ts - 16 + 17 + + + apps/client/src/app/pages/faq/self-hosting/self-hosting-page.component.ts + 14 libs/ui/src/lib/membership-card/membership-card.component.ts @@ -375,7 +383,7 @@ apps/client/src/app/pages/faq/saas/saas-page.component.ts - 17 + 19 apps/client/src/app/pages/features/features-page.component.ts diff --git a/apps/client/src/locales/messages.zh.xlf b/apps/client/src/locales/messages.zh.xlf index 9ba7a63b..2853b613 100644 --- a/apps/client/src/locales/messages.zh.xlf +++ b/apps/client/src/locales/messages.zh.xlf @@ -194,7 +194,7 @@ apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts - 15 + 18 apps/client/src/app/pages/pricing/pricing-page.component.ts @@ -252,7 +252,7 @@ apps/client/src/app/pages/faq/saas/saas-page.component.ts - 15 + 18 apps/client/src/app/pages/resources/overview/resources-overview.component.ts @@ -331,9 +331,17 @@ apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.component.ts 15 + + apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts + 17 + apps/client/src/app/pages/faq/saas/saas-page.component.ts - 16 + 17 + + + apps/client/src/app/pages/faq/self-hosting/self-hosting-page.component.ts + 14 libs/ui/src/lib/membership-card/membership-card.component.ts @@ -383,7 +391,7 @@ apps/client/src/app/pages/faq/saas/saas-page.component.ts - 17 + 19 apps/client/src/app/pages/features/features-page.component.ts From 28d2fd3877b65e26757d52a53cfe1e98c85d961c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcin=20Szyma=C5=84ski?= Date: Sun, 4 May 2025 16:14:46 +0100 Subject: [PATCH 7/8] Bugfix/restore incorrect fee currency conversion (#4645) * Restore incorrect fee currency conversion * Update changelog --- CHANGELOG.md | 4 ++ apps/api/src/app/import/import.service.ts | 4 +- .../order/interfaces/activities.interface.ts | 2 + apps/api/src/app/order/order.service.ts | 59 ++++++++++++------- .../portfolio-calculator-test-utils.ts | 1 + 5 files changed, 47 insertions(+), 23 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0f59ee6d..cdb61fd0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Renamed `Account` to `accounts` in the `Platform` database schema - Upgraded `prisma` from version `6.6.0` to `6.7.0` +### Fixed + +- Fixed an issue with the fee calculations related to activities in a custom currency + ## 2.159.0 - 2025-05-02 ### Added diff --git a/apps/api/src/app/import/import.service.ts b/apps/api/src/app/import/import.service.ts index 7afb2cd7..28c49ca7 100644 --- a/apps/api/src/app/import/import.service.ts +++ b/apps/api/src/app/import/import.service.ts @@ -118,6 +118,7 @@ export class ImportService { createdAt: undefined, fee: 0, feeInAssetProfileCurrency: 0, + feeInBaseCurrency: 0, id: assetProfile.id, isDraft: false, SymbolProfile: assetProfile, @@ -126,7 +127,8 @@ export class ImportService { unitPrice: marketPrice, unitPriceInAssetProfileCurrency: marketPrice, updatedAt: undefined, - userId: Account?.userId + userId: Account?.userId, + valueInBaseCurrency: value }; }) ); diff --git a/apps/api/src/app/order/interfaces/activities.interface.ts b/apps/api/src/app/order/interfaces/activities.interface.ts index 0c25c8ef..c605c478 100644 --- a/apps/api/src/app/order/interfaces/activities.interface.ts +++ b/apps/api/src/app/order/interfaces/activities.interface.ts @@ -12,11 +12,13 @@ export interface Activity extends Order { Account?: AccountWithPlatform; error?: ActivityError; feeInAssetProfileCurrency: number; + feeInBaseCurrency: number; SymbolProfile?: EnhancedSymbolProfile; tags?: Tag[]; unitPriceInAssetProfileCurrency: number; updateAccountBalance?: boolean; value: number; + valueInBaseCurrency: number; } export interface ActivityError { diff --git a/apps/api/src/app/order/order.service.ts b/apps/api/src/app/order/order.service.ts index d1847635..ebd25732 100644 --- a/apps/api/src/app/order/order.service.ts +++ b/apps/api/src/app/order/order.service.ts @@ -531,31 +531,46 @@ export class OrderService { const value = new Big(order.quantity).mul(order.unitPrice).toNumber(); + const [ + feeInAssetProfileCurrency, + feeInBaseCurrency, + unitPriceInAssetProfileCurrency, + valueInBaseCurrency + ] = await Promise.all([ + this.exchangeRateDataService.toCurrencyAtDate( + order.fee, + order.currency ?? order.SymbolProfile.currency, + order.SymbolProfile.currency, + order.date + ), + this.exchangeRateDataService.toCurrencyAtDate( + order.fee, + order.currency ?? order.SymbolProfile.currency, + userCurrency, + order.date + ), + this.exchangeRateDataService.toCurrencyAtDate( + order.unitPrice, + order.currency ?? order.SymbolProfile.currency, + order.SymbolProfile.currency, + order.date + ), + this.exchangeRateDataService.toCurrencyAtDate( + value, + order.currency ?? order.SymbolProfile.currency, + userCurrency, + order.date + ) + ]); + return { ...order, + feeInAssetProfileCurrency, + feeInBaseCurrency, + unitPriceInAssetProfileCurrency, value, - feeInAssetProfileCurrency: - await this.exchangeRateDataService.toCurrencyAtDate( - order.fee, - order.currency ?? order.SymbolProfile.currency, - order.SymbolProfile.currency, - order.date - ), - SymbolProfile: assetProfile, - unitPriceInAssetProfileCurrency: - await this.exchangeRateDataService.toCurrencyAtDate( - order.unitPrice, - order.currency ?? order.SymbolProfile.currency, - order.SymbolProfile.currency, - order.date - ), - valueInBaseCurrency: - await this.exchangeRateDataService.toCurrencyAtDate( - value, - order.currency ?? order.SymbolProfile.currency, - userCurrency, - order.date - ) + valueInBaseCurrency, + SymbolProfile: assetProfile }; }) ); diff --git a/apps/api/src/app/portfolio/calculator/portfolio-calculator-test-utils.ts b/apps/api/src/app/portfolio/calculator/portfolio-calculator-test-utils.ts index db80652c..6208eb7d 100644 --- a/apps/api/src/app/portfolio/calculator/portfolio-calculator-test-utils.ts +++ b/apps/api/src/app/portfolio/calculator/portfolio-calculator-test-utils.ts @@ -8,6 +8,7 @@ export const activityDummyData = { currency: undefined, fee: undefined, feeInAssetProfileCurrency: undefined, + feeInBaseCurrency: undefined, id: undefined, isDraft: false, symbolProfileId: undefined, From 6e9622a2cff7781a604f233dc399b21b94facd9a Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sun, 4 May 2025 17:16:41 +0200 Subject: [PATCH 8/8] Release 2.160.0 (#4659) --- CHANGELOG.md | 2 +- package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index cdb61fd0..1e19b227 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,7 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## Unreleased +## 2.160.0 - 2025-05-04 ### Added diff --git a/package-lock.json b/package-lock.json index cd38cff6..b6afbaf6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "ghostfolio", - "version": "2.159.0", + "version": "2.160.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "ghostfolio", - "version": "2.159.0", + "version": "2.160.0", "hasInstallScript": true, "license": "AGPL-3.0", "dependencies": { diff --git a/package.json b/package.json index 161aa539..b12b4c0c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ghostfolio", - "version": "2.159.0", + "version": "2.160.0", "homepage": "https://ghostfol.io", "license": "AGPL-3.0", "repository": "https://github.com/ghostfolio/ghostfolio",