diff --git a/CHANGELOG.md b/CHANGELOG.md index d020d7ea8..22a0b6090 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,17 +7,43 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## Unreleased +### Changed + +- Improved the usability of the _Cancel_ / _Close_ buttons in the create watchlist item dialog +- Refactored the symbol pipe to standalone + +### Fixed + +- Handled an exception in the get asset profile functionality of the _Financial Modeling Prep_ service + +## 2.205.0 - 2025-10-01 + +### Changed + +- Restricted the selection of the retirement date picker in the _FIRE_ calculator to a future date +- Improved the support for mutual funds in the _Financial Modeling Prep_ service (get asset profiles) +- Improved the language localization for German (`de`) +- Upgraded `prisma` from version `6.16.1` to `6.16.3` + +## 2.204.0 - 2025-09-30 + ### Added - Added the safe withdrawal rate to the user settings (experimental) ### Changed +- Improved the number formatting of the y-axis labels in the investment chart component - Localized the number formatting of the y-axis labels in the line chart component - Improved the wording of the 4% rule in the _FIRE_ section +- Improved the usability of the create asset profile dialog in the market data section of the admin control panel - Improved the language localization for German (`de`) - Changed `fireWealth` from a single `number` to a structured interface +### Fixed + +- Improved the table headers’ alignment of the activities table + ## 2.203.0 - 2025-09-27 ### Added diff --git a/apps/api/src/services/data-provider/financial-modeling-prep/financial-modeling-prep.service.ts b/apps/api/src/services/data-provider/financial-modeling-prep/financial-modeling-prep.service.ts index 8f52fb779..8bb8f8327 100644 --- a/apps/api/src/services/data-provider/financial-modeling-prep/financial-modeling-prep.service.ts +++ b/apps/api/src/services/data-provider/financial-modeling-prep/financial-modeling-prep.service.ts @@ -106,7 +106,10 @@ export class FinancialModelingPrepService implements DataProviderInterface { response.assetClass = assetClass; response.assetSubClass = assetSubClass; - if (assetSubClass === AssetSubClass.ETF) { + if ( + assetSubClass === AssetSubClass.ETF || + assetSubClass === AssetSubClass.MUTUALFUND + ) { const etfCountryWeightings = await fetch( `${this.getUrl({ version: 'stable' })}/etf/country-weightings?symbol=${symbol}&apikey=${this.apiKey}`, { @@ -158,7 +161,7 @@ export class FinancialModelingPrepService implements DataProviderInterface { } ).then((res) => res.json()); - if (etfInformation.website) { + if (etfInformation?.website) { response.url = etfInformation.website; } diff --git a/apps/client/src/app/components/admin-market-data/admin-market-data.component.ts b/apps/client/src/app/components/admin-market-data/admin-market-data.component.ts index 4e410c3a0..e907f4b03 100644 --- a/apps/client/src/app/components/admin-market-data/admin-market-data.component.ts +++ b/apps/client/src/app/components/admin-market-data/admin-market-data.component.ts @@ -1,4 +1,4 @@ -import { GfSymbolModule } from '@ghostfolio/client/pipes/symbol/symbol.module'; +import { GfSymbolPipe } from '@ghostfolio/client/pipes/symbol/symbol.pipe'; import { AdminService } from '@ghostfolio/client/services/admin.service'; import { DataService } from '@ghostfolio/client/services/data.service'; import { UserService } from '@ghostfolio/client/services/user/user.service'; @@ -79,7 +79,7 @@ import { CreateAssetProfileDialogParams } from './create-asset-profile-dialog/in CommonModule, GfActivitiesFilterComponent, GfPremiumIndicatorComponent, - GfSymbolModule, + GfSymbolPipe, GfValueComponent, IonIcon, MatButtonModule, diff --git a/apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.component.ts b/apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.component.ts index 94433e56c..18dc48c39 100644 --- a/apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.component.ts +++ b/apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.component.ts @@ -55,6 +55,7 @@ import { CreateAssetProfileDialogMode } from './interfaces/interfaces'; }) export class GfCreateAssetProfileDialogComponent implements OnInit, OnDestroy { public createAssetProfileForm: FormGroup; + public ghostfolioPrefix = `${ghostfolioPrefix}_`; public mode: CreateAssetProfileDialogMode; private customCurrencies: string[]; @@ -77,9 +78,7 @@ export class GfCreateAssetProfileDialogComponent implements OnInit, OnDestroy { addCurrency: new FormControl(null, [ this.iso4217CurrencyCodeValidator() ]), - addSymbol: new FormControl(`${ghostfolioPrefix}_`, [ - Validators.required - ]), + addSymbol: new FormControl(null, [Validators.required]), searchSymbol: new FormControl(null, [Validators.required]) }, { @@ -95,6 +94,8 @@ export class GfCreateAssetProfileDialogComponent implements OnInit, OnDestroy { } public onRadioChange(mode: CreateAssetProfileDialogMode) { + this.createAssetProfileForm.reset(); + this.mode = mode; } @@ -133,7 +134,7 @@ export class GfCreateAssetProfileDialogComponent implements OnInit, OnDestroy { } else if (this.mode === 'manual') { this.dialogRef.close({ dataSource: 'MANUAL', - symbol: this.createAssetProfileForm.get('addSymbol').value + symbol: `${this.ghostfolioPrefix}${this.createAssetProfileForm.get('addSymbol').value}` }); } } diff --git a/apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html b/apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html index c60ca83b8..1474596aa 100644 --- a/apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html +++ b/apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -38,6 +38,7 @@ Symbol + {{ ghostfolioPrefix }} } @else if (mode === 'currency') { @@ -53,7 +54,13 @@ }
- +
- +