LND Filter by selected columns

pull/1127/head
ShahanaFarooqui 2 years ago
parent 2807a408a8
commit c0a1472eef

@ -131,41 +131,41 @@ export class CLNRoutingPeersComponent implements OnInit, OnChanges, AfterViewIni
setFilterPredicate() {
this.routingPeersIncoming.filterPredicate = (rowDataIn: RoutingPeer, fltr: string) => {
let rowToFilter = '';
let rowToFilterIn = '';
switch (this.selFilterByIn) {
case 'all':
rowToFilter = JSON.stringify(rowDataIn).toLowerCase();
rowToFilterIn = JSON.stringify(rowDataIn).toLowerCase();
break;
case 'total_amount':
case 'total_fee':
rowToFilter = ((+(rowDataIn[this.selFilterByIn] || 0)) / 1000)?.toString() || '';
rowToFilterIn = ((+(rowDataIn[this.selFilterByIn] || 0)) / 1000)?.toString() || '';
break;
default:
rowToFilter = typeof rowDataIn[this.selFilterByIn] === 'string' ? rowDataIn[this.selFilterByIn].toLowerCase() : typeof rowDataIn[this.selFilterByIn] === 'boolean' ? (rowDataIn[this.selFilterByIn] ? 'yes' : 'no') : rowDataIn[this.selFilterByIn].toString();
rowToFilterIn = typeof rowDataIn[this.selFilterByIn] === 'string' ? rowDataIn[this.selFilterByIn].toLowerCase() : typeof rowDataIn[this.selFilterByIn] === 'boolean' ? (rowDataIn[this.selFilterByIn] ? 'yes' : 'no') : rowDataIn[this.selFilterByIn].toString();
break;
}
return rowToFilter.includes(fltr);
return rowToFilterIn.includes(fltr);
};
this.routingPeersIncoming.filterPredicate = (rowDataOut: RoutingPeer, fltr: string) => {
let rowToFilter = '';
this.routingPeersOutgoing.filterPredicate = (rowDataOut: RoutingPeer, fltr: string) => {
let rowToFilterOut = '';
switch (this.selFilterByOut) {
case 'all':
rowToFilter = JSON.stringify(rowDataOut).toLowerCase();
rowToFilterOut = JSON.stringify(rowDataOut).toLowerCase();
break;
case 'total_amount':
case 'total_fee':
rowToFilter = ((+(rowDataOut[this.selFilterByOut] || 0)) / 1000)?.toString() || '';
rowToFilterOut = ((+(rowDataOut[this.selFilterByOut] || 0)) / 1000)?.toString() || '';
break;
default:
rowToFilter = typeof rowDataOut[this.selFilterByOut] === 'string' ? rowDataOut[this.selFilterByOut].toLowerCase() : typeof rowDataOut[this.selFilterByOut] === 'boolean' ? (rowDataOut[this.selFilterByOut] ? 'yes' : 'no') : rowDataOut[this.selFilterByOut].toString();
rowToFilterOut = typeof rowDataOut[this.selFilterByOut] === 'string' ? rowDataOut[this.selFilterByOut].toLowerCase() : typeof rowDataOut[this.selFilterByOut] === 'boolean' ? (rowDataOut[this.selFilterByOut] ? 'yes' : 'no') : rowDataOut[this.selFilterByOut].toString();
break;
}
return rowToFilter.includes(fltr);
return rowToFilterOut.includes(fltr);
};
}

@ -109,31 +109,38 @@ export class ECLRoutingPeersComponent implements OnInit, AfterViewInit, OnDestro
}
setFilterPredicate() {
this.routingPeersIncoming.filterPredicate = (rowDataIn: RoutingPeers, fltr: string) => JSON.stringify(rowDataIn).toLowerCase().includes(fltr);
this.routingPeersOutgoing.filterPredicate = (rowDataOut: RoutingPeers, fltr: string) => JSON.stringify(rowDataOut).toLowerCase().includes(fltr);
// this.routingPeersIncoming.filterPredicate = (rowData: RoutingPeer, fltr: string) => {
// let rowToFilter = '';
// switch (this.selFilterBy) {
// case 'all':
// for (let i = 0; i < this.displayedColumns.length - 1; i++) {
// rowToFilter = rowToFilter + (
// (this.displayedColumns[i] === '') ?
// (rowData ? rowData..toLowerCase() : '') :
// (rowData[this.displayedColumns[i]] ? rowData[this.displayedColumns[i]].toLowerCase() : '')
// ) + ', ';
// }
// break;
// case '':
// rowToFilter = rowData?..toLowerCase() || '';
// break;
// default:
// rowToFilter = typeof rowData[this.selFilterBy] === 'string' ? rowData[this.selFilterBy].toLowerCase() : typeof rowData[this.selFilterBy] === 'boolean' ? (rowData[this.selFilterBy] ? 'yes' : 'no') : rowData[this.selFilterBy].toString();
// break;
// }
// return rowToFilter.includes(fltr);
// };
this.routingPeersIncoming.filterPredicate = (rowDataIn: RoutingPeers, fltr: string) => {
let rowToFilterIn = '';
switch (this.selFilterByIn) {
case 'all':
rowToFilterIn = JSON.stringify(rowDataIn).toLowerCase();
break;
default:
rowToFilterIn = typeof rowDataIn[this.selFilterByIn] === 'string' ? rowDataIn[this.selFilterByIn].toLowerCase() : typeof rowDataIn[this.selFilterByIn] === 'boolean' ? (rowDataIn[this.selFilterByIn] ? 'yes' : 'no') : rowDataIn[this.selFilterByIn].toString();
break;
}
return rowToFilterIn.includes(fltr);
};
this.routingPeersOutgoing.filterPredicate = (rowDataOut: RoutingPeers, fltr: string) => {
let rowToFilterOut = '';
switch (this.selFilterByOut) {
case 'all':
rowToFilterOut = JSON.stringify(rowDataOut).toLowerCase();
break;
case 'total_amount':
case 'total_fee':
rowToFilterOut = ((+(rowDataOut[this.selFilterByOut] || 0)) / 1000)?.toString() || '';
break;
default:
rowToFilterOut = typeof rowDataOut[this.selFilterByOut] === 'string' ? rowDataOut[this.selFilterByOut].toLowerCase() : typeof rowDataOut[this.selFilterByOut] === 'boolean' ? (rowDataOut[this.selFilterByOut] ? 'yes' : 'no') : rowDataOut[this.selFilterByOut].toString();
break;
}
return rowToFilterOut.includes(fltr);
};
}
loadRoutingPeersTable(forwardingEvents: PaymentRelayed[]) {

@ -130,32 +130,22 @@ export class OnChainTransactionHistoryComponent implements OnInit, OnChanges, On
setFilterPredicate() {
this.listTransactions.filterPredicate = (rowData: Transaction, fltr: string) => {
const newRowData = ((rowData.time_stamp) ? this.datePipe.transform(new Date(rowData.time_stamp * 1000), 'dd/MMM/YYYY HH:mm')?.toLowerCase() : '') + JSON.stringify(rowData).toLowerCase();
return newRowData.includes(fltr);
let rowToFilter = '';
switch (this.selFilterBy) {
case 'all':
rowToFilter = ((rowData.time_stamp) ? this.datePipe.transform(new Date(rowData.time_stamp * 1000), 'dd/MMM/YYYY HH:mm')?.toLowerCase() : '') + JSON.stringify(rowData).toLowerCase();
break;
case 'time_stamp':
rowToFilter = this.datePipe.transform(new Date((rowData?.time_stamp || 0) * 1000), 'dd/MMM/YYYY HH:mm') || '';
break;
default:
rowToFilter = typeof rowData[this.selFilterBy] === 'string' ? rowData[this.selFilterBy].toLowerCase() : typeof rowData[this.selFilterBy] === 'boolean' ? (rowData[this.selFilterBy] ? 'yes' : 'no') : rowData[this.selFilterBy].toString();
break;
}
return rowToFilter.includes(fltr);
};
// this.listTransactions.filterPredicate = (rowData: Transaction, fltr: string) => {
// let rowToFilter = '';
// switch (this.selFilterBy) {
// case 'all':
// for (let i = 0; i < this.displayedColumns.length - 1; i++) {
// rowToFilter = rowToFilter + (
// (this.displayedColumns[i] === '') ?
// (rowData ? rowData..toLowerCase() : '') :
// (rowData[this.displayedColumns[i]] ? rowData[this.displayedColumns[i]].toLowerCase() : '')
// ) + ', ';
// }
// break;
// case 'time_stamp':
// rowToFilter = rowData?..toLowerCase() || '';
// break;
// default:
// rowToFilter = typeof rowData[this.selFilterBy] === 'string' ? rowData[this.selFilterBy].toLowerCase() : typeof rowData[this.selFilterBy] === 'boolean' ? (rowData[this.selFilterBy] ? 'yes' : 'no') : rowData[this.selFilterBy].toString();
// break;
// }
// return rowToFilter.includes(fltr);
// };
}
loadTransactionsTable(transactions) {

@ -132,33 +132,19 @@ export class ChannelActiveHTLCsTableComponent implements OnInit, AfterViewInit,
setFilterPredicate() {
this.channels.filterPredicate = (rowData: Channel, fltr: string) => {
const rowToFilter = (rowData.remote_alias ? rowData.remote_alias.toLowerCase() : '') +
rowData.pending_htlcs?.map((htlc) => JSON.stringify(htlc) + (htlc.incoming ? 'yes' : 'no'));
let rowToFilter = '';
switch (this.selFilterBy) {
case 'all':
rowToFilter = (rowData.remote_alias ? rowData.remote_alias.toLowerCase() : '') +
rowData.pending_htlcs?.map((htlc) => JSON.stringify(htlc) + (htlc.incoming ? 'yes' : 'no'));
break;
default:
rowToFilter = typeof rowData[this.selFilterBy] === 'string' ? rowData[this.selFilterBy].toLowerCase() : typeof rowData[this.selFilterBy] === 'boolean' ? (rowData[this.selFilterBy] ? 'yes' : 'no') : rowData[this.selFilterBy].toString();
break;
}
return rowToFilter.includes(fltr);
};
// this.channels.filterPredicate = (rowData: Channel, fltr: string) => {
// let rowToFilter = '';
// switch (this.selFilterBy) {
// case 'all':
// for (let i = 0; i < this.displayedColumns.length - 1; i++) {
// rowToFilter = rowToFilter + (
// (this.displayedColumns[i] === '') ?
// (rowData ? rowData..toLowerCase() : '') :
// (rowData[this.displayedColumns[i]] ? rowData[this.displayedColumns[i]].toLowerCase() : '')
// ) + ', ';
// }
// break;
// case '':
// rowToFilter = rowData?..toLowerCase() || '';
// break;
// default:
// rowToFilter = typeof rowData[this.selFilterBy] === 'string' ? rowData[this.selFilterBy].toLowerCase() : typeof rowData[this.selFilterBy] === 'boolean' ? (rowData[this.selFilterBy] ? 'yes' : 'no') : rowData[this.selFilterBy].toString();
// break;
// }
// return rowToFilter.includes(fltr);
// };
}
loadHTLCsTable(channels: Channel[]) {

@ -20,7 +20,7 @@
<td mat-cell *matCellDef="let channel">
<div fxLayout="row" fxLayoutAlign="start center">
<mat-icon [matTooltip]="channelClosureType[channel.close_type].tooltip" class="info-icon info-icon-text">info_outline</mat-icon>
{{channelClosureType[channel.close_type].name}}
{{channelClosureType[channel.close_type].name}}
</div>
</td>
</ng-container>

@ -105,30 +105,28 @@ export class ChannelClosedTableComponent implements OnInit, AfterViewInit, OnDes
}
setFilterPredicate() {
this.closedChannels.filterPredicate = (rowData: ClosedChannel, fltr: string) => JSON.stringify(rowData).toLowerCase().includes(fltr);
// this.closedChannels.filterPredicate = (rowData: ClosedChannel, fltr: string) => {
// let rowToFilter = '';
// switch (this.selFilterBy) {
// case 'all':
// for (let i = 0; i < this.displayedColumns.length - 1; i++) {
// rowToFilter = rowToFilter + (
// (this.displayedColumns[i] === '') ?
// (rowData ? rowData..toLowerCase() : '') :
// (rowData[this.displayedColumns[i]] ? rowData[this.displayedColumns[i]].toLowerCase() : '')
// ) + ', ';
// }
// break;
// case '':
// rowToFilter = rowData?..toLowerCase() || '';
// break;
// default:
// rowToFilter = typeof rowData[this.selFilterBy] === 'string' ? rowData[this.selFilterBy].toLowerCase() : typeof rowData[this.selFilterBy] === 'boolean' ? (rowData[this.selFilterBy] ? 'yes' : 'no') : rowData[this.selFilterBy].toString();
// break;
// }
// return rowToFilter.includes(fltr);
// };
this.closedChannels.filterPredicate = (rowData: ClosedChannel, fltr: string) => {
let rowToFilter = '';
switch (this.selFilterBy) {
case 'all':
rowToFilter = JSON.stringify(rowData).toLowerCase();
break;
case 'close_type':
rowToFilter = (rowData.close_type && this.channelClosureType[rowData.close_type] && this.channelClosureType[rowData.close_type].name ? this.channelClosureType[rowData.close_type].name.toLowerCase() : '');
break;
case 'open_initiator':
case 'close_initiator':
rowToFilter = this.camelCaseWithReplace.transform((rowData[this.selFilterBy] || ''), 'initiator_');
break;
default:
rowToFilter = typeof rowData[this.selFilterBy] === 'string' ? rowData[this.selFilterBy].toLowerCase() : typeof rowData[this.selFilterBy] === 'boolean' ? (rowData[this.selFilterBy] ? 'yes' : 'no') : rowData[this.selFilterBy].toString();
break;
}
return rowToFilter.includes(fltr);
};
}
onClosedChannelClick(selChannel: ClosedChannel, event: any) {

@ -33,7 +33,7 @@
<th mat-header-cell *matHeaderCellDef mat-sort-header>Peer</th>
<td mat-cell *matCellDef="let channel">
<div class="ellipsis-parent" [ngStyle]="{'width': (screenSize === screenSizeEnum.XS) ? '10rem' : colWidth}">
<span class="ellipsis-child">{{channel.remote_alias || channel.remote_pubkey}}</span>
<span class="ellipsis-child">{{channel.remote_alias}}</span>
</div>
</td>
</ng-container>
@ -69,11 +69,11 @@
<th mat-header-cell *matHeaderCellDef mat-sort-header>Static Remote Key</th>
<td mat-cell *matCellDef="let channel">{{channel.static_remote_key ? 'Yes' : 'No'}}</td>
</ng-container>
<ng-container matColumnDef="uptime">
<ng-container matColumnDef="uptime_str">
<th mat-header-cell *matHeaderCellDef mat-sort-header arrowPosition="before">Uptime ({{timeUnit}})</th>
<td mat-cell *matCellDef="let channel"><span fxLayoutAlign="end center">{{channel.uptime_str}} </span></td>
</ng-container>
<ng-container matColumnDef="lifetime">
<ng-container matColumnDef="lifetime_str">
<th mat-header-cell *matHeaderCellDef mat-sort-header arrowPosition="before">Lifetime ({{timeUnit}})</th>
<td mat-cell *matCellDef="let channel"><span fxLayoutAlign="end center">{{channel.lifetime_str}} </span></td>
</ng-container>

@ -318,45 +318,31 @@ export class ChannelOpenTableComponent implements OnInit, AfterViewInit, OnDestr
setFilterPredicate() {
this.channels.filterPredicate = (rowData: Channel, fltr: string) => {
const rowToFilter = ((rowData.active) ? 'active' : 'inactive') + (rowData.chan_id ? rowData.chan_id.toLowerCase() : '') +
(rowData.remote_pubkey ? rowData.remote_pubkey.toLowerCase() : '') + (rowData.remote_alias ? rowData.remote_alias.toLowerCase() : '') +
(rowData.capacity ? rowData.capacity : '') + (rowData.local_balance ? rowData.local_balance : '') +
(rowData.remote_balance ? rowData.remote_balance : '') + (rowData.total_satoshis_sent ? rowData.total_satoshis_sent : '') +
(rowData.total_satoshis_received ? rowData.total_satoshis_received : '') + (rowData.commit_fee ? rowData.commit_fee : '') +
(rowData.private ? 'private' : 'public');
return rowToFilter.includes(fltr);
};
// this.channels.filterPredicate = (rowData: Channel, fltr: string) => {
// let rowToFilter = '';
// switch (this.selFilterBy) {
// case 'all':
// for (let i = 0; i < this.displayedColumns.length - 1; i++) {
// rowToFilter = rowToFilter + (
// (this.displayedColumns[i] === '') ?
// (rowData ? rowData..toLowerCase() : '') :
// (rowData[this.displayedColumns[i]] ? rowData[this.displayedColumns[i]].toLowerCase() : '')
// ) + ', ';
// }
// break;
// case 'active':
// rowToFilter = rowData?.active ? 'active' : 'inactive';
// break;
let rowToFilter = '';
switch (this.selFilterBy) {
case 'all':
rowToFilter = ((rowData.active) ? 'active' : 'inactive') + (rowData.chan_id ? rowData.chan_id.toLowerCase() : '') +
(rowData.remote_pubkey ? rowData.remote_pubkey.toLowerCase() : '') + (rowData.remote_alias ? rowData.remote_alias.toLowerCase() : '') +
(rowData.capacity ? rowData.capacity : '') + (rowData.local_balance ? rowData.local_balance : '') +
(rowData.remote_balance ? rowData.remote_balance : '') + (rowData.total_satoshis_sent ? rowData.total_satoshis_sent : '') +
(rowData.total_satoshis_received ? rowData.total_satoshis_received : '') + (rowData.commit_fee ? rowData.commit_fee : '') +
(rowData.private ? 'private' : 'public');
break;
// case 'private':
// rowToFilter = rowData?.private ? 'private' : 'public';
// break;
case 'active':
rowToFilter = rowData?.active ? 'active' : 'inactive';
break;
// case '':
// rowToFilter = rowData?..toLowerCase() || '';
// break;
case 'private':
rowToFilter = rowData?.private ? 'private' : 'public';
break;
// default:
// rowToFilter = typeof rowData[this.selFilterBy] === 'string' ? rowData[this.selFilterBy].toLowerCase() : typeof rowData[this.selFilterBy] === 'boolean' ? (rowData[this.selFilterBy] ? 'yes' : 'no') : rowData[this.selFilterBy].toString();
// break;
// }
// return this.selFilterBy === 'active' ? rowToFilter.indexOf(fltr) === 0 : rowToFilter.includes(fltr);
// };
default:
rowToFilter = typeof rowData[this.selFilterBy] === 'string' ? rowData[this.selFilterBy].toLowerCase() : typeof rowData[this.selFilterBy] === 'boolean' ? (rowData[this.selFilterBy] ? 'yes' : 'no') : rowData[this.selFilterBy].toString();
break;
}
return this.selFilterBy === 'active' ? rowToFilter.indexOf(fltr) === 0 : rowToFilter.includes(fltr);
};
}
loadChannelsTable(mychannels: Channel[]) {

@ -186,30 +186,23 @@ export class PeersComponent implements OnInit, AfterViewInit, OnDestroy {
}
setFilterPredicate() {
this.peers.filterPredicate = (rowData: Peer, fltr: string) => JSON.stringify(rowData).toLowerCase().includes(fltr);
// this.peers.filterPredicate = (rowData: Peer, fltr: string) => {
// let rowToFilter = '';
// switch (this.selFilterBy) {
// case 'all':
// for (let i = 0; i < this.displayedColumns.length - 1; i++) {
// rowToFilter = rowToFilter + (
// (this.displayedColumns[i] === '') ?
// (rowData ? rowData..toLowerCase() : '') :
// (rowData[this.displayedColumns[i]] ? rowData[this.displayedColumns[i]].toLowerCase() : '')
// ) + ', ';
// }
// break;
// case '':
// rowToFilter = rowData?..toLowerCase() || '';
// break;
// default:
// rowToFilter = typeof rowData[this.selFilterBy] === 'string' ? rowData[this.selFilterBy].toLowerCase() : typeof rowData[this.selFilterBy] === 'boolean' ? (rowData[this.selFilterBy] ? 'yes' : 'no') : rowData[this.selFilterBy].toString();
// break;
// }
// return rowToFilter.includes(fltr);
// };
this.peers.filterPredicate = (rowData: Peer, fltr: string) => {
let rowToFilter = '';
switch (this.selFilterBy) {
case 'all':
rowToFilter = JSON.stringify(rowData).toLowerCase();
break;
case 'sync_type':
rowToFilter = this.camelCaseWithReplace.transform((rowData.sync_type || ''), 'sync', '_');
break;
default:
rowToFilter = typeof rowData[this.selFilterBy] === 'string' ? rowData[this.selFilterBy].toLowerCase() : typeof rowData[this.selFilterBy] === 'boolean' ? (rowData[this.selFilterBy] ? 'yes' : 'no') : rowData[this.selFilterBy].toString();
break;
}
return rowToFilter.includes(fltr);
};
}
loadPeersTable(peers: Peer[]) {

@ -147,32 +147,22 @@ export class ForwardingHistoryComponent implements OnInit, AfterViewInit, OnChan
setFilterPredicate() {
this.forwardingHistoryEvents.filterPredicate = (rowData: ForwardingEvent, fltr: string) => {
const newRowData = ((rowData.timestamp) ? this.datePipe.transform(new Date(rowData.timestamp * 1000), 'dd/MMM/YYYY HH:mm')?.toLowerCase() : '') + JSON.stringify(rowData).toLowerCase();
return newRowData.includes(fltr);
let rowToFilter = '';
switch (this.selFilterBy) {
case 'all':
rowToFilter = ((rowData.timestamp) ? this.datePipe.transform(new Date(rowData.timestamp * 1000), 'dd/MMM/YYYY HH:mm')?.toLowerCase() : '') + JSON.stringify(rowData).toLowerCase();
break;
case 'timestamp':
rowToFilter = this.datePipe.transform(new Date((rowData[this.selFilterBy] || 0) * 1000), 'dd/MMM/YYYY HH:mm')?.toLowerCase() || '';
break;
default:
rowToFilter = typeof rowData[this.selFilterBy] === 'string' ? rowData[this.selFilterBy].toLowerCase() : typeof rowData[this.selFilterBy] === 'boolean' ? (rowData[this.selFilterBy] ? 'yes' : 'no') : rowData[this.selFilterBy].toString();
break;
}
return rowToFilter.includes(fltr);
};
// this.forwardingHistoryEvents.filterPredicate = (rowData: ForwardingEvent, fltr: string) => {
// let rowToFilter = '';
// switch (this.selFilterBy) {
// case 'all':
// for (let i = 0; i < this.displayedColumns.length - 1; i++) {
// rowToFilter = rowToFilter + (
// (this.displayedColumns[i] === '') ?
// (rowData ? rowData..toLowerCase() : '') :
// (rowData[this.displayedColumns[i]] ? rowData[this.displayedColumns[i]].toLowerCase() : '')
// ) + ', ';
// }
// break;
// case '':
// rowToFilter = rowData?..toLowerCase() || '';
// break;
// default:
// rowToFilter = typeof rowData[this.selFilterBy] === 'string' ? rowData[this.selFilterBy].toLowerCase() : typeof rowData[this.selFilterBy] === 'boolean' ? (rowData[this.selFilterBy] ? 'yes' : 'no') : rowData[this.selFilterBy].toString();
// break;
// }
// return rowToFilter.includes(fltr);
// };
}
loadForwardingEventsTable(forwardingEvents: ForwardingEvent[]) {

@ -49,11 +49,11 @@
</div>
</td>
</ng-container>
<ng-container matColumnDef="uptime">
<ng-container matColumnDef="uptime_str">
<th mat-header-cell *matHeaderCellDef mat-sort-header arrowPosition="before">Uptime ({{timeUnit}})</th>
<td mat-cell *matCellDef="let nonRPeer"><span fxLayoutAlign="end center">{{nonRPeer.uptime_str}} </span></td>
</ng-container>
<ng-container matColumnDef="lifetime">
<ng-container matColumnDef="lifetime_str">
<th mat-header-cell *matHeaderCellDef mat-sort-header arrowPosition="before">Lifetime ({{timeUnit}})</th>
<td mat-cell *matCellDef="let nonRPeer"><span fxLayoutAlign="end center">{{nonRPeer.lifetime_str}} </span></td>
</ng-container>

@ -199,30 +199,19 @@ export class NonRoutingPeersComponent implements OnInit, AfterViewInit, OnDestro
}
setFilterPredicate() {
this.nonRoutingPeers.filterPredicate = (rowData: Channel, fltr: string) => JSON.stringify(rowData).toLowerCase().includes(fltr);
// this.peers.filterPredicate = (rowData: Peer, fltr: string) => {
// let rowToFilter = '';
// switch (this.selFilterBy) {
// case 'all':
// for (let i = 0; i < this.displayedColumns.length - 1; i++) {
// rowToFilter = rowToFilter + (
// (this.displayedColumns[i] === '') ?
// (rowData ? rowData..toLowerCase() : '') :
// (rowData[this.displayedColumns[i]] ? rowData[this.displayedColumns[i]].toLowerCase() : '')
// ) + ', ';
// }
// break;
// case '':
// rowToFilter = rowData?..toLowerCase() || '';
// break;
// default:
// rowToFilter = typeof rowData[this.selFilterBy] === 'string' ? rowData[this.selFilterBy].toLowerCase() : typeof rowData[this.selFilterBy] === 'boolean' ? (rowData[this.selFilterBy] ? 'yes' : 'no') : rowData[this.selFilterBy].toString();
// break;
// }
// return rowToFilter.includes(fltr);
// };
this.nonRoutingPeers.filterPredicate = (rowData: Channel, fltr: string) => {
let rowToFilter = '';
switch (this.selFilterBy) {
case 'all':
rowToFilter = JSON.stringify(rowData).toLowerCase();
break;
default:
rowToFilter = typeof rowData[this.selFilterBy] === 'string' ? rowData[this.selFilterBy].toLowerCase() : typeof rowData[this.selFilterBy] === 'boolean' ? (rowData[this.selFilterBy] ? 'yes' : 'no') : rowData[this.selFilterBy].toString();
break;
}
return rowToFilter.includes(fltr);
};
}
loadNonRoutingPeersTable(forwardingEvents: ForwardingEvent[]) {

@ -138,31 +138,38 @@ export class RoutingPeersComponent implements OnInit, AfterViewInit, OnDestroy {
}
setFilterPredicate() {
this.routingPeersIncoming.filterPredicate = (rowDataIn: RoutingPeers, fltr: string) => JSON.stringify(rowDataIn).toLowerCase().includes(fltr);
this.routingPeersOutgoing.filterPredicate = (rowDataOut: RoutingPeers, fltr: string) => JSON.stringify(rowDataOut).toLowerCase().includes(fltr);
// this.routingPeersIncoming.filterPredicate = (rowData: RoutingPeer, fltr: string) => {
// let rowToFilter = '';
// switch (this.selFilterBy) {
// case 'all':
// for (let i = 0; i < this.displayedColumns.length - 1; i++) {
// rowToFilter = rowToFilter + (
// (this.displayedColumns[i] === '') ?
// (rowData ? rowData..toLowerCase() : '') :
// (rowData[this.displayedColumns[i]] ? rowData[this.displayedColumns[i]].toLowerCase() : '')
// ) + ', ';
// }
// break;
// case '':
// rowToFilter = rowData?..toLowerCase() || '';
// break;
// default:
// rowToFilter = typeof rowData[this.selFilterBy] === 'string' ? rowData[this.selFilterBy].toLowerCase() : typeof rowData[this.selFilterBy] === 'boolean' ? (rowData[this.selFilterBy] ? 'yes' : 'no') : rowData[this.selFilterBy].toString();
// break;
// }
// return rowToFilter.includes(fltr);
// };
this.routingPeersIncoming.filterPredicate = (rowDataIn: RoutingPeers, fltr: string) => {
let rowToFilterIn = '';
switch (this.selFilterByIn) {
case 'all':
rowToFilterIn = JSON.stringify(rowDataIn).toLowerCase();
break;
default:
rowToFilterIn = typeof rowDataIn[this.selFilterByIn] === 'string' ? rowDataIn[this.selFilterByIn].toLowerCase() : typeof rowDataIn[this.selFilterByIn] === 'boolean' ? (rowDataIn[this.selFilterByIn] ? 'yes' : 'no') : rowDataIn[this.selFilterByIn].toString();
break;
}
return rowToFilterIn.includes(fltr);
};
this.routingPeersOutgoing.filterPredicate = (rowDataOut: RoutingPeers, fltr: string) => {
let rowToFilterOut = '';
switch (this.selFilterByOut) {
case 'all':
rowToFilterOut = JSON.stringify(rowDataOut).toLowerCase();
break;
case 'total_amount':
case 'total_fee':
rowToFilterOut = ((+(rowDataOut[this.selFilterByOut] || 0)) / 1000)?.toString() || '';
break;
default:
rowToFilterOut = typeof rowDataOut[this.selFilterByOut] === 'string' ? rowDataOut[this.selFilterByOut].toLowerCase() : typeof rowDataOut[this.selFilterByOut] === 'boolean' ? (rowDataOut[this.selFilterByOut] ? 'yes' : 'no') : rowDataOut[this.selFilterByOut].toString();
break;
}
return rowToFilterOut.includes(fltr);
};
}
loadRoutingPeersTable(forwardingEvents: ForwardingEvent[]) {

@ -42,7 +42,7 @@
<span *ngIf="invoice?.state === 'OPEN'" class="dot grey" matTooltip="Open" matTooltipPosition="right" [ngClass]="{'mr-0': screenSize === screenSizeEnum.XS}"></span>
<span *ngIf="invoice?.state === 'SETTLED'" class="dot green" matTooltip="Settled" matTooltipPosition="right" [ngClass]="{'mr-0': screenSize === screenSizeEnum.XS}"></span>
<span *ngIf="invoice?.state === 'ACCEPTED'" class="dot yellow" matTooltip="Accepted" matTooltipPosition="right" [ngClass]="{'mr-0': screenSize === screenSizeEnum.XS}"></span>
<span *ngIf="invoice?.state === 'CANCELED'" class="dot red" matTooltip="Cancelled" matTooltipPosition="right" [ngClass]="{'mr-0': screenSize === screenSizeEnum.XS}"></span>
<span *ngIf="invoice?.state === 'CANCELED'" class="dot red" matTooltip="Canceled" matTooltipPosition="right" [ngClass]="{'mr-0': screenSize === screenSizeEnum.XS}"></span>
</ng-container>
<ng-container matColumnDef="private">
<th mat-header-cell *matHeaderCellDef mat-sort-header arrowPosition="before" matTooltip="Private"></th>
@ -54,7 +54,7 @@
<ng-container matColumnDef="is_keysend">
<th mat-header-cell *matHeaderCellDef mat-sort-header arrowPosition="before" matTooltip="Keysend"></th>
<td mat-cell *matCellDef="let invoice">
<span *ngIf="invoice.is_keysend" class="mr-1" matTooltip="Keysend" matTooltipPosition="right"><fa-icon [icon]="faArrowsTurnToDots"></fa-icon></span>
<span *ngIf="invoice.is_keysend" class="mr-1" matTooltip="Keysend Invoices" matTooltipPosition="right"><fa-icon [icon]="faArrowsTurnToDots"></fa-icon></span>
<span *ngIf="!invoice.is_keysend" class="mr-1" matTooltip="Non Keysend Invoices" matTooltipPosition="right"><fa-icon [icon]="faArrowsTurnRight"></fa-icon></span>
</td>
</ng-container>
@ -62,7 +62,7 @@
<th mat-header-cell *matHeaderCellDef mat-sort-header arrowPosition="before" matTooltip="AMP"></th>
<td mat-cell *matCellDef="let invoice">
<span *ngIf="!invoice.is_amp" class="mr-1" matTooltip="Non Atomic Payment" matTooltipPosition="right"><fa-icon [icon]="faMoneyBill1"></fa-icon></span>
<span *ngIf="invoice.is_amp" class="mr-1" matTooltip="Atomic Multi-path Payment" matTooltipPosition="right"><fa-icon [icon]="faBurst"></fa-icon></span>
<span *ngIf="invoice.is_amp" class="mr-1" matTooltip="Atomic Multi Path Payment" matTooltipPosition="right"><fa-icon [icon]="faBurst"></fa-icon></span>
</td>
</ng-container>
<ng-container matColumnDef="creation_date">

@ -184,33 +184,36 @@ export class LightningInvoicesComponent implements OnInit, AfterViewInit, OnDest
setFilterPredicate() {
this.invoices.filterPredicate = (rowData: Invoice, fltr: string) => {
const rowToFilter = (rowData.creation_date ? this.datePipe.transform(new Date(rowData.creation_date * 1000), 'dd/MMM/YYYY HH:mm')?.toLowerCase() : '')! +
(rowData.settle_date ? this.datePipe.transform(new Date(rowData.settle_date * 1000), 'dd/MMM/YYYY HH:mm')?.toLowerCase() : '') + JSON.stringify(rowData).toLowerCase();
return rowToFilter.includes(fltr);
};
// this.invoices.filterPredicate = (rowData: Invoice, fltr: string) => {
// let rowToFilter = '';
// switch (this.selFilterBy) {
// case 'all':
// for (let i = 0; i < this.displayedColumns.length - 1; i++) {
// rowToFilter = rowToFilter + (
// (this.displayedColumns[i] === '') ?
// (rowData ? rowData..toLowerCase() : '') :
// (rowData[this.displayedColumns[i]] ? rowData[this.displayedColumns[i]].toLowerCase() : '')
// ) + ', ';
// }
// break;
let rowToFilter = '';
switch (this.selFilterBy) {
case 'all':
rowToFilter = (rowData.creation_date ? this.datePipe.transform(new Date(rowData.creation_date * 1000), 'dd/MMM/YYYY HH:mm')?.toLowerCase() : '')! +
(rowData.settle_date ? this.datePipe.transform(new Date(rowData.settle_date * 1000), 'dd/MMM/YYYY HH:mm')?.toLowerCase() : '') + JSON.stringify(rowData).toLowerCase();
break;
case 'creation_date':
case 'settle_date':
rowToFilter = this.datePipe.transform(new Date((rowData[this.selFilterBy] || 0) * 1000), 'dd/MMM/YYYY HH:mm')?.toLowerCase() || '';
break;
case 'private':
rowToFilter = rowData?.private ? 'private' : 'public';
break;
// case '':
// rowToFilter = rowData?..toLowerCase() || '';
// break;
case 'is_keysend':
rowToFilter = rowData?.is_keysend ? 'keysend invoices' : 'non keysend invoices';
break;
// default:
// rowToFilter = typeof rowData[this.selFilterBy] === 'string' ? rowData[this.selFilterBy].toLowerCase() : typeof rowData[this.selFilterBy] === 'boolean' ? (rowData[this.selFilterBy] ? 'yes' : 'no') : rowData[this.selFilterBy].toString();
// break;
// }
// return rowToFilter.includes(fltr);
// };
case 'is_amp':
rowToFilter = rowData?.is_amp ? 'atomic multi path payment' : 'non atomic payment';
break;
default:
rowToFilter = typeof rowData[this.selFilterBy] === 'string' ? rowData[this.selFilterBy].toLowerCase() : typeof rowData[this.selFilterBy] === 'boolean' ? (rowData[this.selFilterBy] ? 'yes' : 'no') : rowData[this.selFilterBy].toString();
break;
}
return (this.selFilterBy === 'is_keysend' || this.selFilterBy === 'is_amp') ? rowToFilter.indexOf(fltr) === 0 : rowToFilter.includes(fltr);
};
}
loadInvoicesTable(invoices) {

@ -441,36 +441,34 @@ export class LightningPaymentsComponent implements OnInit, AfterViewInit, OnDest
setFilterPredicate() {
this.payments.filterPredicate = (rowData: Payment, fltr: string) => {
const rowToFilter = ((rowData.creation_date) ? this.datePipe.transform(new Date(rowData.creation_date * 1000), 'dd/MMM/YYYY HH:mm')?.toLowerCase() : '') + JSON.stringify(rowData).toLowerCase();
let rowToFilter = '';
switch (this.selFilterBy) {
case 'all':
rowToFilter = ((rowData.creation_date) ? this.datePipe.transform(new Date(rowData.creation_date * 1000), 'dd/MMM/YYYY HH:mm')?.toLowerCase() : '') + JSON.stringify(rowData).toLowerCase();
break;
case 'status':
rowToFilter = rowData?.status === 'SUCCEEDED' ? 'succeeded' : 'failed';
break;
case 'creation_date':
rowToFilter = this.datePipe.transform(new Date((rowData[this.selFilterBy] || 0) * 1000), 'dd/MMM/YYYY HH:mm')?.toLowerCase() || '';
break;
case 'failure_reason':
rowToFilter = this.camelCaseWithReplace.transform((rowData.failure_reason || ''), 'failure_reason', '_');
break;
case 'hops':
rowToFilter = rowData.htlcs && rowData.htlcs[0] && rowData.htlcs[0].route && rowData.htlcs[0].route.hops && rowData.htlcs[0].route.hops.length ? rowData.htlcs[0].route.hops.length.toString() : '0';
break;
default:
rowToFilter = typeof rowData[this.selFilterBy] === 'string' ? rowData[this.selFilterBy].toLowerCase() : typeof rowData[this.selFilterBy] === 'boolean' ? (rowData[this.selFilterBy] ? 'yes' : 'no') : rowData[this.selFilterBy].toString();
break;
}
return rowToFilter.includes(fltr);
};
// this.channels.filterPredicate = (rowData: Channel, fltr: string) => {
// let rowToFilter = '';
// switch (this.selFilterBy) {
// case 'all':
// for (let i = 0; i < this.displayedColumns.length - 1; i++) {
// rowToFilter = rowToFilter + (
// (this.displayedColumns[i] === '') ?
// (rowData ? rowData..toLowerCase() : '') :
// (rowData[this.displayedColumns[i]] ? rowData[this.displayedColumns[i]].toLowerCase() : '')
// ) + ', ';
// }
// break;
// case 'status':
// rowToFilter = rowData?.status === 'SUCCEEDED' ? 'succeeded' : 'failed';
// break;
// case '':
// rowToFilter = rowData?..toLowerCase() || '';
// break;
// default:
// rowToFilter = typeof rowData[this.selFilterBy] === 'string' ? rowData[this.selFilterBy].toLowerCase() : typeof rowData[this.selFilterBy] === 'boolean' ? (rowData[this.selFilterBy] ? 'yes' : 'no') : rowData[this.selFilterBy].toString();
// break;
// }
// return rowToFilter.includes(fltr);
// };
}
loadPaymentsTable(payms) {

@ -968,7 +968,7 @@ export const LND_PAGE_DEFS: LNDPageDefinitions = {
open: {
maxColumns: 8,
allowedColumns: [{ column:'remote_alias', label: 'Peer' }, { column:'remote_pubkey', label: 'Pubkey' }, { column:'channel_point' }, { column:'chan_id', label: 'Channel ID' }, { column:'initiator' },
{ column:'static_remote_key' }, { column:'uptime' }, { column:'lifetime' }, { column:'commit_fee' }, { column:'commit_weight' }, { column:'fee_per_kw', label: 'Fee/KW' },
{ column:'static_remote_key' }, { column:'uptime_str', label: 'Uptime' }, { column:'lifetime_str', label: 'Lifetime' }, { column:'commit_fee' }, { column:'commit_weight' }, { column:'fee_per_kw', label: 'Fee/KW' },
{ column:'num_updates', label: 'Updates' }, { column:'unsettled_balance' }, { column:'capacity' }, { column:'local_chan_reserve_sat', label: 'Local Reserve' },
{ column:'remote_chan_reserve_sat', label: 'Remote Reserve' }, { column:'total_satoshis_sent', label: 'Sats Sent' }, { column:'total_satoshis_received', label: 'Sats Received' }, { column:'local_balance' },
{ column:'remote_balance' }, { column:'balancedness', label: 'Balance Score' }]
@ -1025,7 +1025,7 @@ export const LND_PAGE_DEFS: LNDPageDefinitions = {
},
invoices: {
maxColumns: 9,
allowedColumns: [{ column:'private' }, { column:'is_keysend' }, { column:'is_amp' }, { column:'creation_date', label: 'Date Created' }, { column:'settle_date', label: 'Date Settled' },
allowedColumns: [{ column:'private' }, { column:'is_keysend', label: 'Keysend' }, { column:'is_amp', label: 'AMP' }, { column:'creation_date', label: 'Date Created' }, { column:'settle_date', label: 'Date Settled' },
{ column:'memo' }, { column:'r_preimage', label: 'Preimage' }, { column:'r_hash', label: 'Preimage Hash' }, { column:'payment_addr', label: 'Payment Address' }, { column:'payment_request' }, { column:'description_hash' },
{ column:'expiry' }, { column:'cltv_expiry' }, { column:'add_index' }, { column:'settle_index' }, { column:'value', label: 'Amount' }, { column:'amt_paid_sat', label: 'Amount Settled' }]
}
@ -1042,8 +1042,8 @@ export const LND_PAGE_DEFS: LNDPageDefinitions = {
},
non_routing_peers: {
maxColumns: 8,
allowedColumns: [{ column:'chan_id', label: 'Channel ID' }, { column:'remote_alias', label: 'Peer Alias' }, { column:'remote_pubkey', label: 'Peer Pubkey' }, { column:'channel_point' }, { column:'uptime' },
{ column:'lifetime' }, { column:'commit_fee' }, { column:'commit_weight' }, { column:'fee_per_kw', label: 'Fee/KW' }, { column:'num_updates', label: 'Updates' },
allowedColumns: [{ column:'chan_id', label: 'Channel ID' }, { column:'remote_alias', label: 'Peer Alias' }, { column:'remote_pubkey', label: 'Peer Pubkey' }, { column:'channel_point' }, { column:'uptime_str', label: 'Uptime' },
{ column:'lifetime_str', label: 'Lifetime' }, { column:'commit_fee' }, { column:'commit_weight' }, { column:'fee_per_kw', label: 'Fee/KW' }, { column:'num_updates', label: 'Updates' },
{ column:'unsettled_balance' }, { column:'capacity' }, { column:'local_chan_reserve_sat', label: 'Local Reserve' }, { column:'remote_chan_reserve_sat', label: 'Remote Reserve' },
{ column:'total_satoshis_sent', label: 'Sats Sent' }, { column:'total_satoshis_received', label: 'Sats Received' }, { column:'local_balance' }, { column:'remote_balance' }]
}

Loading…
Cancel
Save