diff --git a/apps/client/src/app/components/admin-market-data-detail/admin-market-data-detail.component.ts b/apps/client/src/app/components/admin-market-data-detail/admin-market-data-detail.component.ts index cff078e37..ddd43c4fc 100644 --- a/apps/client/src/app/components/admin-market-data-detail/admin-market-data-detail.component.ts +++ b/apps/client/src/app/components/admin-market-data-detail/admin-market-data-detail.component.ts @@ -177,8 +177,8 @@ export class AdminMarketDataDetailComponent implements OnChanges, OnInit { dialogRef .afterClosed() .pipe(takeUntil(this.unsubscribeSubject)) - .subscribe(({ withRefresh }) => { - this.marketDataChanged.next(withRefresh); + .subscribe((data) => { + this.marketDataChanged.next(data?.withRefresh ?? false); }); } diff --git a/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts b/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts index 741647695..3916b6d63 100644 --- a/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts +++ b/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts @@ -45,7 +45,7 @@ export class AssetProfileDialog implements OnDestroy, OnInit { public countries: { [code: string]: { name: string; value: number }; }; - public historicalDataAsString: string; + public historicalDataAsCsvString: string; public isBenchmark = false; public marketDataDetails: MarketData[] = []; public sectors: { @@ -138,6 +138,34 @@ export class AssetProfileDialog implements OnDestroy, OnInit { .subscribe(() => {}); } + public onImportHistoricalData() { + const inputHistoricalData = this.historicalDataAsCsvString; + const inputSplittedByLine = inputHistoricalData.split('\n'); + const dataBulkUpdate: UpdateMarketDataDto[] = inputSplittedByLine.map( + (line) => { + const [dateString, marketPriceString] = line.split(';'); + + return { + date: parseISO(dateString), + marketPrice: Number(marketPriceString) + }; + } + ); + + this.adminService + .postMarketData({ + dataSource: this.data.dataSource, + marketData: { marketData: dataBulkUpdate }, + symbol: this.data.symbol + }) + .pipe(takeUntil(this.unsubscribeSubject)) + .subscribe(() => { + this.initialize(); + }); + + this.historicalDataAsCsvString = ''; + } + public onMarketDataChanged(withRefresh: boolean = false) { if (withRefresh) { this.initialize(); @@ -203,34 +231,6 @@ export class AssetProfileDialog implements OnDestroy, OnInit { }); } - public importHistoricalData() { - const inputHistoricalData = this.historicalDataAsString; - const inputSplittedByLine = inputHistoricalData.split('\n'); - const dataBulkUpdate: UpdateMarketDataDto[] = inputSplittedByLine.map( - (line) => { - const [dateString, marketPriceString] = line.split(';'); - - return { - date: parseISO(dateString), - marketPrice: Number(marketPriceString) - }; - } - ); - - this.adminService - .postMarketData({ - dataSource: this.data.dataSource, - marketData: { marketData: dataBulkUpdate }, - symbol: this.data.symbol - }) - .pipe(takeUntil(this.unsubscribeSubject)) - .subscribe(() => { - this.dataService.updateInfo(); - }); - - this.historicalDataAsString = ''; - } - public ngOnDestroy() { this.unsubscribeSubject.next(); this.unsubscribeSubject.complete(); diff --git a/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html b/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html index 446bac905..66d00e720 100644 --- a/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html +++ b/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html @@ -64,14 +64,20 @@ placeholder="e.g. 20230601;1.61" type="text" [ngModelOptions]="{standalone: true}" - [(ngModel)]="historicalDataAsString" + [(ngModel)]="historicalDataAsCsvString" + (keyup.enter)="$event.stopPropagation()" >