|
@ -10,13 +10,13 @@ import { FormBuilder } from '@angular/forms'; |
|
|
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; |
|
|
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; |
|
|
import { UpdateAssetProfileDto } from '@ghostfolio/api/app/admin/update-asset-profile.dto'; |
|
|
import { UpdateAssetProfileDto } from '@ghostfolio/api/app/admin/update-asset-profile.dto'; |
|
|
import { AdminService } from '@ghostfolio/client/services/admin.service'; |
|
|
import { AdminService } from '@ghostfolio/client/services/admin.service'; |
|
|
|
|
|
import { DataService } from '@ghostfolio/client/services/data.service'; |
|
|
import { |
|
|
import { |
|
|
AdminMarketDataDetails, |
|
|
AdminMarketDataDetails, |
|
|
EnhancedSymbolProfile, |
|
|
|
|
|
UniqueAsset |
|
|
UniqueAsset |
|
|
} from '@ghostfolio/common/interfaces'; |
|
|
} from '@ghostfolio/common/interfaces'; |
|
|
import { translate } from '@ghostfolio/ui/i18n'; |
|
|
import { translate } from '@ghostfolio/ui/i18n'; |
|
|
import { MarketData } from '@prisma/client'; |
|
|
import { MarketData, SymbolProfile } from '@prisma/client'; |
|
|
import { Subject } from 'rxjs'; |
|
|
import { Subject } from 'rxjs'; |
|
|
import { takeUntil } from 'rxjs/operators'; |
|
|
import { takeUntil } from 'rxjs/operators'; |
|
|
|
|
|
|
|
@ -37,9 +37,11 @@ export class AssetProfileDialog implements OnDestroy, OnInit { |
|
|
symbolMapping: '' |
|
|
symbolMapping: '' |
|
|
}); |
|
|
}); |
|
|
public assetSubClass: string; |
|
|
public assetSubClass: string; |
|
|
|
|
|
public benchmarks: Partial<SymbolProfile>[]; |
|
|
public countries: { |
|
|
public countries: { |
|
|
[code: string]: { name: string; value: number }; |
|
|
[code: string]: { name: string; value: number }; |
|
|
}; |
|
|
}; |
|
|
|
|
|
public isBenchmark = false; |
|
|
public marketDataDetails: MarketData[] = []; |
|
|
public marketDataDetails: MarketData[] = []; |
|
|
public sectors: { |
|
|
public sectors: { |
|
|
[name: string]: { name: string; value: number }; |
|
|
[name: string]: { name: string; value: number }; |
|
@ -51,11 +53,14 @@ export class AssetProfileDialog implements OnDestroy, OnInit { |
|
|
private adminService: AdminService, |
|
|
private adminService: AdminService, |
|
|
private changeDetectorRef: ChangeDetectorRef, |
|
|
private changeDetectorRef: ChangeDetectorRef, |
|
|
@Inject(MAT_DIALOG_DATA) public data: AssetProfileDialogParams, |
|
|
@Inject(MAT_DIALOG_DATA) public data: AssetProfileDialogParams, |
|
|
|
|
|
private dataService: DataService, |
|
|
public dialogRef: MatDialogRef<AssetProfileDialog>, |
|
|
public dialogRef: MatDialogRef<AssetProfileDialog>, |
|
|
private formBuilder: FormBuilder |
|
|
private formBuilder: FormBuilder |
|
|
) {} |
|
|
) {} |
|
|
|
|
|
|
|
|
public ngOnInit(): void { |
|
|
public ngOnInit(): void { |
|
|
|
|
|
this.benchmarks = this.dataService.fetchInfo().benchmarks; |
|
|
|
|
|
|
|
|
this.initialize(); |
|
|
this.initialize(); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
@ -72,6 +77,9 @@ export class AssetProfileDialog implements OnDestroy, OnInit { |
|
|
this.assetClass = translate(this.assetProfile?.assetClass); |
|
|
this.assetClass = translate(this.assetProfile?.assetClass); |
|
|
this.assetSubClass = translate(this.assetProfile?.assetSubClass); |
|
|
this.assetSubClass = translate(this.assetProfile?.assetSubClass); |
|
|
this.countries = {}; |
|
|
this.countries = {}; |
|
|
|
|
|
this.isBenchmark = this.benchmarks.some(({ id }) => { |
|
|
|
|
|
return id === this.assetProfile.id; |
|
|
|
|
|
}); |
|
|
this.marketDataDetails = marketData; |
|
|
this.marketDataDetails = marketData; |
|
|
this.sectors = {}; |
|
|
this.sectors = {}; |
|
|
|
|
|
|
|
@ -128,6 +136,17 @@ export class AssetProfileDialog implements OnDestroy, OnInit { |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public onSetBenchmark({ dataSource, symbol }: UniqueAsset) { |
|
|
|
|
|
this.dataService |
|
|
|
|
|
.postBenchmark({ dataSource, symbol }) |
|
|
|
|
|
.pipe(takeUntil(this.unsubscribeSubject)) |
|
|
|
|
|
.subscribe(() => { |
|
|
|
|
|
setTimeout(() => { |
|
|
|
|
|
window.location.reload(); |
|
|
|
|
|
}, 300); |
|
|
|
|
|
}); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
public onSubmit() { |
|
|
public onSubmit() { |
|
|
let symbolMapping = {}; |
|
|
let symbolMapping = {}; |
|
|
|
|
|
|
|
|