108 lines
3.5 KiB
HTML
108 lines
3.5 KiB
HTML
<div *ngIf="transactions" class="card mt-1">
|
|
<div class="card-header">
|
|
<div class="row">
|
|
<mat-form-field appearance="outline">
|
|
<mat-label> TRANSACTION TYPE </mat-label>
|
|
<mat-select
|
|
id="transferSelect"
|
|
[(value)]="transactionsType"
|
|
(selectionChange)="filterTransactions()"
|
|
>
|
|
<mat-option value="all">ALL TRANSFERS</mat-option>
|
|
<mat-option *ngFor="let transactionType of transactionsTypes" [value]="transactionType">
|
|
{{ transactionType | uppercase }}
|
|
</mat-option>
|
|
</mat-select>
|
|
</mat-form-field>
|
|
<button
|
|
mat-raised-button
|
|
color="primary"
|
|
type="button"
|
|
class="btn btn-outline-primary ml-auto mr-2"
|
|
(click)="downloadCsv(transactions, 'transactions')"
|
|
>
|
|
EXPORT
|
|
</button>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="card-body">
|
|
<mat-form-field appearance="outline">
|
|
<mat-label> Filter </mat-label>
|
|
<input
|
|
matInput
|
|
type="text"
|
|
(keyup)="doTransactionFilter($event.target.value)"
|
|
placeholder="Filter"
|
|
/>
|
|
<mat-icon matSuffix>search</mat-icon>
|
|
</mat-form-field>
|
|
|
|
<table
|
|
mat-table
|
|
class="mat-elevation-z10"
|
|
[dataSource]="transactionsDataSource"
|
|
matSort
|
|
matSortActive="created"
|
|
#TransactionTableSort="matSort"
|
|
matSortDirection="asc"
|
|
matSortDisableClear
|
|
>
|
|
<ng-container matColumnDef="sender">
|
|
<th mat-header-cell *matHeaderCellDef mat-sort-header>Sender</th>
|
|
<td mat-cell *matCellDef="let transaction">
|
|
{{ transaction?.sender?.vcard.fn[0].value || transaction.from }}
|
|
</td>
|
|
</ng-container>
|
|
|
|
<ng-container matColumnDef="recipient">
|
|
<th mat-header-cell *matHeaderCellDef mat-sort-header>Recipient</th>
|
|
<td mat-cell *matCellDef="let transaction">
|
|
{{ transaction?.recipient?.vcard.fn[0].value || transaction.to }}
|
|
</td>
|
|
</ng-container>
|
|
|
|
<ng-container matColumnDef="value">
|
|
<th mat-header-cell *matHeaderCellDef mat-sort-header>Value</th>
|
|
<td mat-cell *matCellDef="let transaction">
|
|
<span *ngIf="transaction.type == 'transaction'"
|
|
>{{ transaction?.value | tokenRatio }} {{ tokenSymbol | uppercase }}</span
|
|
>
|
|
<span *ngIf="transaction.type == 'conversion'"
|
|
>{{ transaction?.toValue | tokenRatio }} {{ tokenSymbol | uppercase }}</span
|
|
>
|
|
</td>
|
|
</ng-container>
|
|
|
|
<ng-container matColumnDef="created">
|
|
<th mat-header-cell *matHeaderCellDef mat-sort-header>Created</th>
|
|
<td mat-cell *matCellDef="let transaction">
|
|
{{ transaction?.tx.timestamp | unixDate }}
|
|
</td>
|
|
</ng-container>
|
|
|
|
<ng-container matColumnDef="type">
|
|
<th mat-header-cell *matHeaderCellDef mat-sort-header>TYPE</th>
|
|
<td mat-cell *matCellDef="let transaction">
|
|
<span class="badge badge-success badge-pill"> {{ transaction?.type }} </span>
|
|
</td>
|
|
</ng-container>
|
|
|
|
<tr mat-header-row *matHeaderRowDef="transactionsDisplayedColumns"></tr>
|
|
<tr
|
|
mat-row
|
|
*matRowDef="let transaction; columns: transactionsDisplayedColumns"
|
|
matRipple
|
|
(click)="viewTransaction(transaction)"
|
|
></tr>
|
|
</table>
|
|
|
|
<mat-paginator
|
|
#TransactionTablePaginator="matPaginator"
|
|
[pageSize]="transactionsDefaultPageSize"
|
|
[pageSizeOptions]="transactionsPageSizeOptions"
|
|
showFirstLastButtons
|
|
></mat-paginator>
|
|
</div>
|
|
</div>
|