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

Loading…
Cancel
Save