diff --git a/apps/client/src/app/pages/accounts/transfer-cash-balance/transfer-cash-balance-dialog.component.ts b/apps/client/src/app/pages/accounts/transfer-cash-balance/transfer-cash-balance-dialog.component.ts new file mode 100644 index 000000000..c4fee6200 --- /dev/null +++ b/apps/client/src/app/pages/accounts/transfer-cash-balance/transfer-cash-balance-dialog.component.ts @@ -0,0 +1,64 @@ +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 { TransferCashBalanceDto } from '@ghostfolio/api/app/account/transfer-cash-balance.dto'; +import { Subject } from 'rxjs'; +import { Account as AccountModel } from '@prisma/client'; +import { TransferCashBalanceDialogParams } from './interfaces/interfaces'; + +@Component({ + host: { class: 'h-100' }, + selector: 'gf-transfer-cash-balance-dialog', + changeDetection: ChangeDetectionStrategy.OnPush, + styleUrls: ['./transfer-cash-balance-dialog.scss'], + templateUrl: 'transfer-cash-balance-dialog.html' +}) +export class TransferCashBalanceDialog implements OnDestroy { + public transferCashBalanceForm: FormGroup; + public accounts: AccountModel[] = []; + + private unsubscribeSubject = new Subject(); + + public constructor( + @Inject(MAT_DIALOG_DATA) public data: TransferCashBalanceDialogParams, + public dialogRef: MatDialogRef, + private formBuilder: FormBuilder + ) { } + + ngOnInit() { + + this.accounts = this.data.accounts; + + this.transferCashBalanceForm = this.formBuilder.group({ + balance: [0, Validators.required], + fromAccount: ['', Validators.required], + toAccount: ['', Validators.required], + }); + } + + public onCancel() { + this.dialogRef.close(); + } + + public onSubmit() { + const account: TransferCashBalanceDto = { + balance: this.transferCashBalanceForm.controls['balance'].value, + fromAccount: this.transferCashBalanceForm.controls['fromAccount'].value, + toAccount: this.transferCashBalanceForm.controls['toAccount'].value, + }; + + console.log(`Transfer cash balance of ${account.balance} from account ${account.fromAccount} to account ${account.toAccount}`) + + this.dialogRef.close({ account }); + } + + public ngOnDestroy() { + this.unsubscribeSubject.next(); + this.unsubscribeSubject.complete(); + } +} diff --git a/apps/client/src/app/pages/accounts/transfer-cash-balance/transfer-cash-balance-dialog.html b/apps/client/src/app/pages/accounts/transfer-cash-balance/transfer-cash-balance-dialog.html new file mode 100644 index 000000000..6a96d4560 --- /dev/null +++ b/apps/client/src/app/pages/accounts/transfer-cash-balance/transfer-cash-balance-dialog.html @@ -0,0 +1,48 @@ +
+

Transfer Cash Balance

+
+
+ + Value + + CHF + +
+
+ + From + + {{ account.name }} + + +
+
+ + To + + {{ account.name }} + + +
+
+
+ + +
+
diff --git a/apps/client/src/app/pages/accounts/transfer-cash-balance/transfer-cash-balance-dialog.scss b/apps/client/src/app/pages/accounts/transfer-cash-balance/transfer-cash-balance-dialog.scss new file mode 100644 index 000000000..b63df0134 --- /dev/null +++ b/apps/client/src/app/pages/accounts/transfer-cash-balance/transfer-cash-balance-dialog.scss @@ -0,0 +1,7 @@ +:host { + display: block; + + .mat-mdc-dialog-content { + max-height: unset; + } +} diff --git a/apps/client/src/app/pages/accounts/transfer-cash-balance/transfer-cash-balance.module-dialog.ts b/apps/client/src/app/pages/accounts/transfer-cash-balance/transfer-cash-balance.module-dialog.ts new file mode 100644 index 000000000..0e3e4667f --- /dev/null +++ b/apps/client/src/app/pages/accounts/transfer-cash-balance/transfer-cash-balance.module-dialog.ts @@ -0,0 +1,27 @@ +import { CommonModule } from '@angular/common'; +import { NgModule } from '@angular/core'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; +import { MatButtonModule } from '@angular/material/button'; +import { MatCheckboxModule } from '@angular/material/checkbox'; +import { MatDialogModule } from '@angular/material/dialog'; +import { MatFormFieldModule } from '@angular/material/form-field'; +import { MatInputModule } from '@angular/material/input'; +import { MatSelectModule } from '@angular/material/select'; + +import { TransferCashBalanceDialog } from './transfer-cash-balance-dialog.component'; + +@NgModule({ + declarations: [TransferCashBalanceDialog], + imports: [ + CommonModule, + FormsModule, + MatButtonModule, + MatCheckboxModule, + MatDialogModule, + MatFormFieldModule, + MatInputModule, + MatSelectModule, + ReactiveFormsModule + ] +}) +export class GfTransferCashBalanceDialogModule { }