From 38b99fc4e26338a095cdb4d538cd6076fa235534 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Tue, 25 Aug 2026 13:47:14 +0200 Subject: [PATCH] Improve data source column by showing resolved name --- .../asset-profiles/asset-profiles.service.ts | 19 +++++++++++++++++++ .../admin-market-data/admin-market-data.html | 15 +++++++++++++-- .../asset-profile-item.interface.ts | 3 +++ 3 files changed, 35 insertions(+), 2 deletions(-) diff --git a/apps/api/src/app/endpoints/asset-profiles/asset-profiles.service.ts b/apps/api/src/app/endpoints/asset-profiles/asset-profiles.service.ts index c6ca5ebf4..e9aad6911 100644 --- a/apps/api/src/app/endpoints/asset-profiles/asset-profiles.service.ts +++ b/apps/api/src/app/endpoints/asset-profiles/asset-profiles.service.ts @@ -20,6 +20,7 @@ import { AssetProfileIdentifier, AssetProfileItem, AssetProfilesResponse, + DataProviderInfo, EnhancedAssetProfile, Filter } from '@ghostfolio/common/interfaces'; @@ -364,6 +365,23 @@ export class AssetProfilesService { ); } + const dataProviderInfoMap = new Map( + [ + ...new Set( + symbolProfiles.map(({ dataSource }) => { + return dataSource; + }) + ) + ].map((dataSource) => { + return [ + dataSource, + this.dataProviderService + .getDataProvider(dataSource) + .getDataProviderInfo() + ]; + }) + ); + let assetProfiles: AssetProfileItem[] = await Promise.all( symbolProfiles.map(async (assetProfile) => { const { @@ -417,6 +435,7 @@ export class AssetProfilesService { sectorsCount, symbol, activitiesCount: _count.activities, + dataProviderInfo: dataProviderInfoMap.get(dataSource), date: activities?.[0]?.date, isUsedByUsersWithSubscription: await isUsedByUsersWithSubscription, watchedByCount: _count.watchedBy 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 f6744b263..729ffede3 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 @@ -106,8 +106,19 @@ Data Source - - {{ element.dataSource }} + +
+ {{ element.dataProviderInfo?.name ?? element.dataSource }} +
+ @if (element.dataProviderInfo?.name) { +
+ {{ element.dataSource }} +
+ } diff --git a/libs/common/src/lib/interfaces/asset-profile-item.interface.ts b/libs/common/src/lib/interfaces/asset-profile-item.interface.ts index 14e8471c1..382e824cc 100644 --- a/libs/common/src/lib/interfaces/asset-profile-item.interface.ts +++ b/libs/common/src/lib/interfaces/asset-profile-item.interface.ts @@ -1,5 +1,7 @@ import { AssetClass, AssetSubClass, DataSource } from '@prisma/client'; +import { DataProviderInfo } from './data-provider-info.interface'; + export interface AssetProfileItem { activitiesCount: number; assetClass?: AssetClass; @@ -7,6 +9,7 @@ export interface AssetProfileItem { comment?: string; countriesCount: number; currency: string; + dataProviderInfo?: DataProviderInfo; dataSource: DataSource; date: Date; id: string;