From b0c53d050ab94d65b8aaf1b6e82ba6b27d1a608e Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Tue, 9 Jul 2024 18:20:25 +0200 Subject: [PATCH 01/14] Feature/harmonize delete labels in admin market data (#3552) --- .../src/app/components/admin-market-data/admin-market-data.html | 2 +- .../components/admin-market-data/admin-market-data.service.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/client/src/app/components/admin-market-data/admin-market-data.html b/apps/client/src/app/components/admin-market-data/admin-market-data.html index 00931d77c..3dc3dd5a9 100644 --- a/apps/client/src/app/components/admin-market-data/admin-market-data.html +++ b/apps/client/src/app/components/admin-market-data/admin-market-data.html @@ -178,7 +178,7 @@ [disabled]="!selection.hasValue()" (click)="onDeleteAssetProfiles()" > - Delete Asset Profiles + Delete Profiles diff --git a/apps/client/src/app/components/admin-market-data/admin-market-data.service.ts b/apps/client/src/app/components/admin-market-data/admin-market-data.service.ts index ded1a2263..0753327f6 100644 --- a/apps/client/src/app/components/admin-market-data/admin-market-data.service.ts +++ b/apps/client/src/app/components/admin-market-data/admin-market-data.service.ts @@ -42,7 +42,7 @@ export class AdminMarketDataService { forkJoin(deleteRequests) .pipe( catchError(() => { - alert($localize`Oops! Could not delete asset profiles.`); + alert($localize`Oops! Could not delete profiles.`); return EMPTY; }), From 744dc51dcd5ba6061e13cebef2757de5617f6d9a Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Tue, 9 Jul 2024 18:42:03 +0200 Subject: [PATCH 02/14] Bugfix/fix pagination issue in activities endpoint by adding secondary sort criterion (#3554) * Add id as secondary sort criterion to ensure consistent ordering * Update changelog --- CHANGELOG.md | 6 ++++++ apps/api/src/app/order/order.service.ts | 5 +++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b2320e41f..408708fea 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,12 @@ 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 + +### Fixed + +- Fixed a pagination issue in the activities endpoint by adding `id` as a secondary sort criterion to `date` to ensure consistent ordering + ## 2.93.0 - 2024-07-07 ### Added diff --git a/apps/api/src/app/order/order.service.ts b/apps/api/src/app/order/order.service.ts index a1fa4db6c..0255a5011 100644 --- a/apps/api/src/app/order/order.service.ts +++ b/apps/api/src/app/order/order.service.ts @@ -291,7 +291,8 @@ export class OrderService { withExcludedAccounts?: boolean; }): Promise { let orderBy: Prisma.Enumerable = [ - { date: 'asc' } + { date: 'asc' }, + { id: 'asc' } ]; const where: Prisma.OrderWhereInput = { userId }; @@ -367,7 +368,7 @@ export class OrderService { } if (sortColumn) { - orderBy = [{ [sortColumn]: sortDirection }]; + orderBy = [{ [sortColumn]: sortDirection }, { id: sortDirection }]; } if (types) { From 5dc331e3863577dcf53bbe61248216aa7025d91c Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Tue, 9 Jul 2024 18:43:20 +0200 Subject: [PATCH 03/14] Feature/improve language localization for de 20240709 (#3555) * Update translations * Update changelog --- CHANGELOG.md | 4 + .../admin-market-data.service.ts | 2 +- apps/client/src/locales/messages.de.xlf | 158 +++++++++++------- apps/client/src/locales/messages.es.xlf | 158 +++++++++++------- apps/client/src/locales/messages.fr.xlf | 158 +++++++++++------- apps/client/src/locales/messages.it.xlf | 158 +++++++++++------- apps/client/src/locales/messages.nl.xlf | 158 +++++++++++------- apps/client/src/locales/messages.pl.xlf | 158 +++++++++++------- apps/client/src/locales/messages.pt.xlf | 158 +++++++++++------- apps/client/src/locales/messages.tr.xlf | 158 +++++++++++------- apps/client/src/locales/messages.xlf | 154 ++++++++++------- apps/client/src/locales/messages.zh.xlf | 158 +++++++++++------- 12 files changed, 951 insertions(+), 631 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 408708fea..c322a4c6b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## Unreleased +### Changed + +- Improved the language localization for German (`de`) + ### Fixed - Fixed a pagination issue in the activities endpoint by adding `id` as a secondary sort criterion to `date` to ensure consistent ordering diff --git a/apps/client/src/app/components/admin-market-data/admin-market-data.service.ts b/apps/client/src/app/components/admin-market-data/admin-market-data.service.ts index 0753327f6..8f3084cd8 100644 --- a/apps/client/src/app/components/admin-market-data/admin-market-data.service.ts +++ b/apps/client/src/app/components/admin-market-data/admin-market-data.service.ts @@ -31,7 +31,7 @@ export class AdminMarketDataService { public deleteAssetProfiles(uniqueAssets: UniqueAsset[]) { const confirmation = confirm( - $localize`Do you really want to delete these asset profiles?` + $localize`Do you really want to delete these profiles?` ); if (confirmation) { diff --git a/apps/client/src/locales/messages.de.xlf b/apps/client/src/locales/messages.de.xlf index 2a8923cbf..4a4462405 100644 --- a/apps/client/src/locales/messages.de.xlf +++ b/apps/client/src/locales/messages.de.xlf @@ -94,7 +94,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 150 + 152 apps/client/src/app/components/admin-tag/admin-tag.component.html @@ -126,11 +126,11 @@ apps/client/src/app/components/admin-market-data/admin-market-data.html - 38 + 60 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 226 + 228 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -250,7 +250,7 @@ apps/client/src/app/components/admin-market-data/admin-market-data.html - 177 + 206 apps/client/src/app/components/admin-overview/admin-overview.html @@ -278,11 +278,11 @@ apps/client/src/app/components/admin-market-data/admin-market-data.html - 196 + 227 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 62 + 64 apps/client/src/app/components/admin-overview/admin-overview.html @@ -334,11 +334,11 @@ apps/client/src/app/components/admin-market-data/admin-market-data.html - 24 + 46 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 115 + 117 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -358,11 +358,11 @@ apps/client/src/app/components/admin-market-data/admin-market-data.html - 55 + 77 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 125 + 127 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -490,7 +490,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 376 + 378 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -534,7 +534,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 383 + 385 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -566,11 +566,11 @@ Erste Aktivität apps/client/src/app/components/admin-market-data/admin-market-data.html - 82 + 104 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 141 + 143 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -594,11 +594,11 @@ Historische Daten apps/client/src/app/components/admin-market-data/admin-market-data.html - 100 + 122 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 82 + 84 @@ -662,7 +662,7 @@ Letzte Daten einholen apps/client/src/app/components/admin-market-data/admin-market-data.html - 146 + 168 @@ -670,7 +670,7 @@ Alle Daten einholen apps/client/src/app/components/admin-market-data/admin-market-data.html - 149 + 171 @@ -678,7 +678,7 @@ Profildaten herunterladen apps/client/src/app/components/admin-market-data/admin-market-data.html - 152 + 174 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html @@ -1006,7 +1006,7 @@ Registrieren apps/client/src/app/pages/features/features-page.html - 300 + 301 apps/client/src/app/pages/public/public-page.html @@ -1302,11 +1302,11 @@ Sektoren apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 202 + 204 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 327 + 329 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1322,11 +1322,11 @@ Länder apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 212 + 214 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 338 + 340 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1510,15 +1510,15 @@ apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.html - 183 + 184 apps/client/src/app/pages/blog/2022/01/first-months-in-open-source/first-months-in-open-source-page.html - 183 + 184 apps/client/src/app/pages/blog/2022/07/ghostfolio-meets-internet-identity/ghostfolio-meets-internet-identity-page.html - 183 + 184 apps/client/src/app/pages/blog/2022/07/how-do-i-get-my-finances-in-order/how-do-i-get-my-finances-in-order-page.html @@ -1526,7 +1526,7 @@ apps/client/src/app/pages/blog/2022/08/500-stars-on-github/500-stars-on-github-page.html - 195 + 196 apps/client/src/app/pages/blog/2022/10/hacktoberfest-2022/hacktoberfest-2022-page.html @@ -1550,7 +1550,7 @@ apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.html - 252 + 253 apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.html @@ -1758,7 +1758,7 @@ apps/client/src/app/pages/features/features-page.html - 190 + 191 @@ -1846,11 +1846,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 130 + 132 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 233 + 235 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -2282,7 +2282,7 @@ Kommentar apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 363 + 365 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -2298,15 +2298,15 @@ Anlageklasse apps/client/src/app/components/admin-market-data/admin-market-data.html - 64 + 86 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 159 + 161 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 243 + 245 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -2666,15 +2666,15 @@ Anlageunterklasse apps/client/src/app/components/admin-market-data/admin-market-data.html - 73 + 95 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 168 + 170 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 256 + 258 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -2690,7 +2690,7 @@ Sektor apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 185 + 187 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -2702,7 +2702,7 @@ Land apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 196 + 198 apps/client/src/app/components/admin-users/admin-users.html @@ -2798,7 +2798,7 @@ Anzahl Länder apps/client/src/app/components/admin-market-data/admin-market-data.html - 118 + 140 @@ -2806,7 +2806,7 @@ Anzahl Sektoren apps/client/src/app/components/admin-market-data/admin-market-data.html - 109 + 131 @@ -2838,7 +2838,7 @@ Filtern nach... apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 282 + 300 @@ -3234,7 +3234,7 @@ apps/client/src/app/pages/features/features-page.html - 256 + 257 @@ -3242,7 +3242,7 @@ Anzahl Aktivitäten apps/client/src/app/components/admin-market-data/admin-market-data.html - 91 + 113 @@ -3258,7 +3258,7 @@ Symbol Zuordnung apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 290 + 292 @@ -3310,7 +3310,7 @@ Importieren apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 108 + 110 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html @@ -3722,7 +3722,7 @@ apps/client/src/app/pages/features/features-page.html - 160 + 161 apps/client/src/app/pages/pricing/pricing-page.html @@ -3926,7 +3926,7 @@ Url apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 350 + 352 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -4266,7 +4266,7 @@ Dark Mode apps/client/src/app/pages/features/features-page.html - 177 + 178 @@ -4274,7 +4274,7 @@ Marktstimmung apps/client/src/app/pages/features/features-page.html - 205 + 206 @@ -4282,7 +4282,7 @@ Statische Analyse apps/client/src/app/pages/features/features-page.html - 224 + 225 @@ -4290,7 +4290,7 @@ Mehrsprachigkeit apps/client/src/app/pages/features/features-page.html - 241 + 242 @@ -4298,7 +4298,7 @@ Open Source Software apps/client/src/app/pages/features/features-page.html - 275 + 276 @@ -4314,7 +4314,7 @@ Scraper Konfiguration apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 302 + 304 @@ -4510,7 +4510,7 @@ Lexikon apps/client/src/app/pages/resources/resources-page.html - 92 + 124 @@ -4562,7 +4562,7 @@ ETFs ohne Länder apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 78 + 84 @@ -4570,7 +4570,7 @@ ETFs ohne Sektoren apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 83 + 89 @@ -4798,7 +4798,7 @@ Währungen apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 73 + 79 @@ -5834,7 +5834,7 @@ Benchmark apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 284 + 286 @@ -5934,7 +5934,7 @@ Möchtest du dieses Anlageprofil wirklich löschen? apps/client/src/app/components/admin-market-data/admin-market-data.service.ts - 13 + 18 @@ -6134,7 +6134,7 @@ Test apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 320 + 322 @@ -6625,6 +6625,38 @@ 81 + + Benchmarks + Benchmarks + + apps/client/src/app/components/admin-market-data/admin-market-data.component.ts + 74 + + + + Delete Profiles + Profile löschen + + apps/client/src/app/components/admin-market-data/admin-market-data.html + 181 + + + + Do you really want to delete these profiles? + Möchtest du diese Profile wirklich löschen? + + apps/client/src/app/components/admin-market-data/admin-market-data.service.ts + 34 + + + + Oops! Could not delete profiles. + Ups! Die Profile konnten nicht gelöscht werden. + + apps/client/src/app/components/admin-market-data/admin-market-data.service.ts + 45 + + diff --git a/apps/client/src/locales/messages.es.xlf b/apps/client/src/locales/messages.es.xlf index e3c6b47e6..4bd27a6b2 100644 --- a/apps/client/src/locales/messages.es.xlf +++ b/apps/client/src/locales/messages.es.xlf @@ -95,7 +95,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 150 + 152 apps/client/src/app/components/admin-tag/admin-tag.component.html @@ -127,11 +127,11 @@ apps/client/src/app/components/admin-market-data/admin-market-data.html - 38 + 60 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 226 + 228 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -251,7 +251,7 @@ apps/client/src/app/components/admin-market-data/admin-market-data.html - 177 + 206 apps/client/src/app/components/admin-overview/admin-overview.html @@ -279,11 +279,11 @@ apps/client/src/app/components/admin-market-data/admin-market-data.html - 196 + 227 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 62 + 64 apps/client/src/app/components/admin-overview/admin-overview.html @@ -335,11 +335,11 @@ apps/client/src/app/components/admin-market-data/admin-market-data.html - 24 + 46 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 115 + 117 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -359,11 +359,11 @@ apps/client/src/app/components/admin-market-data/admin-market-data.html - 55 + 77 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 125 + 127 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -491,7 +491,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 376 + 378 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -535,7 +535,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 383 + 385 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -567,11 +567,11 @@ Primera actividad apps/client/src/app/components/admin-market-data/admin-market-data.html - 82 + 104 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 141 + 143 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -595,11 +595,11 @@ Datos históricos apps/client/src/app/components/admin-market-data/admin-market-data.html - 100 + 122 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 82 + 84 @@ -663,7 +663,7 @@ Recoger datos recientes apps/client/src/app/components/admin-market-data/admin-market-data.html - 146 + 168 @@ -671,7 +671,7 @@ Recoger todos los datos apps/client/src/app/components/admin-market-data/admin-market-data.html - 149 + 171 @@ -679,7 +679,7 @@ Recoger los datos del perfil apps/client/src/app/components/admin-market-data/admin-market-data.html - 152 + 174 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html @@ -1007,7 +1007,7 @@ Empezar apps/client/src/app/pages/features/features-page.html - 300 + 301 apps/client/src/app/pages/public/public-page.html @@ -1303,11 +1303,11 @@ Sectores apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 202 + 204 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 327 + 329 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1323,11 +1323,11 @@ Países apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 212 + 214 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 338 + 340 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1511,15 +1511,15 @@ apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.html - 183 + 184 apps/client/src/app/pages/blog/2022/01/first-months-in-open-source/first-months-in-open-source-page.html - 183 + 184 apps/client/src/app/pages/blog/2022/07/ghostfolio-meets-internet-identity/ghostfolio-meets-internet-identity-page.html - 183 + 184 apps/client/src/app/pages/blog/2022/07/how-do-i-get-my-finances-in-order/how-do-i-get-my-finances-in-order-page.html @@ -1527,7 +1527,7 @@ apps/client/src/app/pages/blog/2022/08/500-stars-on-github/500-stars-on-github-page.html - 195 + 196 apps/client/src/app/pages/blog/2022/10/hacktoberfest-2022/hacktoberfest-2022-page.html @@ -1551,7 +1551,7 @@ apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.html - 252 + 253 apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.html @@ -1759,7 +1759,7 @@ apps/client/src/app/pages/features/features-page.html - 190 + 191 @@ -1847,11 +1847,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 130 + 132 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 233 + 235 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -2283,7 +2283,7 @@ Nota apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 363 + 365 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -2299,15 +2299,15 @@ Tipo de activo apps/client/src/app/components/admin-market-data/admin-market-data.html - 64 + 86 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 159 + 161 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 243 + 245 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -2655,15 +2655,15 @@ Subtipo de activo apps/client/src/app/components/admin-market-data/admin-market-data.html - 73 + 95 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 168 + 170 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 256 + 258 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -2719,7 +2719,7 @@ Sector apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 185 + 187 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -2731,7 +2731,7 @@ País apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 196 + 198 apps/client/src/app/components/admin-users/admin-users.html @@ -2799,7 +2799,7 @@ Número de sectores apps/client/src/app/components/admin-market-data/admin-market-data.html - 109 + 131 @@ -2807,7 +2807,7 @@ Número de países apps/client/src/app/components/admin-market-data/admin-market-data.html - 118 + 140 @@ -2839,7 +2839,7 @@ Filtrar por... apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 282 + 300 @@ -3235,7 +3235,7 @@ apps/client/src/app/pages/features/features-page.html - 256 + 257 @@ -3243,7 +3243,7 @@ Recuento de actividades apps/client/src/app/components/admin-market-data/admin-market-data.html - 91 + 113 @@ -3259,7 +3259,7 @@ Mapeo de símbolos apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 290 + 292 @@ -3311,7 +3311,7 @@ Import apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 108 + 110 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html @@ -3723,7 +3723,7 @@ apps/client/src/app/pages/features/features-page.html - 160 + 161 apps/client/src/app/pages/pricing/pricing-page.html @@ -3927,7 +3927,7 @@ Url apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 350 + 352 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -4267,7 +4267,7 @@ Dark Mode apps/client/src/app/pages/features/features-page.html - 177 + 178 @@ -4275,7 +4275,7 @@ Market Mood apps/client/src/app/pages/features/features-page.html - 205 + 206 @@ -4283,7 +4283,7 @@ Static Analysis apps/client/src/app/pages/features/features-page.html - 224 + 225 @@ -4291,7 +4291,7 @@ Multi-Language apps/client/src/app/pages/features/features-page.html - 241 + 242 @@ -4299,7 +4299,7 @@ Open Source Software apps/client/src/app/pages/features/features-page.html - 275 + 276 @@ -4315,7 +4315,7 @@ Scraper Configuration apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 302 + 304 @@ -4511,7 +4511,7 @@ Glossary apps/client/src/app/pages/resources/resources-page.html - 92 + 124 @@ -4563,7 +4563,7 @@ ETFs without Countries apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 78 + 84 @@ -4571,7 +4571,7 @@ ETFs without Sectors apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 83 + 89 @@ -4799,7 +4799,7 @@ Currencies apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 73 + 79 @@ -5835,7 +5835,7 @@ Benchmark apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 284 + 286 @@ -5935,7 +5935,7 @@ Do you really want to delete this asset profile? apps/client/src/app/components/admin-market-data/admin-market-data.service.ts - 13 + 18 @@ -6135,7 +6135,7 @@ Test apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 320 + 322 @@ -6626,6 +6626,38 @@ 81 + + Benchmarks + Benchmarks + + apps/client/src/app/components/admin-market-data/admin-market-data.component.ts + 74 + + + + Delete Profiles + Delete Profiles + + apps/client/src/app/components/admin-market-data/admin-market-data.html + 181 + + + + Do you really want to delete these profiles? + Do you really want to delete these profiles? + + apps/client/src/app/components/admin-market-data/admin-market-data.service.ts + 34 + + + + Oops! Could not delete profiles. + Oops! Could not delete profiles. + + apps/client/src/app/components/admin-market-data/admin-market-data.service.ts + 45 + + \ No newline at end of file diff --git a/apps/client/src/locales/messages.fr.xlf b/apps/client/src/locales/messages.fr.xlf index 0b81664d3..00223d1cf 100644 --- a/apps/client/src/locales/messages.fr.xlf +++ b/apps/client/src/locales/messages.fr.xlf @@ -106,7 +106,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 150 + 152 apps/client/src/app/components/admin-tag/admin-tag.component.html @@ -138,11 +138,11 @@ apps/client/src/app/components/admin-market-data/admin-market-data.html - 38 + 60 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 226 + 228 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -198,11 +198,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 130 + 132 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 233 + 235 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -306,7 +306,7 @@ apps/client/src/app/components/admin-market-data/admin-market-data.html - 177 + 206 apps/client/src/app/components/admin-overview/admin-overview.html @@ -334,11 +334,11 @@ apps/client/src/app/components/admin-market-data/admin-market-data.html - 196 + 227 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 62 + 64 apps/client/src/app/components/admin-overview/admin-overview.html @@ -382,11 +382,11 @@ apps/client/src/app/components/admin-market-data/admin-market-data.html - 24 + 46 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 115 + 117 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -406,11 +406,11 @@ apps/client/src/app/components/admin-market-data/admin-market-data.html - 55 + 77 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 125 + 127 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -546,7 +546,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 376 + 378 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -590,7 +590,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 383 + 385 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -622,7 +622,7 @@ Filtrer par... apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 282 + 300 @@ -630,15 +630,15 @@ Classe d’Actifs apps/client/src/app/components/admin-market-data/admin-market-data.html - 64 + 86 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 159 + 161 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 243 + 245 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -654,15 +654,15 @@ Sous-classe d’Actifs apps/client/src/app/components/admin-market-data/admin-market-data.html - 73 + 95 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 168 + 170 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 256 + 258 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -678,11 +678,11 @@ Première Activité apps/client/src/app/components/admin-market-data/admin-market-data.html - 82 + 104 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 141 + 143 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -698,7 +698,7 @@ Nombre d’Activités apps/client/src/app/components/admin-market-data/admin-market-data.html - 91 + 113 @@ -706,11 +706,11 @@ Données Historiques apps/client/src/app/components/admin-market-data/admin-market-data.html - 100 + 122 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 82 + 84 @@ -718,7 +718,7 @@ Nombre de Secteurs apps/client/src/app/components/admin-market-data/admin-market-data.html - 109 + 131 @@ -726,7 +726,7 @@ Nombre de Pays apps/client/src/app/components/admin-market-data/admin-market-data.html - 118 + 140 @@ -734,7 +734,7 @@ Obtenir les Données Récentes apps/client/src/app/components/admin-market-data/admin-market-data.html - 146 + 168 @@ -742,7 +742,7 @@ Obtenir toutes les Données apps/client/src/app/components/admin-market-data/admin-market-data.html - 149 + 171 @@ -750,7 +750,7 @@ Obtenir les Données du Profil apps/client/src/app/components/admin-market-data/admin-market-data.html - 152 + 174 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html @@ -770,7 +770,7 @@ Secteur apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 185 + 187 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -782,7 +782,7 @@ Pays apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 196 + 198 apps/client/src/app/components/admin-users/admin-users.html @@ -798,11 +798,11 @@ Secteurs apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 202 + 204 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 327 + 329 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -818,11 +818,11 @@ Pays apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 212 + 214 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 338 + 340 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -834,7 +834,7 @@ Équivalence de Symboles apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 290 + 292 @@ -842,7 +842,7 @@ Note apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 363 + 365 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -2046,7 +2046,7 @@ apps/client/src/app/pages/features/features-page.html - 256 + 257 @@ -2106,7 +2106,7 @@ apps/client/src/app/pages/features/features-page.html - 190 + 191 @@ -2254,15 +2254,15 @@ apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.html - 183 + 184 apps/client/src/app/pages/blog/2022/01/first-months-in-open-source/first-months-in-open-source-page.html - 183 + 184 apps/client/src/app/pages/blog/2022/07/ghostfolio-meets-internet-identity/ghostfolio-meets-internet-identity-page.html - 183 + 184 apps/client/src/app/pages/blog/2022/07/how-do-i-get-my-finances-in-order/how-do-i-get-my-finances-in-order-page.html @@ -2270,7 +2270,7 @@ apps/client/src/app/pages/blog/2022/08/500-stars-on-github/500-stars-on-github-page.html - 195 + 196 apps/client/src/app/pages/blog/2022/10/hacktoberfest-2022/hacktoberfest-2022-page.html @@ -2294,7 +2294,7 @@ apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.html - 252 + 253 apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.html @@ -2538,7 +2538,7 @@ Importer apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 108 + 110 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html @@ -2866,7 +2866,7 @@ Démarrer apps/client/src/app/pages/features/features-page.html - 300 + 301 apps/client/src/app/pages/public/public-page.html @@ -3722,7 +3722,7 @@ apps/client/src/app/pages/features/features-page.html - 160 + 161 apps/client/src/app/pages/pricing/pricing-page.html @@ -3926,7 +3926,7 @@ Lien apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 350 + 352 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -4266,7 +4266,7 @@ Mode Sombre apps/client/src/app/pages/features/features-page.html - 177 + 178 @@ -4274,7 +4274,7 @@ Sentiment du Marché apps/client/src/app/pages/features/features-page.html - 205 + 206 @@ -4282,7 +4282,7 @@ Analyse statique apps/client/src/app/pages/features/features-page.html - 224 + 225 @@ -4290,7 +4290,7 @@ Multi-Langue apps/client/src/app/pages/features/features-page.html - 241 + 242 @@ -4298,7 +4298,7 @@ Logiciel Open Source apps/client/src/app/pages/features/features-page.html - 275 + 276 @@ -4314,7 +4314,7 @@ Scraper Configuration apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 302 + 304 @@ -4510,7 +4510,7 @@ Glossary apps/client/src/app/pages/resources/resources-page.html - 92 + 124 @@ -4562,7 +4562,7 @@ ETFs without Countries apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 78 + 84 @@ -4570,7 +4570,7 @@ ETFs without Sectors apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 83 + 89 @@ -4798,7 +4798,7 @@ Currencies apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 73 + 79 @@ -5834,7 +5834,7 @@ Benchmark apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 284 + 286 @@ -5934,7 +5934,7 @@ Do you really want to delete this asset profile? apps/client/src/app/components/admin-market-data/admin-market-data.service.ts - 13 + 18 @@ -6134,7 +6134,7 @@ Test apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 320 + 322 @@ -6625,6 +6625,38 @@ 81 + + Benchmarks + Benchmarks + + apps/client/src/app/components/admin-market-data/admin-market-data.component.ts + 74 + + + + Delete Profiles + Delete Profiles + + apps/client/src/app/components/admin-market-data/admin-market-data.html + 181 + + + + Do you really want to delete these profiles? + Do you really want to delete these profiles? + + apps/client/src/app/components/admin-market-data/admin-market-data.service.ts + 34 + + + + Oops! Could not delete profiles. + Oops! Could not delete profiles. + + apps/client/src/app/components/admin-market-data/admin-market-data.service.ts + 45 + + \ No newline at end of file diff --git a/apps/client/src/locales/messages.it.xlf b/apps/client/src/locales/messages.it.xlf index d7d3b193d..ab80e4d20 100644 --- a/apps/client/src/locales/messages.it.xlf +++ b/apps/client/src/locales/messages.it.xlf @@ -95,7 +95,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 150 + 152 apps/client/src/app/components/admin-tag/admin-tag.component.html @@ -127,11 +127,11 @@ apps/client/src/app/components/admin-market-data/admin-market-data.html - 38 + 60 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 226 + 228 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -251,7 +251,7 @@ apps/client/src/app/components/admin-market-data/admin-market-data.html - 177 + 206 apps/client/src/app/components/admin-overview/admin-overview.html @@ -279,11 +279,11 @@ apps/client/src/app/components/admin-market-data/admin-market-data.html - 196 + 227 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 62 + 64 apps/client/src/app/components/admin-overview/admin-overview.html @@ -335,11 +335,11 @@ apps/client/src/app/components/admin-market-data/admin-market-data.html - 24 + 46 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 115 + 117 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -359,11 +359,11 @@ apps/client/src/app/components/admin-market-data/admin-market-data.html - 55 + 77 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 125 + 127 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -491,7 +491,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 376 + 378 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -535,7 +535,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 383 + 385 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -567,11 +567,11 @@ Prima attività apps/client/src/app/components/admin-market-data/admin-market-data.html - 82 + 104 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 141 + 143 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -595,11 +595,11 @@ Dati storici apps/client/src/app/components/admin-market-data/admin-market-data.html - 100 + 122 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 82 + 84 @@ -663,7 +663,7 @@ Raccogli dati recenti apps/client/src/app/components/admin-market-data/admin-market-data.html - 146 + 168 @@ -671,7 +671,7 @@ Raccogli tutti i dati apps/client/src/app/components/admin-market-data/admin-market-data.html - 149 + 171 @@ -679,7 +679,7 @@ Raccogli i dati del profilo apps/client/src/app/components/admin-market-data/admin-market-data.html - 152 + 174 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html @@ -1007,7 +1007,7 @@ Inizia apps/client/src/app/pages/features/features-page.html - 300 + 301 apps/client/src/app/pages/public/public-page.html @@ -1303,11 +1303,11 @@ Settori apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 202 + 204 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 327 + 329 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1323,11 +1323,11 @@ Paesi apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 212 + 214 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 338 + 340 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1511,15 +1511,15 @@ apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.html - 183 + 184 apps/client/src/app/pages/blog/2022/01/first-months-in-open-source/first-months-in-open-source-page.html - 183 + 184 apps/client/src/app/pages/blog/2022/07/ghostfolio-meets-internet-identity/ghostfolio-meets-internet-identity-page.html - 183 + 184 apps/client/src/app/pages/blog/2022/07/how-do-i-get-my-finances-in-order/how-do-i-get-my-finances-in-order-page.html @@ -1527,7 +1527,7 @@ apps/client/src/app/pages/blog/2022/08/500-stars-on-github/500-stars-on-github-page.html - 195 + 196 apps/client/src/app/pages/blog/2022/10/hacktoberfest-2022/hacktoberfest-2022-page.html @@ -1551,7 +1551,7 @@ apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.html - 252 + 253 apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.html @@ -1759,7 +1759,7 @@ apps/client/src/app/pages/features/features-page.html - 190 + 191 @@ -1847,11 +1847,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 130 + 132 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 233 + 235 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -2283,7 +2283,7 @@ Nota apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 363 + 365 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -2299,15 +2299,15 @@ Classe asset apps/client/src/app/components/admin-market-data/admin-market-data.html - 64 + 86 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 159 + 161 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 243 + 245 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -2655,15 +2655,15 @@ Sottoclasse asset apps/client/src/app/components/admin-market-data/admin-market-data.html - 73 + 95 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 168 + 170 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 256 + 258 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -2719,7 +2719,7 @@ Settore apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 185 + 187 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -2731,7 +2731,7 @@ Paese apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 196 + 198 apps/client/src/app/components/admin-users/admin-users.html @@ -2799,7 +2799,7 @@ Numero di settori apps/client/src/app/components/admin-market-data/admin-market-data.html - 109 + 131 @@ -2807,7 +2807,7 @@ Numero di paesi apps/client/src/app/components/admin-market-data/admin-market-data.html - 118 + 140 @@ -2839,7 +2839,7 @@ Filtra per... apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 282 + 300 @@ -3235,7 +3235,7 @@ apps/client/src/app/pages/features/features-page.html - 256 + 257 @@ -3243,7 +3243,7 @@ Conteggio attività apps/client/src/app/components/admin-market-data/admin-market-data.html - 91 + 113 @@ -3259,7 +3259,7 @@ Mappatura dei simboli apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 290 + 292 @@ -3311,7 +3311,7 @@ Importa apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 108 + 110 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html @@ -3723,7 +3723,7 @@ apps/client/src/app/pages/features/features-page.html - 160 + 161 apps/client/src/app/pages/pricing/pricing-page.html @@ -3927,7 +3927,7 @@ Url apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 350 + 352 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -4267,7 +4267,7 @@ Modalità scura apps/client/src/app/pages/features/features-page.html - 177 + 178 @@ -4275,7 +4275,7 @@ Umore del mercato apps/client/src/app/pages/features/features-page.html - 205 + 206 @@ -4283,7 +4283,7 @@ Analisi statica apps/client/src/app/pages/features/features-page.html - 224 + 225 @@ -4291,7 +4291,7 @@ Multilingue apps/client/src/app/pages/features/features-page.html - 241 + 242 @@ -4299,7 +4299,7 @@ Software open source apps/client/src/app/pages/features/features-page.html - 275 + 276 @@ -4315,7 +4315,7 @@ Configurazione dello scraper apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 302 + 304 @@ -4511,7 +4511,7 @@ Glossario apps/client/src/app/pages/resources/resources-page.html - 92 + 124 @@ -4563,7 +4563,7 @@ ETF senza paesi apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 78 + 84 @@ -4571,7 +4571,7 @@ ETF senza settori apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 83 + 89 @@ -4799,7 +4799,7 @@ Valute apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 73 + 79 @@ -5835,7 +5835,7 @@ Benchmark apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 284 + 286 @@ -5935,7 +5935,7 @@ Do you really want to delete this asset profile? apps/client/src/app/components/admin-market-data/admin-market-data.service.ts - 13 + 18 @@ -6135,7 +6135,7 @@ Test apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 320 + 322 @@ -6626,6 +6626,38 @@ 81 + + Benchmarks + Benchmarks + + apps/client/src/app/components/admin-market-data/admin-market-data.component.ts + 74 + + + + Delete Profiles + Delete Profiles + + apps/client/src/app/components/admin-market-data/admin-market-data.html + 181 + + + + Do you really want to delete these profiles? + Do you really want to delete these profiles? + + apps/client/src/app/components/admin-market-data/admin-market-data.service.ts + 34 + + + + Oops! Could not delete profiles. + Oops! Could not delete profiles. + + apps/client/src/app/components/admin-market-data/admin-market-data.service.ts + 45 + + \ No newline at end of file diff --git a/apps/client/src/locales/messages.nl.xlf b/apps/client/src/locales/messages.nl.xlf index bf31416a6..0f8f443e6 100644 --- a/apps/client/src/locales/messages.nl.xlf +++ b/apps/client/src/locales/messages.nl.xlf @@ -94,7 +94,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 150 + 152 apps/client/src/app/components/admin-tag/admin-tag.component.html @@ -126,11 +126,11 @@ apps/client/src/app/components/admin-market-data/admin-market-data.html - 38 + 60 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 226 + 228 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -250,7 +250,7 @@ apps/client/src/app/components/admin-market-data/admin-market-data.html - 177 + 206 apps/client/src/app/components/admin-overview/admin-overview.html @@ -278,11 +278,11 @@ apps/client/src/app/components/admin-market-data/admin-market-data.html - 196 + 227 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 62 + 64 apps/client/src/app/components/admin-overview/admin-overview.html @@ -334,11 +334,11 @@ apps/client/src/app/components/admin-market-data/admin-market-data.html - 24 + 46 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 115 + 117 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -358,11 +358,11 @@ apps/client/src/app/components/admin-market-data/admin-market-data.html - 55 + 77 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 125 + 127 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -490,7 +490,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 376 + 378 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -534,7 +534,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 383 + 385 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -566,11 +566,11 @@ Eerste activiteit apps/client/src/app/components/admin-market-data/admin-market-data.html - 82 + 104 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 141 + 143 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -594,11 +594,11 @@ Historische gegevens apps/client/src/app/components/admin-market-data/admin-market-data.html - 100 + 122 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 82 + 84 @@ -662,7 +662,7 @@ Verzamel recente gegevens apps/client/src/app/components/admin-market-data/admin-market-data.html - 146 + 168 @@ -670,7 +670,7 @@ Verzamel alle gegevens apps/client/src/app/components/admin-market-data/admin-market-data.html - 149 + 171 @@ -678,7 +678,7 @@ Verzamel profielgegevens apps/client/src/app/components/admin-market-data/admin-market-data.html - 152 + 174 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html @@ -1006,7 +1006,7 @@ Aan de slag apps/client/src/app/pages/features/features-page.html - 300 + 301 apps/client/src/app/pages/public/public-page.html @@ -1302,11 +1302,11 @@ Sectoren apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 202 + 204 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 327 + 329 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1322,11 +1322,11 @@ Landen apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 212 + 214 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 338 + 340 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1510,15 +1510,15 @@ apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.html - 183 + 184 apps/client/src/app/pages/blog/2022/01/first-months-in-open-source/first-months-in-open-source-page.html - 183 + 184 apps/client/src/app/pages/blog/2022/07/ghostfolio-meets-internet-identity/ghostfolio-meets-internet-identity-page.html - 183 + 184 apps/client/src/app/pages/blog/2022/07/how-do-i-get-my-finances-in-order/how-do-i-get-my-finances-in-order-page.html @@ -1526,7 +1526,7 @@ apps/client/src/app/pages/blog/2022/08/500-stars-on-github/500-stars-on-github-page.html - 195 + 196 apps/client/src/app/pages/blog/2022/10/hacktoberfest-2022/hacktoberfest-2022-page.html @@ -1550,7 +1550,7 @@ apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.html - 252 + 253 apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.html @@ -1758,7 +1758,7 @@ apps/client/src/app/pages/features/features-page.html - 190 + 191 @@ -1846,11 +1846,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 130 + 132 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 233 + 235 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -2282,7 +2282,7 @@ Opmerking apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 363 + 365 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -2298,15 +2298,15 @@ Asset klasse apps/client/src/app/components/admin-market-data/admin-market-data.html - 64 + 86 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 159 + 161 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 243 + 245 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -2654,15 +2654,15 @@ Asset subklasse apps/client/src/app/components/admin-market-data/admin-market-data.html - 73 + 95 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 168 + 170 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 256 + 258 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -2718,7 +2718,7 @@ Sector apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 185 + 187 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -2730,7 +2730,7 @@ Land apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 196 + 198 apps/client/src/app/components/admin-users/admin-users.html @@ -2798,7 +2798,7 @@ Aantal sectoren apps/client/src/app/components/admin-market-data/admin-market-data.html - 109 + 131 @@ -2806,7 +2806,7 @@ Aantal landen apps/client/src/app/components/admin-market-data/admin-market-data.html - 118 + 140 @@ -2838,7 +2838,7 @@ Filter op... apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 282 + 300 @@ -3234,7 +3234,7 @@ apps/client/src/app/pages/features/features-page.html - 256 + 257 @@ -3242,7 +3242,7 @@ Aantal activiteiten apps/client/src/app/components/admin-market-data/admin-market-data.html - 91 + 113 @@ -3258,7 +3258,7 @@ Symbool toewijzen apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 290 + 292 @@ -3310,7 +3310,7 @@ Importeren apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 108 + 110 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html @@ -3722,7 +3722,7 @@ apps/client/src/app/pages/features/features-page.html - 160 + 161 apps/client/src/app/pages/pricing/pricing-page.html @@ -3926,7 +3926,7 @@ Url apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 350 + 352 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -4266,7 +4266,7 @@ Dark Mode apps/client/src/app/pages/features/features-page.html - 177 + 178 @@ -4274,7 +4274,7 @@ Marktsentiment apps/client/src/app/pages/features/features-page.html - 205 + 206 @@ -4282,7 +4282,7 @@ Statische Analyse apps/client/src/app/pages/features/features-page.html - 224 + 225 @@ -4290,7 +4290,7 @@ Meerdere talen apps/client/src/app/pages/features/features-page.html - 241 + 242 @@ -4298,7 +4298,7 @@ Open Source Software apps/client/src/app/pages/features/features-page.html - 275 + 276 @@ -4314,7 +4314,7 @@ Scraper instellingen apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 302 + 304 @@ -4510,7 +4510,7 @@ Woordenlijst apps/client/src/app/pages/resources/resources-page.html - 92 + 124 @@ -4562,7 +4562,7 @@ ETF's zonder Landen apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 78 + 84 @@ -4570,7 +4570,7 @@ ETF's zonder Sectoren apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 83 + 89 @@ -4798,7 +4798,7 @@ Valuta apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 73 + 79 @@ -5834,7 +5834,7 @@ Benchmark apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 284 + 286 @@ -5934,7 +5934,7 @@ Do you really want to delete this asset profile? apps/client/src/app/components/admin-market-data/admin-market-data.service.ts - 13 + 18 @@ -6134,7 +6134,7 @@ Test apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 320 + 322 @@ -6625,6 +6625,38 @@ 81 + + Benchmarks + Benchmarks + + apps/client/src/app/components/admin-market-data/admin-market-data.component.ts + 74 + + + + Delete Profiles + Delete Profiles + + apps/client/src/app/components/admin-market-data/admin-market-data.html + 181 + + + + Do you really want to delete these profiles? + Do you really want to delete these profiles? + + apps/client/src/app/components/admin-market-data/admin-market-data.service.ts + 34 + + + + Oops! Could not delete profiles. + Oops! Could not delete profiles. + + apps/client/src/app/components/admin-market-data/admin-market-data.service.ts + 45 + + \ No newline at end of file diff --git a/apps/client/src/locales/messages.pl.xlf b/apps/client/src/locales/messages.pl.xlf index 1dcb612c6..c248f0832 100644 --- a/apps/client/src/locales/messages.pl.xlf +++ b/apps/client/src/locales/messages.pl.xlf @@ -502,15 +502,15 @@ apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.html - 183 + 184 apps/client/src/app/pages/blog/2022/01/first-months-in-open-source/first-months-in-open-source-page.html - 183 + 184 apps/client/src/app/pages/blog/2022/07/ghostfolio-meets-internet-identity/ghostfolio-meets-internet-identity-page.html - 183 + 184 apps/client/src/app/pages/blog/2022/07/how-do-i-get-my-finances-in-order/how-do-i-get-my-finances-in-order-page.html @@ -518,7 +518,7 @@ apps/client/src/app/pages/blog/2022/08/500-stars-on-github/500-stars-on-github-page.html - 195 + 196 apps/client/src/app/pages/blog/2022/10/hacktoberfest-2022/hacktoberfest-2022-page.html @@ -542,7 +542,7 @@ apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.html - 252 + 253 apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.html @@ -706,7 +706,7 @@ apps/client/src/app/pages/features/features-page.html - 256 + 257 @@ -822,7 +822,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 150 + 152 apps/client/src/app/components/admin-tag/admin-tag.component.html @@ -882,11 +882,11 @@ apps/client/src/app/components/admin-market-data/admin-market-data.html - 38 + 60 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 226 + 228 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -942,11 +942,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 130 + 132 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 233 + 235 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -1034,7 +1034,7 @@ apps/client/src/app/components/admin-market-data/admin-market-data.html - 177 + 206 apps/client/src/app/components/admin-overview/admin-overview.html @@ -1062,11 +1062,11 @@ apps/client/src/app/components/admin-market-data/admin-market-data.html - 196 + 227 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 62 + 64 apps/client/src/app/components/admin-overview/admin-overview.html @@ -1126,11 +1126,11 @@ apps/client/src/app/components/admin-market-data/admin-market-data.html - 24 + 46 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 115 + 117 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -1150,11 +1150,11 @@ apps/client/src/app/components/admin-market-data/admin-market-data.html - 55 + 77 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 125 + 127 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -1274,7 +1274,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 376 + 378 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -1318,7 +1318,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 383 + 385 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -1350,7 +1350,7 @@ Currencies apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 73 + 79 @@ -1358,7 +1358,7 @@ ETFs without Countries apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 78 + 84 @@ -1366,7 +1366,7 @@ ETFs without Sectors apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 83 + 89 @@ -1374,7 +1374,7 @@ Do you really want to delete this asset profile? apps/client/src/app/components/admin-market-data/admin-market-data.service.ts - 13 + 18 @@ -1382,7 +1382,7 @@ Filter by... apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 282 + 300 @@ -1390,15 +1390,15 @@ Asset Class apps/client/src/app/components/admin-market-data/admin-market-data.html - 64 + 86 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 159 + 161 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 243 + 245 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1414,15 +1414,15 @@ Asset Sub Class apps/client/src/app/components/admin-market-data/admin-market-data.html - 73 + 95 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 168 + 170 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 256 + 258 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1438,11 +1438,11 @@ First Activity apps/client/src/app/components/admin-market-data/admin-market-data.html - 82 + 104 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 141 + 143 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1458,7 +1458,7 @@ Activities Count apps/client/src/app/components/admin-market-data/admin-market-data.html - 91 + 113 @@ -1466,11 +1466,11 @@ Historical Data apps/client/src/app/components/admin-market-data/admin-market-data.html - 100 + 122 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 82 + 84 @@ -1478,7 +1478,7 @@ Sectors Count apps/client/src/app/components/admin-market-data/admin-market-data.html - 109 + 131 @@ -1486,7 +1486,7 @@ Countries Count apps/client/src/app/components/admin-market-data/admin-market-data.html - 118 + 140 @@ -1494,7 +1494,7 @@ Gather Recent Data apps/client/src/app/components/admin-market-data/admin-market-data.html - 146 + 168 @@ -1502,7 +1502,7 @@ Gather All Data apps/client/src/app/components/admin-market-data/admin-market-data.html - 149 + 171 @@ -1510,7 +1510,7 @@ Gather Profile Data apps/client/src/app/components/admin-market-data/admin-market-data.html - 152 + 174 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html @@ -1546,7 +1546,7 @@ Import apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 108 + 110 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html @@ -1562,7 +1562,7 @@ Sector apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 185 + 187 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1574,7 +1574,7 @@ Country apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 196 + 198 apps/client/src/app/components/admin-users/admin-users.html @@ -1590,11 +1590,11 @@ Sectors apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 202 + 204 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 327 + 329 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1610,11 +1610,11 @@ Countries apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 212 + 214 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 338 + 340 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1626,7 +1626,7 @@ Benchmark apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 284 + 286 @@ -1634,7 +1634,7 @@ Symbol Mapping apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 290 + 292 @@ -1642,7 +1642,7 @@ Scraper Configuration apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 302 + 304 @@ -1650,7 +1650,7 @@ Note apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 363 + 365 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -1874,7 +1874,7 @@ Url apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 350 + 352 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -2766,7 +2766,7 @@ apps/client/src/app/pages/features/features-page.html - 160 + 161 apps/client/src/app/pages/pricing/pricing-page.html @@ -3130,7 +3130,7 @@ apps/client/src/app/pages/features/features-page.html - 190 + 191 @@ -3590,7 +3590,7 @@ Dark Mode apps/client/src/app/pages/features/features-page.html - 177 + 178 @@ -3598,7 +3598,7 @@ Market Mood apps/client/src/app/pages/features/features-page.html - 205 + 206 @@ -3606,7 +3606,7 @@ Static Analysis apps/client/src/app/pages/features/features-page.html - 224 + 225 @@ -3614,7 +3614,7 @@ Multi-Language apps/client/src/app/pages/features/features-page.html - 241 + 242 @@ -3622,7 +3622,7 @@ Open Source Software apps/client/src/app/pages/features/features-page.html - 275 + 276 @@ -3630,7 +3630,7 @@ Get Started apps/client/src/app/pages/features/features-page.html - 300 + 301 apps/client/src/app/pages/public/public-page.html @@ -5330,7 +5330,7 @@ Glossary apps/client/src/app/pages/resources/resources-page.html - 92 + 124 @@ -6134,7 +6134,7 @@ Test apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 320 + 322 @@ -6625,6 +6625,38 @@ 81 + + Benchmarks + Benchmarks + + apps/client/src/app/components/admin-market-data/admin-market-data.component.ts + 74 + + + + Delete Profiles + Delete Profiles + + apps/client/src/app/components/admin-market-data/admin-market-data.html + 181 + + + + Do you really want to delete these profiles? + Do you really want to delete these profiles? + + apps/client/src/app/components/admin-market-data/admin-market-data.service.ts + 34 + + + + Oops! Could not delete profiles. + Oops! Could not delete profiles. + + apps/client/src/app/components/admin-market-data/admin-market-data.service.ts + 45 + + \ No newline at end of file diff --git a/apps/client/src/locales/messages.pt.xlf b/apps/client/src/locales/messages.pt.xlf index 04acc074d..692bdc6c6 100644 --- a/apps/client/src/locales/messages.pt.xlf +++ b/apps/client/src/locales/messages.pt.xlf @@ -106,7 +106,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 150 + 152 apps/client/src/app/components/admin-tag/admin-tag.component.html @@ -138,11 +138,11 @@ apps/client/src/app/components/admin-market-data/admin-market-data.html - 38 + 60 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 226 + 228 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -198,11 +198,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 130 + 132 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 233 + 235 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -306,7 +306,7 @@ apps/client/src/app/components/admin-market-data/admin-market-data.html - 177 + 206 apps/client/src/app/components/admin-overview/admin-overview.html @@ -334,11 +334,11 @@ apps/client/src/app/components/admin-market-data/admin-market-data.html - 196 + 227 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 62 + 64 apps/client/src/app/components/admin-overview/admin-overview.html @@ -382,11 +382,11 @@ apps/client/src/app/components/admin-market-data/admin-market-data.html - 24 + 46 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 115 + 117 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -406,11 +406,11 @@ apps/client/src/app/components/admin-market-data/admin-market-data.html - 55 + 77 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 125 + 127 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -546,7 +546,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 376 + 378 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -590,7 +590,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 383 + 385 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -622,7 +622,7 @@ Filtrar por... apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 282 + 300 @@ -630,15 +630,15 @@ Classe do Ativo apps/client/src/app/components/admin-market-data/admin-market-data.html - 64 + 86 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 159 + 161 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 243 + 245 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -654,15 +654,15 @@ Subclasse do ativo apps/client/src/app/components/admin-market-data/admin-market-data.html - 73 + 95 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 168 + 170 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 256 + 258 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -678,11 +678,11 @@ Primeira Atividade apps/client/src/app/components/admin-market-data/admin-market-data.html - 82 + 104 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 141 + 143 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -706,11 +706,11 @@ Dados Históricos apps/client/src/app/components/admin-market-data/admin-market-data.html - 100 + 122 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 82 + 84 @@ -718,7 +718,7 @@ Contagem de Países apps/client/src/app/components/admin-market-data/admin-market-data.html - 118 + 140 @@ -726,7 +726,7 @@ Contagem de Setores apps/client/src/app/components/admin-market-data/admin-market-data.html - 109 + 131 @@ -734,7 +734,7 @@ Atualizar dados mais recentes apps/client/src/app/components/admin-market-data/admin-market-data.html - 146 + 168 @@ -742,7 +742,7 @@ Recolher Todos os Dados apps/client/src/app/components/admin-market-data/admin-market-data.html - 149 + 171 @@ -750,7 +750,7 @@ Recolher Dados de Perfíl apps/client/src/app/components/admin-market-data/admin-market-data.html - 152 + 174 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html @@ -1578,7 +1578,7 @@ Setor apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 185 + 187 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1590,7 +1590,7 @@ País apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 196 + 198 apps/client/src/app/components/admin-users/admin-users.html @@ -1606,11 +1606,11 @@ Setores apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 202 + 204 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 327 + 329 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1626,11 +1626,11 @@ Países apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 212 + 214 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 338 + 340 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -2022,7 +2022,7 @@ apps/client/src/app/pages/features/features-page.html - 190 + 191 @@ -2178,15 +2178,15 @@ apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.html - 183 + 184 apps/client/src/app/pages/blog/2022/01/first-months-in-open-source/first-months-in-open-source-page.html - 183 + 184 apps/client/src/app/pages/blog/2022/07/ghostfolio-meets-internet-identity/ghostfolio-meets-internet-identity-page.html - 183 + 184 apps/client/src/app/pages/blog/2022/07/how-do-i-get-my-finances-in-order/how-do-i-get-my-finances-in-order-page.html @@ -2194,7 +2194,7 @@ apps/client/src/app/pages/blog/2022/08/500-stars-on-github/500-stars-on-github-page.html - 195 + 196 apps/client/src/app/pages/blog/2022/10/hacktoberfest-2022/hacktoberfest-2022-page.html @@ -2218,7 +2218,7 @@ apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.html - 252 + 253 apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.html @@ -2406,7 +2406,7 @@ Nota apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 363 + 365 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -2762,7 +2762,7 @@ Começar apps/client/src/app/pages/features/features-page.html - 300 + 301 apps/client/src/app/pages/public/public-page.html @@ -3210,7 +3210,7 @@ Nº de Atividades apps/client/src/app/components/admin-market-data/admin-market-data.html - 91 + 113 @@ -3226,7 +3226,7 @@ Mapeamento de Símbolo apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 290 + 292 @@ -3278,7 +3278,7 @@ apps/client/src/app/pages/features/features-page.html - 256 + 257 @@ -3318,7 +3318,7 @@ Importar apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 108 + 110 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html @@ -3722,7 +3722,7 @@ apps/client/src/app/pages/features/features-page.html - 160 + 161 apps/client/src/app/pages/pricing/pricing-page.html @@ -3926,7 +3926,7 @@ Url apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 350 + 352 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -4266,7 +4266,7 @@ Dark Mode apps/client/src/app/pages/features/features-page.html - 177 + 178 @@ -4274,7 +4274,7 @@ Market Mood apps/client/src/app/pages/features/features-page.html - 205 + 206 @@ -4282,7 +4282,7 @@ Static Analysis apps/client/src/app/pages/features/features-page.html - 224 + 225 @@ -4290,7 +4290,7 @@ Multi-Language apps/client/src/app/pages/features/features-page.html - 241 + 242 @@ -4298,7 +4298,7 @@ Open Source Software apps/client/src/app/pages/features/features-page.html - 275 + 276 @@ -4314,7 +4314,7 @@ Scraper Configuration apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 302 + 304 @@ -4510,7 +4510,7 @@ Glossary apps/client/src/app/pages/resources/resources-page.html - 92 + 124 @@ -4562,7 +4562,7 @@ ETFs without Countries apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 78 + 84 @@ -4570,7 +4570,7 @@ ETFs without Sectors apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 83 + 89 @@ -4798,7 +4798,7 @@ Currencies apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 73 + 79 @@ -5834,7 +5834,7 @@ Benchmark apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 284 + 286 @@ -5934,7 +5934,7 @@ Do you really want to delete this asset profile? apps/client/src/app/components/admin-market-data/admin-market-data.service.ts - 13 + 18 @@ -6134,7 +6134,7 @@ Test apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 320 + 322 @@ -6625,6 +6625,38 @@ 81 + + Benchmarks + Benchmarks + + apps/client/src/app/components/admin-market-data/admin-market-data.component.ts + 74 + + + + Delete Profiles + Delete Profiles + + apps/client/src/app/components/admin-market-data/admin-market-data.html + 181 + + + + Do you really want to delete these profiles? + Do you really want to delete these profiles? + + apps/client/src/app/components/admin-market-data/admin-market-data.service.ts + 34 + + + + Oops! Could not delete profiles. + Oops! Could not delete profiles. + + apps/client/src/app/components/admin-market-data/admin-market-data.service.ts + 45 + + \ No newline at end of file diff --git a/apps/client/src/locales/messages.tr.xlf b/apps/client/src/locales/messages.tr.xlf index c47dcedc0..f7a174eef 100644 --- a/apps/client/src/locales/messages.tr.xlf +++ b/apps/client/src/locales/messages.tr.xlf @@ -478,15 +478,15 @@ apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.html - 183 + 184 apps/client/src/app/pages/blog/2022/01/first-months-in-open-source/first-months-in-open-source-page.html - 183 + 184 apps/client/src/app/pages/blog/2022/07/ghostfolio-meets-internet-identity/ghostfolio-meets-internet-identity-page.html - 183 + 184 apps/client/src/app/pages/blog/2022/07/how-do-i-get-my-finances-in-order/how-do-i-get-my-finances-in-order-page.html @@ -494,7 +494,7 @@ apps/client/src/app/pages/blog/2022/08/500-stars-on-github/500-stars-on-github-page.html - 195 + 196 apps/client/src/app/pages/blog/2022/10/hacktoberfest-2022/hacktoberfest-2022-page.html @@ -518,7 +518,7 @@ apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.html - 252 + 253 apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.html @@ -682,7 +682,7 @@ apps/client/src/app/pages/features/features-page.html - 256 + 257 @@ -814,7 +814,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 150 + 152 apps/client/src/app/components/admin-tag/admin-tag.component.html @@ -846,11 +846,11 @@ apps/client/src/app/components/admin-market-data/admin-market-data.html - 38 + 60 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 226 + 228 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -906,11 +906,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 130 + 132 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 233 + 235 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -998,7 +998,7 @@ apps/client/src/app/components/admin-market-data/admin-market-data.html - 177 + 206 apps/client/src/app/components/admin-overview/admin-overview.html @@ -1026,11 +1026,11 @@ apps/client/src/app/components/admin-market-data/admin-market-data.html - 196 + 227 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 62 + 64 apps/client/src/app/components/admin-overview/admin-overview.html @@ -1074,11 +1074,11 @@ apps/client/src/app/components/admin-market-data/admin-market-data.html - 24 + 46 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 115 + 117 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -1098,11 +1098,11 @@ apps/client/src/app/components/admin-market-data/admin-market-data.html - 55 + 77 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 125 + 127 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -1238,7 +1238,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 376 + 378 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -1282,7 +1282,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 383 + 385 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -1314,7 +1314,7 @@ Para Birimleri apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 73 + 79 @@ -1322,7 +1322,7 @@ Ülkesi Olmayan ETF'ler apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 78 + 84 @@ -1330,7 +1330,7 @@ Sektörü Olmayan ETF'ler apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 83 + 89 @@ -1338,7 +1338,7 @@ Filtrele... apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 282 + 300 @@ -1346,15 +1346,15 @@ Varlık Sınıfı apps/client/src/app/components/admin-market-data/admin-market-data.html - 64 + 86 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 159 + 161 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 243 + 245 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1370,15 +1370,15 @@ Varlık Alt Sınıfı apps/client/src/app/components/admin-market-data/admin-market-data.html - 73 + 95 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 168 + 170 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 256 + 258 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1394,11 +1394,11 @@ İlk İşlem apps/client/src/app/components/admin-market-data/admin-market-data.html - 82 + 104 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 141 + 143 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1414,7 +1414,7 @@ İşlem Sayısı apps/client/src/app/components/admin-market-data/admin-market-data.html - 91 + 113 @@ -1422,11 +1422,11 @@ Tarihsel Veri apps/client/src/app/components/admin-market-data/admin-market-data.html - 100 + 122 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 82 + 84 @@ -1434,7 +1434,7 @@ Sektör Sayısı apps/client/src/app/components/admin-market-data/admin-market-data.html - 109 + 131 @@ -1442,7 +1442,7 @@ Ülke Sayısı apps/client/src/app/components/admin-market-data/admin-market-data.html - 118 + 140 @@ -1450,7 +1450,7 @@ Son Veriyi Getir apps/client/src/app/components/admin-market-data/admin-market-data.html - 146 + 168 @@ -1458,7 +1458,7 @@ Tüm Veriyi Getir apps/client/src/app/components/admin-market-data/admin-market-data.html - 149 + 171 @@ -1466,7 +1466,7 @@ Profil Verisini Getir apps/client/src/app/components/admin-market-data/admin-market-data.html - 152 + 174 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html @@ -1494,7 +1494,7 @@ Sektör apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 185 + 187 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1506,7 +1506,7 @@ Ülke apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 196 + 198 apps/client/src/app/components/admin-users/admin-users.html @@ -1522,11 +1522,11 @@ Sektörler apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 202 + 204 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 327 + 329 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1542,11 +1542,11 @@ Ülkeler apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 212 + 214 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 338 + 340 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1558,7 +1558,7 @@ Sembol Eşleştirme apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 290 + 292 @@ -1566,7 +1566,7 @@ Veri Toplayıcı Yapılandırması apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 302 + 304 @@ -1574,7 +1574,7 @@ Not apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 363 + 365 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -1786,7 +1786,7 @@ Url apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 350 + 352 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -2610,7 +2610,7 @@ apps/client/src/app/pages/features/features-page.html - 160 + 161 apps/client/src/app/pages/pricing/pricing-page.html @@ -3142,7 +3142,7 @@ Karanlık Mod apps/client/src/app/pages/features/features-page.html - 177 + 178 @@ -3154,7 +3154,7 @@ apps/client/src/app/pages/features/features-page.html - 190 + 191 @@ -3162,7 +3162,7 @@ Piyasa Modu apps/client/src/app/pages/features/features-page.html - 205 + 206 @@ -3170,7 +3170,7 @@ Statik Analiz apps/client/src/app/pages/features/features-page.html - 224 + 225 @@ -3178,7 +3178,7 @@ Çoklu Dil apps/client/src/app/pages/features/features-page.html - 241 + 242 @@ -3186,7 +3186,7 @@ Açık Kaynak Yazılım apps/client/src/app/pages/features/features-page.html - 275 + 276 @@ -3194,7 +3194,7 @@ Başla apps/client/src/app/pages/features/features-page.html - 300 + 301 apps/client/src/app/pages/public/public-page.html @@ -3842,7 +3842,7 @@ İçe Aktar apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 108 + 110 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html @@ -4802,7 +4802,7 @@ Sözlük apps/client/src/app/pages/resources/resources-page.html - 92 + 124 @@ -5834,7 +5834,7 @@ Kıyaslama apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 284 + 286 @@ -5934,7 +5934,7 @@ Bu varlık profilini silmeyi gerçekten istiyor musunuz? apps/client/src/app/components/admin-market-data/admin-market-data.service.ts - 13 + 18 @@ -6134,7 +6134,7 @@ Test apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 320 + 322 @@ -6625,6 +6625,38 @@ 81 + + Benchmarks + Benchmarks + + apps/client/src/app/components/admin-market-data/admin-market-data.component.ts + 74 + + + + Delete Profiles + Delete Profiles + + apps/client/src/app/components/admin-market-data/admin-market-data.html + 181 + + + + Do you really want to delete these profiles? + Do you really want to delete these profiles? + + apps/client/src/app/components/admin-market-data/admin-market-data.service.ts + 34 + + + + Oops! Could not delete profiles. + Oops! Could not delete profiles. + + apps/client/src/app/components/admin-market-data/admin-market-data.service.ts + 45 + + \ No newline at end of file diff --git a/apps/client/src/locales/messages.xlf b/apps/client/src/locales/messages.xlf index cf3b93035..302d21794 100644 --- a/apps/client/src/locales/messages.xlf +++ b/apps/client/src/locales/messages.xlf @@ -487,15 +487,15 @@ apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.html - 183 + 184 apps/client/src/app/pages/blog/2022/01/first-months-in-open-source/first-months-in-open-source-page.html - 183 + 184 apps/client/src/app/pages/blog/2022/07/ghostfolio-meets-internet-identity/ghostfolio-meets-internet-identity-page.html - 183 + 184 apps/client/src/app/pages/blog/2022/07/how-do-i-get-my-finances-in-order/how-do-i-get-my-finances-in-order-page.html @@ -503,7 +503,7 @@ apps/client/src/app/pages/blog/2022/08/500-stars-on-github/500-stars-on-github-page.html - 195 + 196 apps/client/src/app/pages/blog/2022/10/hacktoberfest-2022/hacktoberfest-2022-page.html @@ -527,7 +527,7 @@ apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.html - 252 + 253 apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.html @@ -684,7 +684,7 @@ apps/client/src/app/pages/features/features-page.html - 256 + 257 @@ -790,7 +790,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 150 + 152 apps/client/src/app/components/admin-tag/admin-tag.component.html @@ -854,11 +854,11 @@ apps/client/src/app/components/admin-market-data/admin-market-data.html - 38 + 60 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 226 + 228 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -912,11 +912,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 130 + 132 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 233 + 235 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -1002,7 +1002,7 @@ apps/client/src/app/components/admin-market-data/admin-market-data.html - 177 + 206 apps/client/src/app/components/admin-overview/admin-overview.html @@ -1029,11 +1029,11 @@ apps/client/src/app/components/admin-market-data/admin-market-data.html - 196 + 227 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 62 + 64 apps/client/src/app/components/admin-overview/admin-overview.html @@ -1089,11 +1089,11 @@ apps/client/src/app/components/admin-market-data/admin-market-data.html - 24 + 46 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 115 + 117 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -1112,11 +1112,11 @@ apps/client/src/app/components/admin-market-data/admin-market-data.html - 55 + 77 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 125 + 127 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -1224,7 +1224,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 376 + 378 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -1267,7 +1267,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 383 + 385 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -1298,50 +1298,50 @@ Currencies apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 73 + 79 ETFs without Countries apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 78 + 84 ETFs without Sectors apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 83 + 89 Do you really want to delete this asset profile? apps/client/src/app/components/admin-market-data/admin-market-data.service.ts - 13 + 18 Filter by... apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 282 + 300 Asset Class apps/client/src/app/components/admin-market-data/admin-market-data.html - 64 + 86 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 159 + 161 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 243 + 245 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1356,15 +1356,15 @@ Asset Sub Class apps/client/src/app/components/admin-market-data/admin-market-data.html - 73 + 95 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 168 + 170 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 256 + 258 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1379,11 +1379,11 @@ First Activity apps/client/src/app/components/admin-market-data/admin-market-data.html - 82 + 104 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 141 + 143 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1398,53 +1398,53 @@ Activities Count apps/client/src/app/components/admin-market-data/admin-market-data.html - 91 + 113 Historical Data apps/client/src/app/components/admin-market-data/admin-market-data.html - 100 + 122 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 82 + 84 Sectors Count apps/client/src/app/components/admin-market-data/admin-market-data.html - 109 + 131 Countries Count apps/client/src/app/components/admin-market-data/admin-market-data.html - 118 + 140 Gather Recent Data apps/client/src/app/components/admin-market-data/admin-market-data.html - 146 + 168 Gather All Data apps/client/src/app/components/admin-market-data/admin-market-data.html - 149 + 171 Gather Profile Data apps/client/src/app/components/admin-market-data/admin-market-data.html - 152 + 174 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html @@ -1476,7 +1476,7 @@ Import apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 108 + 110 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html @@ -1491,7 +1491,7 @@ Sector apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 185 + 187 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1502,7 +1502,7 @@ Country apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 196 + 198 apps/client/src/app/components/admin-users/admin-users.html @@ -1517,11 +1517,11 @@ Sectors apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 202 + 204 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 327 + 329 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1536,11 +1536,11 @@ Countries apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 212 + 214 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 338 + 340 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1551,28 +1551,28 @@ Benchmark apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 284 + 286 Symbol Mapping apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 290 + 292 Scraper Configuration apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 302 + 304 Note apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 363 + 365 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -1777,7 +1777,7 @@ Url apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 350 + 352 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -2581,7 +2581,7 @@ apps/client/src/app/pages/features/features-page.html - 160 + 161 apps/client/src/app/pages/pricing/pricing-page.html @@ -2909,7 +2909,7 @@ apps/client/src/app/pages/features/features-page.html - 190 + 191 @@ -3322,42 +3322,42 @@ Dark Mode apps/client/src/app/pages/features/features-page.html - 177 + 178 Market Mood apps/client/src/app/pages/features/features-page.html - 205 + 206 Static Analysis apps/client/src/app/pages/features/features-page.html - 224 + 225 Multi-Language apps/client/src/app/pages/features/features-page.html - 241 + 242 Open Source Software apps/client/src/app/pages/features/features-page.html - 275 + 276 Get Started apps/client/src/app/pages/features/features-page.html - 300 + 301 apps/client/src/app/pages/public/public-page.html @@ -4896,7 +4896,7 @@ Glossary apps/client/src/app/pages/resources/resources-page.html - 92 + 124 @@ -5577,7 +5577,7 @@ Test apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 320 + 322 @@ -6004,6 +6004,34 @@ 81 + + Do you really want to delete these profiles? + + apps/client/src/app/components/admin-market-data/admin-market-data.service.ts + 34 + + + + Delete Profiles + + apps/client/src/app/components/admin-market-data/admin-market-data.html + 181 + + + + Oops! Could not delete profiles. + + apps/client/src/app/components/admin-market-data/admin-market-data.service.ts + 45 + + + + Benchmarks + + apps/client/src/app/components/admin-market-data/admin-market-data.component.ts + 74 + + \ No newline at end of file diff --git a/apps/client/src/locales/messages.zh.xlf b/apps/client/src/locales/messages.zh.xlf index d850e64a7..056f6f40d 100644 --- a/apps/client/src/locales/messages.zh.xlf +++ b/apps/client/src/locales/messages.zh.xlf @@ -503,15 +503,15 @@ apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.html - 183 + 184 apps/client/src/app/pages/blog/2022/01/first-months-in-open-source/first-months-in-open-source-page.html - 183 + 184 apps/client/src/app/pages/blog/2022/07/ghostfolio-meets-internet-identity/ghostfolio-meets-internet-identity-page.html - 183 + 184 apps/client/src/app/pages/blog/2022/07/how-do-i-get-my-finances-in-order/how-do-i-get-my-finances-in-order-page.html @@ -519,7 +519,7 @@ apps/client/src/app/pages/blog/2022/08/500-stars-on-github/500-stars-on-github-page.html - 195 + 196 apps/client/src/app/pages/blog/2022/10/hacktoberfest-2022/hacktoberfest-2022-page.html @@ -543,7 +543,7 @@ apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.html - 252 + 253 apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.html @@ -707,7 +707,7 @@ apps/client/src/app/pages/features/features-page.html - 256 + 257 @@ -823,7 +823,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 150 + 152 apps/client/src/app/components/admin-tag/admin-tag.component.html @@ -891,11 +891,11 @@ apps/client/src/app/components/admin-market-data/admin-market-data.html - 38 + 60 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 226 + 228 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -951,11 +951,11 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 130 + 132 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 233 + 235 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -1043,7 +1043,7 @@ apps/client/src/app/components/admin-market-data/admin-market-data.html - 177 + 206 apps/client/src/app/components/admin-overview/admin-overview.html @@ -1071,11 +1071,11 @@ apps/client/src/app/components/admin-market-data/admin-market-data.html - 196 + 227 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 62 + 64 apps/client/src/app/components/admin-overview/admin-overview.html @@ -1135,11 +1135,11 @@ apps/client/src/app/components/admin-market-data/admin-market-data.html - 24 + 46 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 115 + 117 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -1159,11 +1159,11 @@ apps/client/src/app/components/admin-market-data/admin-market-data.html - 55 + 77 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 125 + 127 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -1283,7 +1283,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 376 + 378 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -1327,7 +1327,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 383 + 385 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -1359,7 +1359,7 @@ 货币 apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 73 + 79 @@ -1367,7 +1367,7 @@ 没有国家的 ETF apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 78 + 84 @@ -1375,7 +1375,7 @@ 无行业类别的 ETF apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 83 + 89 @@ -1383,7 +1383,7 @@ 您确实要删除此资产配置文件吗? apps/client/src/app/components/admin-market-data/admin-market-data.service.ts - 13 + 18 @@ -1391,7 +1391,7 @@ 过滤... apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 282 + 300 @@ -1399,15 +1399,15 @@ 资产类别 apps/client/src/app/components/admin-market-data/admin-market-data.html - 64 + 86 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 159 + 161 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 243 + 245 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1423,15 +1423,15 @@ 资产子类别 apps/client/src/app/components/admin-market-data/admin-market-data.html - 73 + 95 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 168 + 170 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 256 + 258 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1447,11 +1447,11 @@ 第一个活动 apps/client/src/app/components/admin-market-data/admin-market-data.html - 82 + 104 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 141 + 143 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1467,7 +1467,7 @@ 活动计数 apps/client/src/app/components/admin-market-data/admin-market-data.html - 91 + 113 @@ -1475,11 +1475,11 @@ 历史数据 apps/client/src/app/components/admin-market-data/admin-market-data.html - 100 + 122 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 82 + 84 @@ -1487,7 +1487,7 @@ 行业数 apps/client/src/app/components/admin-market-data/admin-market-data.html - 109 + 131 @@ -1495,7 +1495,7 @@ 国家数 apps/client/src/app/components/admin-market-data/admin-market-data.html - 118 + 140 @@ -1503,7 +1503,7 @@ 收集最近的数据 apps/client/src/app/components/admin-market-data/admin-market-data.html - 146 + 168 @@ -1511,7 +1511,7 @@ 收集所有数据 apps/client/src/app/components/admin-market-data/admin-market-data.html - 149 + 171 @@ -1519,7 +1519,7 @@ 收集个人资料数据 apps/client/src/app/components/admin-market-data/admin-market-data.html - 152 + 174 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html @@ -1555,7 +1555,7 @@ 导入 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 108 + 110 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html @@ -1571,7 +1571,7 @@ 行业 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 185 + 187 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1583,7 +1583,7 @@ 国家 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 196 + 198 apps/client/src/app/components/admin-users/admin-users.html @@ -1599,11 +1599,11 @@ 行业 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 202 + 204 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 327 + 329 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1619,11 +1619,11 @@ 国家 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 212 + 214 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 338 + 340 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html @@ -1635,7 +1635,7 @@ 基准 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 284 + 286 @@ -1643,7 +1643,7 @@ 符号映射 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 290 + 292 @@ -1651,7 +1651,7 @@ 刮削配置 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 302 + 304 @@ -1659,7 +1659,7 @@ 笔记 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 363 + 365 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -1891,7 +1891,7 @@ 网址 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 350 + 352 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -2783,7 +2783,7 @@ apps/client/src/app/pages/features/features-page.html - 160 + 161 apps/client/src/app/pages/pricing/pricing-page.html @@ -3147,7 +3147,7 @@ apps/client/src/app/pages/features/features-page.html - 190 + 191 @@ -3607,7 +3607,7 @@ 深色模式 apps/client/src/app/pages/features/features-page.html - 177 + 178 @@ -3615,7 +3615,7 @@ 市场情绪 apps/client/src/app/pages/features/features-page.html - 205 + 206 @@ -3623,7 +3623,7 @@ 静态分析 apps/client/src/app/pages/features/features-page.html - 224 + 225 @@ -3631,7 +3631,7 @@ 多语言 apps/client/src/app/pages/features/features-page.html - 241 + 242 @@ -3639,7 +3639,7 @@ 开源软件 apps/client/src/app/pages/features/features-page.html - 275 + 276 @@ -3647,7 +3647,7 @@ 立即开始 apps/client/src/app/pages/features/features-page.html - 300 + 301 apps/client/src/app/pages/public/public-page.html @@ -5371,7 +5371,7 @@ 词汇表 apps/client/src/app/pages/resources/resources-page.html - 92 + 124 @@ -6143,7 +6143,7 @@ 测试 apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 320 + 322 @@ -6626,6 +6626,38 @@ 81 + + Benchmarks + Benchmarks + + apps/client/src/app/components/admin-market-data/admin-market-data.component.ts + 74 + + + + Delete Profiles + Delete Profiles + + apps/client/src/app/components/admin-market-data/admin-market-data.html + 181 + + + + Do you really want to delete these profiles? + Do you really want to delete these profiles? + + apps/client/src/app/components/admin-market-data/admin-market-data.service.ts + 34 + + + + Oops! Could not delete profiles. + Oops! Could not delete profiles. + + apps/client/src/app/components/admin-market-data/admin-market-data.service.ts + 45 + + \ No newline at end of file From 423bd92b89d34c5efd263dc227356fb72cf4cba3 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Tue, 9 Jul 2024 18:44:53 +0200 Subject: [PATCH 04/14] Release 2.94.0 (#3556) --- CHANGELOG.md | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c322a4c6b..ee0ad2fca 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.94.0 - 2024-07-09 ### Changed diff --git a/package.json b/package.json index bad0621bd..fca0a9a0f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ghostfolio", - "version": "2.93.0", + "version": "2.94.0", "homepage": "https://ghostfol.io", "license": "AGPL-3.0", "repository": "https://github.com/ghostfolio/ghostfolio", From 890c5b986cf82245b13cd0594dc198a99075e918 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Wed, 10 Jul 2024 17:22:47 +0200 Subject: [PATCH 05/14] Feature/improve formatting of variables in README.md (#3546) --- README.md | 54 +++++++++++++++++++++++++++--------------------------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/README.md b/README.md index ef2021b27..42c8220fc 100644 --- a/README.md +++ b/README.md @@ -87,21 +87,21 @@ We provide official container images hosted on [Docker Hub](https://hub.docker.c | Name | Type | Default Value | Description | | ------------------------ | ------------------- | ------------- | ----------------------------------------------------------------------------------------------------------------------------------- | -| `ACCESS_TOKEN_SALT` | string | | A random string used as salt for access tokens | -| `API_KEY_COINGECKO_DEMO` | string (`optional`) |   | The _CoinGecko_ Demo API key | -| `API_KEY_COINGECKO_PRO` | string (`optional`) | | The _CoinGecko_ Pro API key | -| `DATABASE_URL` | string | | The database connection URL, e.g. `postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@localhost:5432/${POSTGRES_DB}?sslmode=prefer` | -| `HOST` | string (`optional`) | `0.0.0.0` | The host where the Ghostfolio application will run on | -| `JWT_SECRET_KEY` | string | | A random string used for _JSON Web Tokens_ (JWT) | -| `PORT` | number (`optional`) | `3333` | The port where the Ghostfolio application will run on | -| `POSTGRES_DB` | string | | The name of the _PostgreSQL_ database | -| `POSTGRES_PASSWORD` | string | | The password of the _PostgreSQL_ database | -| `POSTGRES_USER` | string | | The user of the _PostgreSQL_ database | -| `REDIS_DB` | number (`optional`) | `0` | The database index of _Redis_ | -| `REDIS_HOST` | string | | The host where _Redis_ is running | -| `REDIS_PASSWORD` | string | | The password of _Redis_ | -| `REDIS_PORT` | number | | The port where _Redis_ is running | -| `REQUEST_TIMEOUT` | number (`optional`) | `2000` | The timeout of network requests to data providers in milliseconds | +| `ACCESS_TOKEN_SALT` | `string` | | A random string used as salt for access tokens | +| `API_KEY_COINGECKO_DEMO` | `string` (optional) |   | The _CoinGecko_ Demo API key | +| `API_KEY_COINGECKO_PRO` | `string` (optional) | | The _CoinGecko_ Pro API key | +| `DATABASE_URL` | `string` | | The database connection URL, e.g. `postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@localhost:5432/${POSTGRES_DB}?sslmode=prefer` | +| `HOST` | `string` (optional) | `0.0.0.0` | The host where the Ghostfolio application will run on | +| `JWT_SECRET_KEY` | `string` | | A random string used for _JSON Web Tokens_ (JWT) | +| `PORT` | `number` (optional) | `3333` | The port where the Ghostfolio application will run on | +| `POSTGRES_DB` | `string` | | The name of the _PostgreSQL_ database | +| `POSTGRES_PASSWORD` | `string` | | The password of the _PostgreSQL_ database | +| `POSTGRES_USER` | `string` | | The user of the _PostgreSQL_ database | +| `REDIS_DB` | `number` (optional) | `0` | The database index of _Redis_ | +| `REDIS_HOST` | `string` | | The host where _Redis_ is running | +| `REDIS_PASSWORD` | `string` | | The password of _Redis_ | +| `REDIS_PORT` | `number` | | The port where _Redis_ is running | +| `REQUEST_TIMEOUT` | `number` (optional) | `2000` | The timeout of network requests to data providers in milliseconds | ### Run with Docker Compose @@ -233,18 +233,18 @@ Deprecated: `GET http://localhost:3333/api/v1/auth/anonymous/ Date: Fri, 12 Jul 2024 21:02:12 +0200 Subject: [PATCH 06/14] Feature/setup treemap chart for holdings (#3560) * Setup treemap chart * Update changelog --- CHANGELOG.md | 6 + .../home-holdings/home-holdings.component.ts | 31 +++- .../home-holdings/home-holdings.html | 78 +++++--- .../home-holdings/home-holdings.module.ts | 7 + .../src/lib/types/holding-view-mode.type.ts | 1 + libs/common/src/lib/types/index.ts | 2 + .../portfolio-proportion-chart.component.ts | 2 +- libs/ui/src/lib/treemap-chart/index.ts | 1 + .../treemap-chart.component.html | 13 ++ .../treemap-chart.component.scss | 4 + .../treemap-chart/treemap-chart.component.ts | 168 ++++++++++++++++++ package.json | 2 + yarn.lock | 10 ++ 13 files changed, 297 insertions(+), 28 deletions(-) create mode 100644 libs/common/src/lib/types/holding-view-mode.type.ts create mode 100644 libs/ui/src/lib/treemap-chart/index.ts create mode 100644 libs/ui/src/lib/treemap-chart/treemap-chart.component.html create mode 100644 libs/ui/src/lib/treemap-chart/treemap-chart.component.scss create mode 100644 libs/ui/src/lib/treemap-chart/treemap-chart.component.ts diff --git a/CHANGELOG.md b/CHANGELOG.md index ee0ad2fca..989c82104 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,12 @@ 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 + +### Added + +- Added a chart to the holdings tab of the home page (experimental) + ## 2.94.0 - 2024-07-09 ### Changed diff --git a/apps/client/src/app/components/home-holdings/home-holdings.component.ts b/apps/client/src/app/components/home-holdings/home-holdings.component.ts index 5141bf9fa..86fd0ce0c 100644 --- a/apps/client/src/app/components/home-holdings/home-holdings.component.ts +++ b/apps/client/src/app/components/home-holdings/home-holdings.component.ts @@ -1,11 +1,21 @@ import { DataService } from '@ghostfolio/client/services/data.service'; import { ImpersonationStorageService } from '@ghostfolio/client/services/impersonation-storage.service'; import { UserService } from '@ghostfolio/client/services/user/user.service'; -import { PortfolioPosition, User } from '@ghostfolio/common/interfaces'; +import { + PortfolioPosition, + UniqueAsset, + User +} from '@ghostfolio/common/interfaces'; import { hasPermission, permissions } from '@ghostfolio/common/permissions'; -import { HoldingType, ToggleOption } from '@ghostfolio/common/types'; +import { + HoldingType, + HoldingViewMode, + ToggleOption +} from '@ghostfolio/common/types'; import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core'; +import { FormControl } from '@angular/forms'; +import { Router } from '@angular/router'; import { DeviceDetectorService } from 'ngx-device-detector'; import { Subject } from 'rxjs'; import { takeUntil } from 'rxjs/operators'; @@ -26,6 +36,7 @@ export class HomeHoldingsComponent implements OnDestroy, OnInit { { label: $localize`Closed`, value: 'CLOSED' } ]; public user: User; + public viewModeFormControl = new FormControl('TABLE'); private unsubscribeSubject = new Subject(); @@ -34,6 +45,7 @@ export class HomeHoldingsComponent implements OnDestroy, OnInit { private dataService: DataService, private deviceService: DeviceDetectorService, private impersonationStorageService: ImpersonationStorageService, + private router: Router, private userService: UserService ) {} @@ -76,6 +88,13 @@ export class HomeHoldingsComponent implements OnDestroy, OnInit { public onChangeHoldingType(aHoldingType: HoldingType) { this.holdingType = aHoldingType; + if (this.holdingType === 'ACTIVE') { + this.viewModeFormControl.enable(); + } else if (this.holdingType === 'CLOSED') { + this.viewModeFormControl.disable(); + this.viewModeFormControl.setValue('TABLE'); + } + this.holdings = undefined; this.fetchHoldings() @@ -87,6 +106,14 @@ export class HomeHoldingsComponent implements OnDestroy, OnInit { }); } + public onSymbolClicked({ dataSource, symbol }: UniqueAsset) { + if (dataSource && symbol) { + this.router.navigate([], { + queryParams: { dataSource, symbol, holdingDetailDialog: true } + }); + } + } + public ngOnDestroy() { this.unsubscribeSubject.next(); this.unsubscribeSubject.complete(); diff --git a/apps/client/src/app/components/home-holdings/home-holdings.html b/apps/client/src/app/components/home-holdings/home-holdings.html index a2bd43636..be053415f 100644 --- a/apps/client/src/app/components/home-holdings/home-holdings.html +++ b/apps/client/src/app/components/home-holdings/home-holdings.html @@ -6,32 +6,60 @@
-
- -
- - @if (hasPermissionToCreateOrder && holdings?.length > 0) { -
- Manage Activities +
+ @if (user?.settings?.isExperimentalFeatures) { +
+
+ + + + + + + + +
+
+ } +
+
+
+ @if (viewModeFormControl.value === 'CHART') { + + } @else if (viewModeFormControl.value === 'TABLE') { + + @if (hasPermissionToCreateOrder && holdings?.length > 0) { + + } }
diff --git a/apps/client/src/app/components/home-holdings/home-holdings.module.ts b/apps/client/src/app/components/home-holdings/home-holdings.module.ts index f10adeab2..df951c1a8 100644 --- a/apps/client/src/app/components/home-holdings/home-holdings.module.ts +++ b/apps/client/src/app/components/home-holdings/home-holdings.module.ts @@ -1,9 +1,12 @@ import { GfToggleModule } from '@ghostfolio/client/components/toggle/toggle.module'; import { GfHoldingsTableComponent } from '@ghostfolio/ui/holdings-table'; +import { GfTreemapChartComponent } from '@ghostfolio/ui/treemap-chart'; import { CommonModule } from '@angular/common'; import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; import { MatButtonModule } from '@angular/material/button'; +import { MatButtonToggleModule } from '@angular/material/button-toggle'; import { RouterModule } from '@angular/router'; import { HomeHoldingsComponent } from './home-holdings.component'; @@ -12,9 +15,13 @@ import { HomeHoldingsComponent } from './home-holdings.component'; declarations: [HomeHoldingsComponent], imports: [ CommonModule, + FormsModule, GfHoldingsTableComponent, GfToggleModule, + GfTreemapChartComponent, MatButtonModule, + MatButtonToggleModule, + ReactiveFormsModule, RouterModule ], schemas: [CUSTOM_ELEMENTS_SCHEMA] diff --git a/libs/common/src/lib/types/holding-view-mode.type.ts b/libs/common/src/lib/types/holding-view-mode.type.ts new file mode 100644 index 000000000..50a4e2b29 --- /dev/null +++ b/libs/common/src/lib/types/holding-view-mode.type.ts @@ -0,0 +1 @@ +export type HoldingViewMode = 'CHART' | 'TABLE'; diff --git a/libs/common/src/lib/types/index.ts b/libs/common/src/lib/types/index.ts index fc4ddc4bf..65fdfe5f0 100644 --- a/libs/common/src/lib/types/index.ts +++ b/libs/common/src/lib/types/index.ts @@ -8,6 +8,7 @@ import type { DateRange } from './date-range.type'; import type { Granularity } from './granularity.type'; import type { GroupBy } from './group-by.type'; import type { HoldingType } from './holding-type.type'; +import type { HoldingViewMode } from './holding-view-mode.type'; import type { MarketAdvanced } from './market-advanced.type'; import type { MarketDataPreset } from './market-data-preset.type'; import type { MarketState } from './market-state.type'; @@ -30,6 +31,7 @@ export type { Granularity, GroupBy, HoldingType, + HoldingViewMode, Market, MarketAdvanced, MarketDataPreset, diff --git a/libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts b/libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts index aa0a6cacd..c60ed3443 100644 --- a/libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts +++ b/libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts @@ -354,7 +354,7 @@ export class GfPortfolioProportionChartComponent * Color palette, inspired by https://yeun.github.io/open-color */ private getColorPalette() { - // + // TODO: Reuse require('open-color') return [ '#329af0', // blue 5 '#20c997', // teal 5 diff --git a/libs/ui/src/lib/treemap-chart/index.ts b/libs/ui/src/lib/treemap-chart/index.ts new file mode 100644 index 000000000..62f54ac11 --- /dev/null +++ b/libs/ui/src/lib/treemap-chart/index.ts @@ -0,0 +1 @@ +export * from './treemap-chart.component'; diff --git a/libs/ui/src/lib/treemap-chart/treemap-chart.component.html b/libs/ui/src/lib/treemap-chart/treemap-chart.component.html new file mode 100644 index 000000000..c7de5ef4d --- /dev/null +++ b/libs/ui/src/lib/treemap-chart/treemap-chart.component.html @@ -0,0 +1,13 @@ +@if (isLoading) { + +} + diff --git a/libs/ui/src/lib/treemap-chart/treemap-chart.component.scss b/libs/ui/src/lib/treemap-chart/treemap-chart.component.scss new file mode 100644 index 000000000..d041372c8 --- /dev/null +++ b/libs/ui/src/lib/treemap-chart/treemap-chart.component.scss @@ -0,0 +1,4 @@ +:host { + aspect-ratio: 16 / 9; + display: block; +} diff --git a/libs/ui/src/lib/treemap-chart/treemap-chart.component.ts b/libs/ui/src/lib/treemap-chart/treemap-chart.component.ts new file mode 100644 index 000000000..557bdc2ae --- /dev/null +++ b/libs/ui/src/lib/treemap-chart/treemap-chart.component.ts @@ -0,0 +1,168 @@ +import { getLocale } from '@ghostfolio/common/helper'; +import { PortfolioPosition, UniqueAsset } from '@ghostfolio/common/interfaces'; + +import { CommonModule } from '@angular/common'; +import { + AfterViewInit, + ChangeDetectionStrategy, + Component, + ElementRef, + EventEmitter, + Input, + OnChanges, + OnDestroy, + Output, + ViewChild +} from '@angular/core'; +import { DataSource } from '@prisma/client'; +import { ChartConfiguration } from 'chart.js'; +import { LinearScale } from 'chart.js'; +import { Chart } from 'chart.js'; +import { TreemapController, TreemapElement } from 'chartjs-chart-treemap'; +import { orderBy } from 'lodash'; +import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader'; + +const { gray, green, red } = require('open-color'); + +@Component({ + changeDetection: ChangeDetectionStrategy.OnPush, + imports: [CommonModule, NgxSkeletonLoaderModule], + selector: 'gf-treemap-chart', + standalone: true, + styleUrls: ['./treemap-chart.component.scss'], + templateUrl: './treemap-chart.component.html' +}) +export class GfTreemapChartComponent + implements AfterViewInit, OnChanges, OnDestroy +{ + @Input() cursor: string; + @Input() holdings: PortfolioPosition[]; + + @Output() treemapChartClicked = new EventEmitter(); + + @ViewChild('chartCanvas') chartCanvas: ElementRef; + + public chart: Chart<'treemap'>; + public isLoading = true; + + public constructor() { + Chart.register(LinearScale, TreemapController, TreemapElement); + } + + public ngAfterViewInit() { + if (this.holdings) { + this.initialize(); + } + } + + public ngOnChanges() { + if (this.holdings) { + this.initialize(); + } + } + + public ngOnDestroy() { + this.chart?.destroy(); + } + + private initialize() { + this.isLoading = true; + + const data: ChartConfiguration['data'] = { + datasets: [ + { + backgroundColor(ctx) { + const netPerformancePercentWithCurrencyEffect = + ctx.raw._data.netPerformancePercentWithCurrencyEffect; + + if (netPerformancePercentWithCurrencyEffect > 0.03) { + return green[9]; + } else if (netPerformancePercentWithCurrencyEffect > 0.02) { + return green[7]; + } else if (netPerformancePercentWithCurrencyEffect > 0.01) { + return green[5]; + } else if (netPerformancePercentWithCurrencyEffect > 0) { + return green[3]; + } else if (netPerformancePercentWithCurrencyEffect === 0) { + return gray[3]; + } else if (netPerformancePercentWithCurrencyEffect > -0.01) { + return red[3]; + } else if (netPerformancePercentWithCurrencyEffect > -0.02) { + return red[5]; + } else if (netPerformancePercentWithCurrencyEffect > -0.03) { + return red[7]; + } else { + return red[9]; + } + }, + key: 'allocationInPercentage', + labels: { + align: 'left', + color: ['white'], + display: true, + font: [{ size: 14 }, { size: 11 }, { lineHeight: 2, size: 14 }], + formatter(ctx) { + const netPerformancePercentWithCurrencyEffect = + ctx.raw._data.netPerformancePercentWithCurrencyEffect; + + return [ + ctx.raw._data.name, + ctx.raw._data.symbol, + `${netPerformancePercentWithCurrencyEffect > 0 ? '+' : ''}${(ctx.raw._data.netPerformancePercentWithCurrencyEffect * 100).toFixed(2)}%` + ]; + }, + position: 'top' + }, + spacing: 1, + tree: this.holdings + } + ] + }; + + if (this.chartCanvas) { + if (this.chart) { + this.chart.data = data; + this.chart.update(); + } else { + this.chart = new Chart(this.chartCanvas.nativeElement, { + data, + options: { + animation: false, + onClick: (event, activeElements) => { + try { + const dataIndex = activeElements[0].index; + const datasetIndex = activeElements[0].datasetIndex; + + const dataset = orderBy( + event.chart.data.datasets[datasetIndex].tree, + ['allocationInPercentage'], + ['desc'] + ); + + const dataSource: DataSource = dataset[dataIndex].dataSource; + const symbol: string = dataset[dataIndex].symbol; + + this.treemapChartClicked.emit({ dataSource, symbol }); + } catch {} + }, + onHover: (event, chartElement) => { + if (this.cursor) { + event.native.target.style.cursor = chartElement[0] + ? this.cursor + : 'default'; + } + }, + plugins: { + tooltip: { + enabled: false + } + } + }, + type: 'treemap' + }); + } + } + + this.isLoading = false; + } +} diff --git a/package.json b/package.json index fca0a9a0f..49b43b303 100644 --- a/package.json +++ b/package.json @@ -97,6 +97,7 @@ "cache-manager-redis-store": "2.0.0", "chart.js": "4.2.0", "chartjs-adapter-date-fns": "3.0.0", + "chartjs-chart-treemap": "2.3.1", "chartjs-plugin-annotation": "2.1.2", "chartjs-plugin-datalabels": "2.2.0", "cheerio": "1.0.0-rc.12", @@ -122,6 +123,7 @@ "ngx-markdown": "18.0.0", "ngx-skeleton-loader": "7.0.0", "ngx-stripe": "18.0.0", + "open-color": "1.9.1", "papaparse": "5.3.1", "passport": "0.7.0", "passport-google-oauth20": "2.0.0", diff --git a/yarn.lock b/yarn.lock index 8d6caaef2..e807877b5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10071,6 +10071,11 @@ chartjs-adapter-date-fns@3.0.0: resolved "https://registry.yarnpkg.com/chartjs-adapter-date-fns/-/chartjs-adapter-date-fns-3.0.0.tgz#c25f63c7f317c1f96f9a7c44bd45eeedb8a478e5" integrity sha512-Rs3iEB3Q5pJ973J93OBTpnP7qoGwvq3nUnoMdtxO+9aoJof7UFcRbWcIDteXuYd1fgAvct/32T9qaLyLuZVwCg== +chartjs-chart-treemap@2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/chartjs-chart-treemap/-/chartjs-chart-treemap-2.3.1.tgz#b0d27309ee373cb7706cabb262c48c53ffacf710" + integrity sha512-GW+iODLICIJhNZtHbTtaOjCwRIxmXcquXRKDFMsrkXyqyDeSN1aiVfzNNj6Xjy55soopqRA+YfHqjT2S2zF7lQ== + chartjs-plugin-annotation@2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/chartjs-plugin-annotation/-/chartjs-plugin-annotation-2.1.2.tgz#8c307c931fda735a1acf1b606ad0e3fd7d96299b" @@ -16757,6 +16762,11 @@ onetime@^5.1.0, onetime@^5.1.2: dependencies: mimic-fn "^2.1.0" +open-color@1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/open-color/-/open-color-1.9.1.tgz#a6e6328f60eff7aa60e3e8fcfa50f53ff3eece35" + integrity sha512-vCseG/EQ6/RcvxhUcGJiHViOgrtz4x0XbZepXvKik66TMGkvbmjeJrKFyBEx6daG5rNyyd14zYXhz0hZVwQFOw== + open@8.4.2, open@^8.0.4, open@^8.0.9, open@^8.4.0: version "8.4.2" resolved "https://registry.yarnpkg.com/open/-/open-8.4.2.tgz#5b5ffe2a8f793dcd2aad73e550cb87b59cb084f9" From 96434c5a54631777b9af601f68d68b670db48454 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Fri, 12 Jul 2024 21:04:38 +0200 Subject: [PATCH 07/14] Release 2.95.0 (#3561) --- CHANGELOG.md | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 989c82104..df89cb128 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.95.0 - 2024-07-12 ### Added diff --git a/package.json b/package.json index 49b43b303..8103533fc 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ghostfolio", - "version": "2.94.0", + "version": "2.95.0", "homepage": "https://ghostfol.io", "license": "AGPL-3.0", "repository": "https://github.com/ghostfolio/ghostfolio", From 9ecc3176a5615184c97e4b2d46861b8f52fa99d6 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sat, 13 Jul 2024 10:45:10 +0200 Subject: [PATCH 08/14] Feature/improve treemap chart for holdings (#3563) * Various improvements * Introduce permission: accessHoldingsChart * Improve style of toggle * Add border radius * Update changelog --- CHANGELOG.md | 6 ++ apps/api/src/app/user/user.service.ts | 1 + .../home-holdings/home-holdings.component.ts | 56 ++++++++++--------- .../home-holdings/home-holdings.html | 4 +- .../home-holdings/home-holdings.scss | 6 ++ libs/common/src/lib/permissions.ts | 9 ++- .../treemap-chart/treemap-chart.component.ts | 2 +- 7 files changed, 55 insertions(+), 29 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index df89cb128..9557701c7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,12 @@ 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 + +### Changed + +- Improved the chart of the holdings tab on the home page (experimental) + ## 2.95.0 - 2024-07-12 ### Added diff --git a/apps/api/src/app/user/user.service.ts b/apps/api/src/app/user/user.service.ts index ce0ec5524..02a65b6a0 100644 --- a/apps/api/src/app/user/user.service.ts +++ b/apps/api/src/app/user/user.service.ts @@ -237,6 +237,7 @@ export class UserService { currentPermissions = without( currentPermissions, + permissions.accessHoldingsChart, permissions.createAccess ); diff --git a/apps/client/src/app/components/home-holdings/home-holdings.component.ts b/apps/client/src/app/components/home-holdings/home-holdings.component.ts index 86fd0ce0c..3b99adb06 100644 --- a/apps/client/src/app/components/home-holdings/home-holdings.component.ts +++ b/apps/client/src/app/components/home-holdings/home-holdings.component.ts @@ -28,6 +28,7 @@ import { takeUntil } from 'rxjs/operators'; export class HomeHoldingsComponent implements OnDestroy, OnInit { public deviceType: string; public hasImpersonationId: boolean; + public hasPermissionToAccessHoldingsChart: boolean; public hasPermissionToCreateOrder: boolean; public holdings: PortfolioPosition[]; public holdingType: HoldingType = 'ACTIVE'; @@ -65,20 +66,17 @@ export class HomeHoldingsComponent implements OnDestroy, OnInit { if (state?.user) { this.user = state.user; + this.hasPermissionToAccessHoldingsChart = hasPermission( + this.user.permissions, + permissions.accessHoldingsChart + ); + this.hasPermissionToCreateOrder = hasPermission( this.user.permissions, permissions.createOrder ); - this.holdings = undefined; - - this.fetchHoldings() - .pipe(takeUntil(this.unsubscribeSubject)) - .subscribe(({ holdings }) => { - this.holdings = holdings; - - this.changeDetectorRef.markForCheck(); - }); + this.initialize(); this.changeDetectorRef.markForCheck(); } @@ -88,22 +86,7 @@ export class HomeHoldingsComponent implements OnDestroy, OnInit { public onChangeHoldingType(aHoldingType: HoldingType) { this.holdingType = aHoldingType; - if (this.holdingType === 'ACTIVE') { - this.viewModeFormControl.enable(); - } else if (this.holdingType === 'CLOSED') { - this.viewModeFormControl.disable(); - this.viewModeFormControl.setValue('TABLE'); - } - - this.holdings = undefined; - - this.fetchHoldings() - .pipe(takeUntil(this.unsubscribeSubject)) - .subscribe(({ holdings }) => { - this.holdings = holdings; - - this.changeDetectorRef.markForCheck(); - }); + this.initialize(); } public onSymbolClicked({ dataSource, symbol }: UniqueAsset) { @@ -131,4 +114,27 @@ export class HomeHoldingsComponent implements OnDestroy, OnInit { range: this.user?.settings?.dateRange }); } + + private initialize() { + this.viewModeFormControl.disable(); + + if ( + this.hasPermissionToAccessHoldingsChart && + this.holdingType === 'ACTIVE' + ) { + this.viewModeFormControl.enable(); + } else if (this.holdingType === 'CLOSED') { + this.viewModeFormControl.setValue('TABLE'); + } + + this.holdings = undefined; + + this.fetchHoldings() + .pipe(takeUntil(this.unsubscribeSubject)) + .subscribe(({ holdings }) => { + this.holdings = holdings; + + this.changeDetectorRef.markForCheck(); + }); + } } diff --git a/apps/client/src/app/components/home-holdings/home-holdings.html b/apps/client/src/app/components/home-holdings/home-holdings.html index be053415f..a2ea30a69 100644 --- a/apps/client/src/app/components/home-holdings/home-holdings.html +++ b/apps/client/src/app/components/home-holdings/home-holdings.html @@ -14,10 +14,10 @@ [formControl]="viewModeFormControl" [hideSingleSelectionIndicator]="true" > - + - + diff --git a/apps/client/src/app/components/home-holdings/home-holdings.scss b/apps/client/src/app/components/home-holdings/home-holdings.scss index 5d4e87f30..d6d129a39 100644 --- a/apps/client/src/app/components/home-holdings/home-holdings.scss +++ b/apps/client/src/app/components/home-holdings/home-holdings.scss @@ -1,3 +1,9 @@ :host { display: block; + + .mat-button-toggle-group { + .mat-button-toggle-appearance-standard { + --mat-standard-button-toggle-height: 1.5rem; + } + } } diff --git a/libs/common/src/lib/permissions.ts b/libs/common/src/lib/permissions.ts index 304c8ba24..1a235f1a9 100644 --- a/libs/common/src/lib/permissions.ts +++ b/libs/common/src/lib/permissions.ts @@ -5,6 +5,7 @@ import { Role } from '@prisma/client'; export const permissions = { accessAdminControl: 'accessAdminControl', accessAssistant: 'accessAssistant', + accessHoldingsChart: 'accessHoldingsChart', createAccess: 'createAccess', createAccount: 'createAccount', createAccountBalance: 'createAccountBalance', @@ -47,6 +48,7 @@ export function getPermissions(aRole: Role): string[] { return [ permissions.accessAdminControl, permissions.accessAssistant, + permissions.accessHoldingsChart, permissions.createAccess, permissions.createAccount, permissions.createAccountBalance, @@ -72,11 +74,16 @@ export function getPermissions(aRole: Role): string[] { ]; case 'DEMO': - return [permissions.accessAssistant, permissions.createUserAccount]; + return [ + permissions.accessAssistant, + permissions.accessHoldingsChart, + permissions.createUserAccount + ]; case 'USER': return [ permissions.accessAssistant, + permissions.accessHoldingsChart, permissions.createAccess, permissions.createAccount, permissions.createAccountBalance, diff --git a/libs/ui/src/lib/treemap-chart/treemap-chart.component.ts b/libs/ui/src/lib/treemap-chart/treemap-chart.component.ts index 557bdc2ae..9ee6a7aeb 100644 --- a/libs/ui/src/lib/treemap-chart/treemap-chart.component.ts +++ b/libs/ui/src/lib/treemap-chart/treemap-chart.component.ts @@ -1,4 +1,3 @@ -import { getLocale } from '@ghostfolio/common/helper'; import { PortfolioPosition, UniqueAsset } from '@ghostfolio/common/interfaces'; import { CommonModule } from '@angular/common'; @@ -95,6 +94,7 @@ export class GfTreemapChartComponent return red[9]; } }, + borderRadius: 4, key: 'allocationInPercentage', labels: { align: 'left', From 6eb9d9d973066b901df8303d1896bde21eaf2390 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sat, 13 Jul 2024 11:40:29 +0200 Subject: [PATCH 09/14] Feature/extend personal finance tools 20240713 (#3565) --- libs/common/src/lib/personal-finance-tools.ts | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/libs/common/src/lib/personal-finance-tools.ts b/libs/common/src/lib/personal-finance-tools.ts index 8a20ca15c..af7879581 100644 --- a/libs/common/src/lib/personal-finance-tools.ts +++ b/libs/common/src/lib/personal-finance-tools.ts @@ -351,6 +351,18 @@ export const personalFinanceTools: Product[] = [ origin: `Italy`, slogan: 'Your Personal Finance Hub' }, + { + founded: 2008, + hasFreePlan: true, + hasSelfHostingAbility: false, + key: 'pocketsmith', + languages: ['English'], + name: 'PocketSmith', + origin: `New Zealand`, + pricingPerYear: '$120', + region: `Global`, + slogan: 'Know where your money is going' + }, { hasFreePlan: false, hasSelfHostingAbility: false, From 0640b24290b10c06d80bd53ccd811de495779332 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sat, 13 Jul 2024 11:40:45 +0200 Subject: [PATCH 10/14] Feature/improve site.webmanifest (#3564) * Separate icon purposes * Update changelog --- CHANGELOG.md | 1 + apps/client/src/assets/site.webmanifest | 12 +++++++++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9557701c7..d3694f580 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 ### Changed - Improved the chart of the holdings tab on the home page (experimental) +- Separated the icon purposes in the `site.webmanifest` ## 2.95.0 - 2024-07-12 diff --git a/apps/client/src/assets/site.webmanifest b/apps/client/src/assets/site.webmanifest index 3dc452fe9..8f1eceefb 100644 --- a/apps/client/src/assets/site.webmanifest +++ b/apps/client/src/assets/site.webmanifest @@ -7,10 +7,16 @@ { "sizes": "192x192", "src": "/assets/android-chrome-192x192.png", - "type": "image/png", - "purpose": "any maskable" + "type": "image/png" + }, + { + "purpose": "any", + "sizes": "512x512", + "src": "/assets/android-chrome-512x512.png", + "type": "image/png" }, { + "purpose": "maskable", "sizes": "512x512", "src": "/assets/android-chrome-512x512.png", "type": "image/png" @@ -21,5 +27,5 @@ "short_name": "Ghostfolio", "start_url": "/en/", "theme_color": "#FFFFFF", - "url": "https://www.ghostfol.io" + "url": "https://ghostfol.io" } From 9d6214e93ac40cd537f16ebdba01efc1a4d7abd9 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sat, 13 Jul 2024 18:24:03 +0200 Subject: [PATCH 11/14] Bugfix/fix fees calculation in portfolio summary (#3567) * Fix fees calculation * Update changelog --- CHANGELOG.md | 4 ++++ .../app/portfolio/calculator/portfolio-calculator.ts | 11 +++++++++-- ...ulator-baln-buy-and-sell-in-two-activities.spec.ts | 1 + .../portfolio-calculator-baln-buy-and-sell.spec.ts | 1 + .../twr/portfolio-calculator-baln-buy.spec.ts | 1 + ...o-calculator-btcusd-buy-and-sell-partially.spec.ts | 1 + .../calculator/twr/portfolio-calculator-fee.spec.ts | 1 + .../twr/portfolio-calculator-googl-buy.spec.ts | 3 ++- .../calculator/twr/portfolio-calculator-item.spec.ts | 1 + ...lio-calculator-novn-buy-and-sell-partially.spec.ts | 1 + .../portfolio-calculator-novn-buy-and-sell.spec.ts | 1 + .../portfolio/calculator/twr/portfolio-calculator.ts | 4 ++-- libs/common/src/lib/models/timeline-position.ts | 4 ++++ 13 files changed, 29 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d3694f580..1f7dfd026 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Improved the chart of the holdings tab on the home page (experimental) - Separated the icon purposes in the `site.webmanifest` +### Fixed + +- Fixed an issue in the portfolio summary with the currency conversion of fees + ## 2.95.0 - 2024-07-12 ### Added diff --git a/apps/api/src/app/portfolio/calculator/portfolio-calculator.ts b/apps/api/src/app/portfolio/calculator/portfolio-calculator.ts index e021eb2d4..ec56a247c 100644 --- a/apps/api/src/app/portfolio/calculator/portfolio-calculator.ts +++ b/apps/api/src/app/portfolio/calculator/portfolio-calculator.ts @@ -300,6 +300,12 @@ export abstract class PortfolioCalculator { const errors: ResponseError['errors'] = []; for (const item of lastTransactionPoint.items) { + const feeInBaseCurrency = item.fee.mul( + exchangeRatesByCurrency[`${item.currency}${this.currency}`]?.[ + lastTransactionPoint.date + ] + ); + const marketPriceInBaseCurrency = ( marketSymbolMap[endDateString]?.[item.symbol] ?? item.averagePrice ).mul( @@ -340,10 +346,11 @@ export abstract class PortfolioCalculator { hasAnySymbolMetricsErrors = hasAnySymbolMetricsErrors || hasErrors; positions.push({ - dividend: totalDividend, - dividendInBaseCurrency: totalDividendInBaseCurrency, + feeInBaseCurrency, timeWeightedInvestment, timeWeightedInvestmentWithCurrencyEffect, + dividend: totalDividend, + dividendInBaseCurrency: totalDividendInBaseCurrency, averagePrice: item.averagePrice, currency: item.currency, dataSource: item.dataSource, diff --git a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-baln-buy-and-sell-in-two-activities.spec.ts b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-baln-buy-and-sell-in-two-activities.spec.ts index 340f16b87..3eb166d2e 100644 --- a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-baln-buy-and-sell-in-two-activities.spec.ts +++ b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-baln-buy-and-sell-in-two-activities.spec.ts @@ -168,6 +168,7 @@ describe('PortfolioCalculator', () => { dividend: new Big('0'), dividendInBaseCurrency: new Big('0'), fee: new Big('3.2'), + feeInBaseCurrency: new Big('3.2'), firstBuyDate: '2021-11-22', grossPerformance: new Big('-12.6'), grossPerformancePercentage: new Big('-0.04408677396780965649'), diff --git a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-baln-buy-and-sell.spec.ts b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-baln-buy-and-sell.spec.ts index 53ebdf19f..a3adde84b 100644 --- a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-baln-buy-and-sell.spec.ts +++ b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-baln-buy-and-sell.spec.ts @@ -153,6 +153,7 @@ describe('PortfolioCalculator', () => { dividend: new Big('0'), dividendInBaseCurrency: new Big('0'), fee: new Big('3.2'), + feeInBaseCurrency: new Big('3.2'), firstBuyDate: '2021-11-22', grossPerformance: new Big('-12.6'), grossPerformancePercentage: new Big('-0.0440867739678096571'), diff --git a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-baln-buy.spec.ts b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-baln-buy.spec.ts index bab265887..6221e6240 100644 --- a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-baln-buy.spec.ts +++ b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-baln-buy.spec.ts @@ -138,6 +138,7 @@ describe('PortfolioCalculator', () => { dividend: new Big('0'), dividendInBaseCurrency: new Big('0'), fee: new Big('1.55'), + feeInBaseCurrency: new Big('1.55'), firstBuyDate: '2021-11-30', grossPerformance: new Big('24.6'), grossPerformancePercentage: new Big('0.09004392386530014641'), diff --git a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-btcusd-buy-and-sell-partially.spec.ts b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-btcusd-buy-and-sell-partially.spec.ts index eba5d4674..85d39220a 100644 --- a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-btcusd-buy-and-sell-partially.spec.ts +++ b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-btcusd-buy-and-sell-partially.spec.ts @@ -166,6 +166,7 @@ describe('PortfolioCalculator', () => { dividend: new Big('0'), dividendInBaseCurrency: new Big('0'), fee: new Big('0'), + feeInBaseCurrency: new Big('0'), firstBuyDate: '2015-01-01', grossPerformance: new Big('27172.74'), grossPerformancePercentage: new Big('42.41978276196153750666'), diff --git a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-fee.spec.ts b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-fee.spec.ts index 88d7adb71..7e9bbc26d 100644 --- a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-fee.spec.ts +++ b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-fee.spec.ts @@ -123,6 +123,7 @@ describe('PortfolioCalculator', () => { dividend: new Big('0'), dividendInBaseCurrency: new Big('0'), fee: new Big('49'), + feeInBaseCurrency: new Big('49'), firstBuyDate: '2021-09-01', grossPerformance: null, grossPerformancePercentage: null, diff --git a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-googl-buy.spec.ts b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-googl-buy.spec.ts index 690f1eb51..31182c8cb 100644 --- a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-googl-buy.spec.ts +++ b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-googl-buy.spec.ts @@ -151,6 +151,7 @@ describe('PortfolioCalculator', () => { dividend: new Big('0'), dividendInBaseCurrency: new Big('0'), fee: new Big('1'), + feeInBaseCurrency: new Big('0.9238'), firstBuyDate: '2023-01-03', grossPerformance: new Big('27.33'), grossPerformancePercentage: new Big('0.3066651705565529623'), @@ -177,7 +178,7 @@ describe('PortfolioCalculator', () => { valueInBaseCurrency: new Big('103.10483') } ], - totalFeesWithCurrencyEffect: new Big('1'), + totalFeesWithCurrencyEffect: new Big('0.9238'), totalInterestWithCurrencyEffect: new Big('0'), totalInvestment: new Big('89.12'), totalInvestmentWithCurrencyEffect: new Big('82.329056'), diff --git a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-item.spec.ts b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-item.spec.ts index 422d119b2..985dc5feb 100644 --- a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-item.spec.ts +++ b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-item.spec.ts @@ -123,6 +123,7 @@ describe('PortfolioCalculator', () => { dividend: new Big('0'), dividendInBaseCurrency: new Big('0'), fee: new Big('0'), + feeInBaseCurrency: new Big('0'), firstBuyDate: '2022-01-01', grossPerformance: null, grossPerformancePercentage: null, diff --git a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-novn-buy-and-sell-partially.spec.ts b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-novn-buy-and-sell-partially.spec.ts index f65d2ba61..72cb16a5f 100644 --- a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-novn-buy-and-sell-partially.spec.ts +++ b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-novn-buy-and-sell-partially.spec.ts @@ -153,6 +153,7 @@ describe('PortfolioCalculator', () => { dividend: new Big('0'), dividendInBaseCurrency: new Big('0'), fee: new Big('4.25'), + feeInBaseCurrency: new Big('4.25'), firstBuyDate: '2022-03-07', grossPerformance: new Big('21.93'), grossPerformancePercentage: new Big('0.15113417083448194384'), diff --git a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-novn-buy-and-sell.spec.ts b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-novn-buy-and-sell.spec.ts index 902f710ee..59cc13f0e 100644 --- a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-novn-buy-and-sell.spec.ts +++ b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-novn-buy-and-sell.spec.ts @@ -183,6 +183,7 @@ describe('PortfolioCalculator', () => { dividend: new Big('0'), dividendInBaseCurrency: new Big('0'), fee: new Big('0'), + feeInBaseCurrency: new Big('0'), firstBuyDate: '2022-03-07', grossPerformance: new Big('19.86'), grossPerformancePercentage: new Big('0.13100263852242744063'), diff --git a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator.ts b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator.ts index f8b62a940..e9f1f3fda 100644 --- a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator.ts +++ b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator.ts @@ -34,9 +34,9 @@ export class TWRPortfolioCalculator extends PortfolioCalculator { let totalTimeWeightedInvestmentWithCurrencyEffect = new Big(0); for (const currentPosition of positions) { - if (currentPosition.fee) { + if (currentPosition.feeInBaseCurrency) { totalFeesWithCurrencyEffect = totalFeesWithCurrencyEffect.plus( - currentPosition.fee + currentPosition.feeInBaseCurrency ); } diff --git a/libs/common/src/lib/models/timeline-position.ts b/libs/common/src/lib/models/timeline-position.ts index 412449590..545891464 100644 --- a/libs/common/src/lib/models/timeline-position.ts +++ b/libs/common/src/lib/models/timeline-position.ts @@ -24,6 +24,10 @@ export class TimelinePosition { @Type(() => Big) fee: Big; + @Transform(transformToBig, { toClassOnly: true }) + @Type(() => Big) + feeInBaseCurrency: Big; + firstBuyDate: string; @Transform(transformToBig, { toClassOnly: true }) From 89be438e669bc725670283fdc4085c9f35c4f78e Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sat, 13 Jul 2024 19:02:47 +0200 Subject: [PATCH 12/14] Bugfix/remove show condition of experimental features setting (#3568) * Remove show condition of experimental feature setting * Update changelog --- CHANGELOG.md | 1 + .../user-account-settings.html | 32 +++++++++---------- 2 files changed, 16 insertions(+), 17 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1f7dfd026..d4650e927 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed - Fixed an issue in the portfolio summary with the currency conversion of fees +- Removed the show condition of the experimental features setting in the user settings ## 2.95.0 - 2024-07-12 diff --git a/apps/client/src/app/components/user-account-settings/user-account-settings.html b/apps/client/src/app/components/user-account-settings/user-account-settings.html index c369f81bd..66eb37f61 100644 --- a/apps/client/src/app/components/user-account-settings/user-account-settings.html +++ b/apps/client/src/app/components/user-account-settings/user-account-settings.html @@ -196,25 +196,23 @@ />
- @if (hasPermissionToUpdateUserSettings) { -
-
-
Experimental Features
-
- Sneak peek at upcoming functionality -
-
-
- +
+
+
Experimental Features
+
+ Sneak peek at upcoming functionality
- } +
+ +
+
Ghostfolio User ID From 6c1317f978170fadb747080b6c332c0c6c1826ce Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sat, 13 Jul 2024 20:11:40 +0200 Subject: [PATCH 13/14] Bugfix/fix search for holding in assistant (#3569) * Fix search for holding * Update changelog --- CHANGELOG.md | 1 + apps/api/src/app/account/account.service.ts | 4 +-- apps/api/src/app/order/order.service.ts | 32 +++++++++++++++++++-- 3 files changed, 33 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d4650e927..193fe9d12 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed - Fixed an issue in the portfolio summary with the currency conversion of fees +- Fixed an issue in the the search for a holding - Removed the show condition of the experimental features setting in the user settings ## 2.95.0 - 2024-07-12 diff --git a/apps/api/src/app/account/account.service.ts b/apps/api/src/app/account/account.service.ts index 1564fa5b3..37876dde0 100644 --- a/apps/api/src/app/account/account.service.ts +++ b/apps/api/src/app/account/account.service.ts @@ -174,8 +174,8 @@ export class AccountService { ACCOUNT: filtersByAccount, ASSET_CLASS: filtersByAssetClass, TAG: filtersByTag - } = groupBy(filters, (filter) => { - return filter.type; + } = groupBy(filters, ({ type }) => { + return type; }); if (filtersByAccount?.length > 0) { diff --git a/apps/api/src/app/order/order.service.ts b/apps/api/src/app/order/order.service.ts index 0255a5011..b743eb2b7 100644 --- a/apps/api/src/app/order/order.service.ts +++ b/apps/api/src/app/order/order.service.ts @@ -312,10 +312,14 @@ export class OrderService { ACCOUNT: filtersByAccount, ASSET_CLASS: filtersByAssetClass, TAG: filtersByTag - } = groupBy(filters, (filter) => { - return filter.type; + } = groupBy(filters, ({ type }) => { + return type; }); + const searchQuery = filters?.find(({ type }) => { + return type === 'SEARCH_QUERY'; + })?.id; + if (filtersByAccount?.length > 0) { where.accountId = { in: filtersByAccount.map(({ id }) => { @@ -357,6 +361,30 @@ export class OrderService { }; } + if (searchQuery) { + const searchQueryWhereInput: Prisma.SymbolProfileWhereInput[] = [ + { id: { mode: 'insensitive', startsWith: searchQuery } }, + { isin: { mode: 'insensitive', startsWith: searchQuery } }, + { name: { mode: 'insensitive', startsWith: searchQuery } }, + { symbol: { mode: 'insensitive', startsWith: searchQuery } } + ]; + + if (where.SymbolProfile) { + where.SymbolProfile = { + AND: [ + where.SymbolProfile, + { + OR: searchQueryWhereInput + } + ] + }; + } else { + where.SymbolProfile = { + OR: searchQueryWhereInput + }; + } + } + if (filtersByTag?.length > 0) { where.tags = { some: { From c9fc3e402db38e2784e001e3449ec9d08da92472 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sat, 13 Jul 2024 20:13:53 +0200 Subject: [PATCH 14/14] Release 2.96.0 (#3570) --- CHANGELOG.md | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 193fe9d12..ba8c5f80d 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.96.0 - 2024-07-13 ### Changed diff --git a/package.json b/package.json index 8103533fc..9acc17f2e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ghostfolio", - "version": "2.95.0", + "version": "2.96.0", "homepage": "https://ghostfol.io", "license": "AGPL-3.0", "repository": "https://github.com/ghostfolio/ghostfolio",