From d77b12a8a2f5aa2398e7d2a7b1e01b0f0b7bb55b Mon Sep 17 00:00:00 2001 From: mantovanig <gabriele.mantovani92@gmail.com> Date: Tue, 4 May 2021 20:26:22 +0200 Subject: [PATCH] feat: add duplicate action on transactions table --- .../transactions-table.component.html | 3 +++ .../transactions-table/transactions-table.component.ts | 5 +++++ .../pages/transactions/transactions-page.component.ts | 10 +++++++--- .../src/app/pages/transactions/transactions-page.html | 1 + 4 files changed, 16 insertions(+), 3 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..e5c7c11e3 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 @@ <button i18n mat-menu-item (click)="onUpdateTransaction(element)"> Edit </button> + <button i18n mat-menu-item (click)="onDuplicateTransaction(element)"> + Duplicate + </button> <button i18n mat-menu-item (click)="onDeleteTransaction(element.id)"> Delete </button> 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..eeacbbfc3 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 @@ -36,6 +36,7 @@ export class TransactionsTableComponent @Output() transactionDeleted = new EventEmitter<string>(); @Output() transactionToUpdate = new EventEmitter<OrderModel>(); + @Output() transactionToDuplicate = new EventEmitter<OrderModel>(); @ViewChild(MatSort) sort: MatSort; @@ -123,6 +124,10 @@ export class TransactionsTableComponent this.transactionToUpdate.emit(aTransaction); } + public onDuplicateTransaction(aTransaction: OrderModel) { + this.transactionToDuplicate.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..e56dba3eb 100644 --- a/apps/client/src/app/pages/transactions/transactions-page.component.ts +++ b/apps/client/src/app/pages/transactions/transactions-page.component.ts @@ -123,6 +123,10 @@ export class TransactionsPageComponent implements OnInit { }); } + public onDuplicateTransaction(aTransaction: OrderModel) { + this.openCreateTransactionDialog(aTransaction); + } + public openUpdateTransactionDialog({ accountId, currency, @@ -175,7 +179,7 @@ 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, @@ -183,11 +187,11 @@ export class TransactionsPageComponent implements OnInit { accountId: this.user?.accounts.find((account) => { return account.isDefault; })?.id, - currency: null, + currency: aTransaction?.currency || null, date: new Date(), fee: 0, quantity: null, - symbol: null, + symbol: aTransaction?.symbol || null, 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..41d9131b9 100644 --- a/apps/client/src/app/pages/transactions/transactions-page.html +++ b/apps/client/src/app/pages/transactions/transactions-page.html @@ -10,6 +10,7 @@ [transactions]="transactions" (transactionDeleted)="onDeleteTransaction($event)" (transactionToUpdate)="onUpdateTransaction($event)" + (transactionToDuplicate)="onDuplicateTransaction($event)" ></gf-transactions-table> </div> </div>