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 57ee57f19..53345131c 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 @@ -150,7 +150,7 @@ export class GfAssetProfileDialogComponent implements OnDestroy, OnInit { assetClass: new FormControl(undefined), assetSubClass: new FormControl(undefined), comment: '', - countries: '', + countries: ['', this.jsonValidator()], currency: '', historicalData: this.formBuilder.group({ csvString: '' @@ -159,14 +159,14 @@ export class GfAssetProfileDialogComponent implements OnDestroy, OnInit { name: ['', Validators.required], scraperConfiguration: this.formBuilder.group({ defaultMarketPrice: null, - headers: JSON.stringify({}), + headers: [JSON.stringify({}), this.jsonValidator()], locale: '', mode: '', selector: '', url: '' }), - sectors: '', - symbolMapping: '', + sectors: ['', this.jsonValidator()], + symbolMapping: ['', this.jsonValidator()], url: '' }); @@ -722,4 +722,17 @@ export class GfAssetProfileDialogComponent implements OnDestroy, OnInit { }; } } + + private jsonValidator() { + return (control: AbstractControl): ValidationErrors | null => { + try { + if (control.value) { + JSON.parse(control.value); + } + return null; + } catch { + return { invalidJson: true }; + } + }; + } } 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 ce0cafbc1..f298ed527 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 @@ -514,30 +514,28 @@ } - @if (assetProfile?.dataSource === 'MANUAL') { -
- - Sectors - - -
-
- - Countries - - -
- } +
+ + Sectors + + +
+
+ + Countries + + +
Url