From ccd6c2138ee036fc708a44eefbb42546ea8f12fd Mon Sep 17 00:00:00 2001 From: KenTandrian Date: Sat, 23 May 2026 22:27:29 +0700 Subject: [PATCH] resolve comments --- .../app/endpoints/benchmarks/benchmarks.controller.ts | 7 +++++-- apps/api/src/app/portfolio/portfolio.controller.ts | 11 ++++++----- apps/api/src/app/portfolio/portfolio.service.ts | 5 +++-- apps/api/src/app/user/user.service.ts | 4 +++- .../home-overview/home-overview.component.ts | 2 +- libs/common/src/lib/config.ts | 2 +- 6 files changed, 19 insertions(+), 12 deletions(-) diff --git a/apps/api/src/app/endpoints/benchmarks/benchmarks.controller.ts b/apps/api/src/app/endpoints/benchmarks/benchmarks.controller.ts index 970925777..74bb6b672 100644 --- a/apps/api/src/app/endpoints/benchmarks/benchmarks.controller.ts +++ b/apps/api/src/app/endpoints/benchmarks/benchmarks.controller.ts @@ -5,7 +5,10 @@ import { TransformDataSourceInResponseInterceptor } from '@ghostfolio/api/interc import { ApiService } from '@ghostfolio/api/services/api/api.service'; import { BenchmarkService } from '@ghostfolio/api/services/benchmark/benchmark.service'; import { getIntervalFromDateRange } from '@ghostfolio/common/calculation-helper'; -import { HEADER_KEY_IMPERSONATION } from '@ghostfolio/common/config'; +import { + DEFAULT_DATE_RANGE, + HEADER_KEY_IMPERSONATION +} from '@ghostfolio/common/config'; import type { AssetProfileIdentifier, BenchmarkMarketDataDetailsResponse, @@ -118,7 +121,7 @@ export class BenchmarksController { @Param('dataSource') dataSource: DataSource, @Param('startDateString') startDateString: string, @Param('symbol') symbol: string, - @Query('range') dateRange: DateRange = 'max', + @Query('range') dateRange: DateRange = DEFAULT_DATE_RANGE, @Query('accounts') filterByAccounts?: string, @Query('assetClasses') filterByAssetClasses?: string, @Query('dataSource') filterByDataSource?: string, diff --git a/apps/api/src/app/portfolio/portfolio.controller.ts b/apps/api/src/app/portfolio/portfolio.controller.ts index 3b306c87b..8aa94ee92 100644 --- a/apps/api/src/app/portfolio/portfolio.controller.ts +++ b/apps/api/src/app/portfolio/portfolio.controller.ts @@ -14,6 +14,7 @@ import { ConfigurationService } from '@ghostfolio/api/services/configuration/con import { ImpersonationService } from '@ghostfolio/api/services/impersonation/impersonation.service'; import { getIntervalFromDateRange } from '@ghostfolio/common/calculation-helper'; import { + DEFAULT_DATE_RANGE, HEADER_KEY_IMPERSONATION, UNKNOWN_KEY } from '@ghostfolio/common/config'; @@ -82,7 +83,7 @@ export class PortfolioController { @Query('accounts') filterByAccounts?: string, @Query('assetClasses') filterByAssetClasses?: string, @Query('dataSource') filterByDataSource?: string, - @Query('range') dateRange: DateRange = 'max', + @Query('range') dateRange: DateRange = DEFAULT_DATE_RANGE, @Query('symbol') filterBySymbol?: string, @Query('tags') filterByTags?: string, @Query('withMarkets') withMarketsParam = 'false' @@ -321,7 +322,7 @@ export class PortfolioController { @Query('assetClasses') filterByAssetClasses?: string, @Query('dataSource') filterByDataSource?: string, @Query('groupBy') groupBy?: GroupBy, - @Query('range') dateRange: DateRange = 'max', + @Query('range') dateRange: DateRange = DEFAULT_DATE_RANGE, @Query('symbol') filterBySymbol?: string, @Query('tags') filterByTags?: string ): Promise { @@ -422,7 +423,7 @@ export class PortfolioController { @Query('dataSource') filterByDataSource?: string, @Query('holdingType') filterByHoldingType?: string, @Query('query') filterBySearchQuery?: string, - @Query('range') dateRange: DateRange = 'max', + @Query('range') dateRange: DateRange = DEFAULT_DATE_RANGE, @Query('symbol') filterBySymbol?: string, @Query('tags') filterByTags?: string ): Promise { @@ -455,7 +456,7 @@ export class PortfolioController { @Query('assetClasses') filterByAssetClasses?: string, @Query('dataSource') filterByDataSource?: string, @Query('groupBy') groupBy?: GroupBy, - @Query('range') dateRange: DateRange = 'max', + @Query('range') dateRange: DateRange = DEFAULT_DATE_RANGE, @Query('symbol') filterBySymbol?: string, @Query('tags') filterByTags?: string ): Promise { @@ -527,7 +528,7 @@ export class PortfolioController { @Query('accounts') filterByAccounts?: string, @Query('assetClasses') filterByAssetClasses?: string, @Query('dataSource') filterByDataSource?: string, - @Query('range') dateRange: DateRange = 'max', + @Query('range') dateRange: DateRange = DEFAULT_DATE_RANGE, @Query('symbol') filterBySymbol?: string, @Query('tags') filterByTags?: string, @Query('withExcludedAccounts') withExcludedAccountsParam = 'false' diff --git a/apps/api/src/app/portfolio/portfolio.service.ts b/apps/api/src/app/portfolio/portfolio.service.ts index ade683d41..2a9639561 100644 --- a/apps/api/src/app/portfolio/portfolio.service.ts +++ b/apps/api/src/app/portfolio/portfolio.service.ts @@ -32,6 +32,7 @@ import { } from '@ghostfolio/common/calculation-helper'; import { DEFAULT_CURRENCY, + DEFAULT_DATE_RANGE, TAG_ID_EMERGENCY_FUND, TAG_ID_EXCLUDE_FROM_ANALYSIS, UNKNOWN_KEY @@ -470,7 +471,7 @@ export class PortfolioService { } public async getDetails({ - dateRange = 'max', + dateRange = DEFAULT_DATE_RANGE, filters, impersonationId, userId, @@ -1013,7 +1014,7 @@ export class PortfolioService { } public async getPerformance({ - dateRange = 'max', + dateRange = DEFAULT_DATE_RANGE, filters, impersonationId, userId diff --git a/apps/api/src/app/user/user.service.ts b/apps/api/src/app/user/user.service.ts index 4ad22a043..4a0e1598b 100644 --- a/apps/api/src/app/user/user.service.ts +++ b/apps/api/src/app/user/user.service.ts @@ -26,6 +26,7 @@ import { PropertyService } from '@ghostfolio/api/services/property/property.serv import { TagService } from '@ghostfolio/api/services/tag/tag.service'; import { DEFAULT_CURRENCY, + DEFAULT_DATE_RANGE, DEFAULT_LANGUAGE_CODE, PROPERTY_IS_READ_ONLY_MODE, PROPERTY_SYSTEM_MESSAGE, @@ -281,7 +282,8 @@ export class UserService { (user.settings.settings as UserSettings).dateRange = (user.settings.settings as UserSettings).viewMode === 'ZEN' ? 'max' - : ((user.settings.settings as UserSettings)?.dateRange ?? 'max'); + : ((user.settings.settings as UserSettings)?.dateRange ?? + DEFAULT_DATE_RANGE); // Set default value for performance calculation type if (!(user.settings.settings as UserSettings)?.performanceCalculationType) { diff --git a/apps/client/src/app/components/home-overview/home-overview.component.ts b/apps/client/src/app/components/home-overview/home-overview.component.ts index 1c9b2e4e0..ad3556536 100644 --- a/apps/client/src/app/components/home-overview/home-overview.component.ts +++ b/apps/client/src/app/components/home-overview/home-overview.component.ts @@ -59,7 +59,6 @@ export class GfHomeOverviewComponent implements OnInit { protected readonly routerLinkPortfolioActivities = internalRoutes.portfolio.subRoutes.activities.routerLink; - // Computed signals protected readonly deviceType = computed( () => this.deviceDetectorService.deviceInfo().deviceType ); @@ -70,6 +69,7 @@ export class GfHomeOverviewComponent implements OnInit { protected readonly showDetails = computed(() => { const user = this.user(); + return user ? !user.settings.isRestrictedView && user.settings.viewMode !== 'ZEN' : false; diff --git a/libs/common/src/lib/config.ts b/libs/common/src/lib/config.ts index a627adb72..113dffe4a 100644 --- a/libs/common/src/lib/config.ts +++ b/libs/common/src/lib/config.ts @@ -81,8 +81,8 @@ export const STATISTICS_GATHERING_QUEUE = 'STATISTICS_GATHERING_QUEUE'; export const DEFAULT_COLOR_SCHEME: ColorScheme = 'LIGHT'; export const DEFAULT_CURRENCY = 'USD'; -export const DEFAULT_DATE_RANGE: DateRange = 'max'; export const DEFAULT_DATE_FORMAT_MONTH_YEAR = 'MMM yyyy'; +export const DEFAULT_DATE_RANGE: DateRange = 'max'; export const DEFAULT_HOST = '0.0.0.0'; export const DEFAULT_LANGUAGE_CODE = 'en'; export const DEFAULT_PAGE_SIZE = 50;