Browse Source

Minor refactoring

pull/73/head
Thomas 4 years ago
parent
commit
c081e5e5a3
  1. 27
      apps/client/src/app/components/transactions-table/transactions-table.component.ts

27
apps/client/src/app/components/transactions-table/transactions-table.component.ts

@ -13,8 +13,8 @@ import { MatDialog } from '@angular/material/dialog';
import { MatSort } from '@angular/material/sort';
import { MatTableDataSource } from '@angular/material/table';
import { ActivatedRoute, Router } from '@angular/router';
import { OrderWithAccount } from '@ghostfolio/api/app/order/interfaces/order-with-account.type';
import { DEFAULT_DATE_FORMAT } from '@ghostfolio/helper';
import { Order as OrderModel } from '@prisma/client';
import { Subject, Subscription } from 'rxjs';
import { takeUntil } from 'rxjs/operators';
@ -32,15 +32,15 @@ export class TransactionsTableComponent
@Input() deviceType: string;
@Input() locale: string;
@Input() showActions: boolean;
@Input() transactions: OrderModel[];
@Input() transactions: OrderWithAccount[];
@Output() transactionDeleted = new EventEmitter<string>();
@Output() transactionToClone = new EventEmitter<OrderModel>();
@Output() transactionToUpdate = new EventEmitter<OrderModel>();
@Output() transactionToClone = new EventEmitter<OrderWithAccount>();
@Output() transactionToUpdate = new EventEmitter<OrderWithAccount>();
@ViewChild(MatSort) sort: MatSort;
public dataSource: MatTableDataSource<OrderModel> = new MatTableDataSource();
public dataSource: MatTableDataSource<OrderWithAccount> = new MatTableDataSource();
public defaultDateFormat = DEFAULT_DATE_FORMAT;
public displayedColumns = [];
public isLoading = true;
@ -87,18 +87,19 @@ export class TransactionsTableComponent
if (this.transactions) {
this.dataSource = new MatTableDataSource(this.transactions);
this.dataSource.sort = this.sort;
this.dataSource.filterPredicate = (data, filter: string) => {
const accumulator = (currentTerm, key) => {
this.dataSource.filterPredicate = (data, filter) => {
const accumulator = (currentTerm: string, key: string) => {
return key === 'Account'
? currentTerm + data.Account.name
: currentTerm + data[key];
};
const dataStr = Object.keys(data).reduce(accumulator, '').toLowerCase();
const dataString = Object.keys(data)
.reduce(accumulator, '')
.toLowerCase();
const transformedFilter = filter.trim().toLowerCase();
return dataStr.indexOf(transformedFilter) !== -1;
return dataString.includes(transformedFilter);
};
this.dataSource.sort = this.sort;
this.isLoading = false;
}
@ -131,11 +132,11 @@ export class TransactionsTableComponent
});
}
public onUpdateTransaction(aTransaction: OrderModel) {
public onUpdateTransaction(aTransaction: OrderWithAccount) {
this.transactionToUpdate.emit(aTransaction);
}
public onCloneTransaction(aTransaction: OrderModel) {
public onCloneTransaction(aTransaction: OrderWithAccount) {
this.transactionToClone.emit(aTransaction);
}

Loading…
Cancel
Save