diff --git a/apps/client/src/app/components/admin-platform/admin-platform.component.ts b/apps/client/src/app/components/admin-platform/admin-platform.component.ts index 6a2a3de3c..9f24a3f53 100644 --- a/apps/client/src/app/components/admin-platform/admin-platform.component.ts +++ b/apps/client/src/app/components/admin-platform/admin-platform.component.ts @@ -143,9 +143,7 @@ export class AdminPlatformComponent implements OnInit, OnDestroy { dialogRef .afterClosed() .pipe(takeUntil(this.unsubscribeSubject)) - .subscribe((data) => { - const platform: CreatePlatformDto = data?.platform; - + .subscribe((platform: CreatePlatformDto) => { if (platform) { this.adminService .postPlatform(platform) diff --git a/apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.component.ts b/apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.component.ts index 14d893900..828b4e0dd 100644 --- a/apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.component.ts +++ b/apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.component.ts @@ -1,4 +1,13 @@ -import { ChangeDetectionStrategy, Component, Inject } from '@angular/core'; +import { CreatePlatformDto } from '@ghostfolio/api/app/platform/create-platform.dto'; +import { validateObjectForForm } from '@ghostfolio/client/util/form.util'; + +import { + ChangeDetectionStrategy, + Component, + Inject, + OnDestroy +} from '@angular/core'; +import { FormBuilder, FormGroup, Validators } from '@angular/forms'; import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; import { Subject } from 'rxjs'; @@ -11,13 +20,38 @@ import { CreateOrUpdatePlatformDialogParams } from './interfaces/interfaces'; styleUrls: ['./create-or-update-platform-dialog.scss'], templateUrl: 'create-or-update-platform-dialog.html' }) -export class CreateOrUpdatePlatformDialog { +export class CreateOrUpdatePlatformDialog implements OnDestroy { + public platformForm: FormGroup; private unsubscribeSubject = new Subject(); public constructor( @Inject(MAT_DIALOG_DATA) public data: CreateOrUpdatePlatformDialogParams, - public dialogRef: MatDialogRef - ) {} + public dialogRef: MatDialogRef, + private formBuilder: FormBuilder + ) { + this.platformForm = this.formBuilder.group({ + name: [this.data.platform.name, Validators.required], + url: [this.data.platform.url, Validators.required] + }); + } + + public async onSubmit() { + try { + const platform: CreatePlatformDto = { + name: this.platformForm.get('name')?.value, + url: this.platformForm.get('url')?.value + }; + + await validateObjectForForm({ + classDto: CreatePlatformDto, + form: this.platformForm, + object: platform + }); + this.dialogRef.close(platform); + } catch (error) { + console.error(error); + } + } public onCancel() { this.dialogRef.close(); diff --git a/apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html b/apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html index bcd3d0340..b454640f3 100644 --- a/apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html +++ b/apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html @@ -1,17 +1,30 @@ -
+

Update platform

Add platform

Name - +
Url - + @if (data.platform.url) { Save