Add duplicate action on transactions table (#68)
* feat: add duplicate action on transactions table * fix: review changes * fix: add type and dataSource
This commit is contained in:
parent
a3d1ac2ce4
commit
631efff7ae
@ -177,6 +177,9 @@
|
||||
<button i18n mat-menu-item (click)="onUpdateTransaction(element)">
|
||||
Edit
|
||||
</button>
|
||||
<button i18n mat-menu-item (click)="onCloneTransaction(element)">
|
||||
Clone
|
||||
</button>
|
||||
<button i18n mat-menu-item (click)="onDeleteTransaction(element.id)">
|
||||
Delete
|
||||
</button>
|
||||
|
@ -35,6 +35,7 @@ export class TransactionsTableComponent
|
||||
@Input() transactions: OrderModel[];
|
||||
|
||||
@Output() transactionDeleted = new EventEmitter<string>();
|
||||
@Output() transactionToClone = new EventEmitter<OrderModel>();
|
||||
@Output() transactionToUpdate = new EventEmitter<OrderModel>();
|
||||
|
||||
@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
|
||||
|
@ -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
|
||||
}
|
||||
},
|
||||
|
@ -9,6 +9,7 @@
|
||||
[showActions]="!hasImpersonationId && hasPermissionToDeleteOrder"
|
||||
[transactions]="transactions"
|
||||
(transactionDeleted)="onDeleteTransaction($event)"
|
||||
(transactionToClone)="onCloneTransaction($event)"
|
||||
(transactionToUpdate)="onUpdateTransaction($event)"
|
||||
></gf-transactions-table>
|
||||
</div>
|
||||
|
Loading…
x
Reference in New Issue
Block a user