diff --git a/apps/api/src/app/admin/admin.service.ts b/apps/api/src/app/admin/admin.service.ts index c92c82de2..881f1fe4d 100644 --- a/apps/api/src/app/admin/admin.service.ts +++ b/apps/api/src/app/admin/admin.service.ts @@ -185,6 +185,7 @@ export class AdminService { assetSubClass: true, comment: true, countries: true, + currency: true, dataSource: true, name: true, Order: { @@ -206,6 +207,7 @@ export class AdminService { assetClass, assetSubClass, comment, + currency, countries, dataSource, name, @@ -227,6 +229,7 @@ export class AdminService { assetClass, assetSubClass, comment, + currency, countriesCount, dataSource, name, @@ -356,6 +359,7 @@ export class AdminService { symbol, assetClass: 'CASH', countriesCount: 0, + currency: symbol.replace(DEFAULT_CURRENCY, ''), name: symbol, sectorsCount: 0 }; diff --git a/apps/api/src/app/portfolio/portfolio.service.ts b/apps/api/src/app/portfolio/portfolio.service.ts index de366908f..fcd2cb13c 100644 --- a/apps/api/src/app/portfolio/portfolio.service.ts +++ b/apps/api/src/app/portfolio/portfolio.service.ts @@ -1088,6 +1088,7 @@ export class PortfolioService { return { ...position, assetClass: symbolProfileMap[position.symbol].assetClass, + assetSubClass: symbolProfileMap[position.symbol].assetSubClass, averagePrice: new Big(position.averagePrice).toNumber(), grossPerformance: position.grossPerformance?.toNumber() ?? null, grossPerformancePercentage: diff --git a/libs/common/src/lib/interfaces/admin-market-data.interface.ts b/libs/common/src/lib/interfaces/admin-market-data.interface.ts index 111e605de..08838d4bc 100644 --- a/libs/common/src/lib/interfaces/admin-market-data.interface.ts +++ b/libs/common/src/lib/interfaces/admin-market-data.interface.ts @@ -9,6 +9,7 @@ export interface AdminMarketDataItem { assetClass?: AssetClass; assetSubClass?: AssetSubClass; countriesCount: number; + currency: string; dataSource: DataSource; date?: Date; marketDataItemCount: number; diff --git a/libs/common/src/lib/interfaces/position.interface.ts b/libs/common/src/lib/interfaces/position.interface.ts index 6d94e3443..1df07e0ce 100644 --- a/libs/common/src/lib/interfaces/position.interface.ts +++ b/libs/common/src/lib/interfaces/position.interface.ts @@ -1,9 +1,9 @@ -import { AssetClass, DataSource } from '@prisma/client'; - -import { MarketState } from '../types'; +import { MarketState } from '@ghostfolio/common/types'; +import { AssetClass, AssetSubClass, DataSource } from '@prisma/client'; export interface Position { assetClass: AssetClass; + assetSubClass: AssetSubClass; averagePrice: number; currency: string; dataSource: DataSource; diff --git a/libs/ui/src/lib/assistant/assistant-list-item/assistant-list-item.html b/libs/ui/src/lib/assistant/assistant-list-item/assistant-list-item.html index b909f402a..d75db3c8a 100644 --- a/libs/ui/src/lib/assistant/assistant-list-item/assistant-list-item.html +++ b/libs/ui/src/lib/assistant/assistant-list-item/assistant-list-item.html @@ -1,8 +1,16 @@ {{ item?.name }}{{ item?.name }} +
+ {{ item?.symbol | gfSymbol }} · {{ item?.currency }} + · {{ item?.assetSubClassString }} diff --git a/libs/ui/src/lib/assistant/assistant-list-item/assistant-list-item.module.ts b/libs/ui/src/lib/assistant/assistant-list-item/assistant-list-item.module.ts index 9a88fc919..0c2e89726 100644 --- a/libs/ui/src/lib/assistant/assistant-list-item/assistant-list-item.module.ts +++ b/libs/ui/src/lib/assistant/assistant-list-item/assistant-list-item.module.ts @@ -1,12 +1,13 @@ import { CommonModule } from '@angular/common'; import { NgModule } from '@angular/core'; import { RouterModule } from '@angular/router'; +import { GfSymbolModule } from '@ghostfolio/client/pipes/symbol/symbol.module'; import { AssistantListItemComponent } from './assistant-list-item.component'; @NgModule({ declarations: [AssistantListItemComponent], exports: [AssistantListItemComponent], - imports: [CommonModule, RouterModule] + imports: [CommonModule, GfSymbolModule, RouterModule] }) export class GfAssistantListItemModule {} diff --git a/libs/ui/src/lib/assistant/assistant.component.ts b/libs/ui/src/lib/assistant/assistant.component.ts index 857ab3172..2cfd9eff2 100644 --- a/libs/ui/src/lib/assistant/assistant.component.ts +++ b/libs/ui/src/lib/assistant/assistant.component.ts @@ -18,6 +18,7 @@ import { FormControl } from '@angular/forms'; import { MatMenuTrigger } from '@angular/material/menu'; import { AdminService } from '@ghostfolio/client/services/admin.service'; import { DataService } from '@ghostfolio/client/services/data.service'; +import { translate } from '@ghostfolio/ui/i18n'; import { EMPTY, Observable, Subject, lastValueFrom } from 'rxjs'; import { catchError, @@ -233,9 +234,17 @@ export class AssistantComponent implements OnDestroy, OnInit { return EMPTY; }), map(({ marketData }) => { - return marketData.map(({ dataSource, name, symbol }) => { - return { dataSource, name, symbol }; - }); + return marketData.map( + ({ assetSubClass, currency, dataSource, name, symbol }) => { + return { + currency, + dataSource, + name, + symbol, + assetSubClassString: translate(assetSubClass) + }; + } + ); }), takeUntil(this.unsubscribeSubject) ); @@ -257,9 +266,17 @@ export class AssistantComponent implements OnDestroy, OnInit { return EMPTY; }), map(({ positions }) => { - return positions.map(({ dataSource, name, symbol }) => { - return { dataSource, name, symbol }; - }); + return positions.map( + ({ assetSubClass, currency, dataSource, name, symbol }) => { + return { + currency, + dataSource, + name, + symbol, + assetSubClassString: translate(assetSubClass) + }; + } + ); }), takeUntil(this.unsubscribeSubject) ); diff --git a/libs/ui/src/lib/assistant/interfaces/interfaces.ts b/libs/ui/src/lib/assistant/interfaces/interfaces.ts index ae3831af6..99f70dbe1 100644 --- a/libs/ui/src/lib/assistant/interfaces/interfaces.ts +++ b/libs/ui/src/lib/assistant/interfaces/interfaces.ts @@ -1,6 +1,8 @@ import { UniqueAsset } from '@ghostfolio/common/interfaces'; export interface ISearchResultItem extends UniqueAsset { + assetSubClassString: string; + currency: string; name: string; }