From 631efff7ae995f525d1cbc63feaa3119ea3d3598 Mon Sep 17 00:00:00 2001 From: Mantovani Gabriele Date: Wed, 5 May 2021 12:01:56 +0200 Subject: [PATCH] Add duplicate action on transactions table (#68) * feat: add duplicate action on transactions table * fix: review changes * fix: add type and dataSource --- .../transactions-table.component.html | 3 +++ .../transactions-table.component.ts | 5 +++++ .../transactions/transactions-page.component.ts | 15 ++++++++++----- .../app/pages/transactions/transactions-page.html | 1 + 4 files changed, 19 insertions(+), 5 deletions(-) diff --git a/apps/client/src/app/components/transactions-table/transactions-table.component.html b/apps/client/src/app/components/transactions-table/transactions-table.component.html index 7c0bd479d..9d2165180 100644 --- a/apps/client/src/app/components/transactions-table/transactions-table.component.html +++ b/apps/client/src/app/components/transactions-table/transactions-table.component.html @@ -177,6 +177,9 @@ + diff --git a/apps/client/src/app/components/transactions-table/transactions-table.component.ts b/apps/client/src/app/components/transactions-table/transactions-table.component.ts index b4d20b33f..4978701f4 100644 --- a/apps/client/src/app/components/transactions-table/transactions-table.component.ts +++ b/apps/client/src/app/components/transactions-table/transactions-table.component.ts @@ -35,6 +35,7 @@ export class TransactionsTableComponent @Input() transactions: OrderModel[]; @Output() transactionDeleted = new EventEmitter(); + @Output() transactionToClone = new EventEmitter(); @Output() transactionToUpdate = new EventEmitter(); @ViewChild(MatSort) sort: MatSort; @@ -123,6 +124,10 @@ export class TransactionsTableComponent this.transactionToUpdate.emit(aTransaction); } + public onCloneTransaction(aTransaction: OrderModel) { + this.transactionToClone.emit(aTransaction); + } + public openPositionDialog({ symbol, title diff --git a/apps/client/src/app/pages/transactions/transactions-page.component.ts b/apps/client/src/app/pages/transactions/transactions-page.component.ts index ef02e49c0..bfae6b8a1 100644 --- a/apps/client/src/app/pages/transactions/transactions-page.component.ts +++ b/apps/client/src/app/pages/transactions/transactions-page.component.ts @@ -109,6 +109,10 @@ export class TransactionsPageComponent implements OnInit { }); } + public onCloneTransaction(aTransaction: OrderModel) { + this.openCreateTransactionDialog(aTransaction); + } + public onDeleteTransaction(aId: string) { this.dataService.deleteOrder(aId).subscribe({ next: () => { @@ -175,20 +179,21 @@ export class TransactionsPageComponent implements OnInit { this.unsubscribeSubject.complete(); } - private openCreateTransactionDialog(): void { + private openCreateTransactionDialog(aTransaction?: OrderModel): void { const dialogRef = this.dialog.open(CreateOrUpdateTransactionDialog, { data: { accounts: this.user?.accounts, transaction: { - accountId: this.user?.accounts.find((account) => { + accountId: aTransaction?.accountId ?? this.user?.accounts.find((account) => { return account.isDefault; })?.id, - currency: null, + currency: aTransaction?.currency ?? null, + dataSource: aTransaction?.dataSource ?? null, date: new Date(), fee: 0, quantity: null, - symbol: null, - type: 'BUY', + symbol: aTransaction?.symbol ?? null, + type: aTransaction?.type ?? 'BUY', unitPrice: null } }, diff --git a/apps/client/src/app/pages/transactions/transactions-page.html b/apps/client/src/app/pages/transactions/transactions-page.html index d290f54ed..fc7b9d3a8 100644 --- a/apps/client/src/app/pages/transactions/transactions-page.html +++ b/apps/client/src/app/pages/transactions/transactions-page.html @@ -9,6 +9,7 @@ [showActions]="!hasImpersonationId && hasPermissionToDeleteOrder" [transactions]="transactions" (transactionDeleted)="onDeleteTransaction($event)" + (transactionToClone)="onCloneTransaction($event)" (transactionToUpdate)="onUpdateTransaction($event)" >