You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
114 lines
9.3 KiB
HTML
114 lines
9.3 KiB
HTML
<div fxLayout="column" *ngIf="selNode?.userPersona === userPersonaEnum.OPERATOR; else merchantDashboard">
|
|
<div fxLayout="row" fxLayoutAlign="start start" class="page-title-container mb-0">
|
|
<fa-icon [icon]="apiCallStatusNodeInfo.status === apiCallStatusEnum.ERROR ? faFrown : faSmile" class="page-title-img mr-1"></fa-icon>
|
|
<span class="page-title">{{apiCallStatusNodeInfo.status === apiCallStatusEnum.COMPLETED ? 'Welcome ' + information.alias + '! Your node is up and running.' : apiCallStatusNodeInfo.status === apiCallStatusEnum.INITIATED ? 'Wait! Getting your node information...' : 'Error! Please check the server connection.'}}</span>
|
|
</div>
|
|
<mat-grid-list cols="10" [rowHeight]="operatorCardHeight">
|
|
<mat-grid-tile *ngFor="let card of operatorCards" [colspan]="card.cols" [rowspan]="card.rows">
|
|
<mat-card fxFlex="100" fxLayout="column" fxLayoutAlign="start stretch" class="h-100 dashboard-card mt-4">
|
|
<mat-card-header>
|
|
<mat-card-title fxLayoutAlign="space-between center">
|
|
<div>
|
|
<fa-icon [icon]="card.icon" class="mr-1"></fa-icon>
|
|
<span>{{card.title}}</span>
|
|
</div>
|
|
<div>
|
|
<button *ngIf="card.links[0]" mat-icon-button class="more-button" [matMenuTriggerFor]="menuOperator" aria-label="Toggle menu">
|
|
<mat-icon>more_vert</mat-icon>
|
|
</button>
|
|
<mat-menu #menuOperator="matMenu" class="dashboard-vert-menu" xPosition="before">
|
|
<button mat-menu-item *ngFor="let goToOption of card.goToOptions; index as i" (click)="onNavigateTo(card.links[i])">{{goToOption}}</button>
|
|
<button mat-menu-item *ngIf="card.id === 'capacity'" (click)="onsortChannelsBy()">Sort By {{sortField === 'Balance Score' ? 'Capacity' : 'Balance Score'}}</button>
|
|
</mat-menu>
|
|
</div>
|
|
</mat-card-title>
|
|
</mat-card-header>
|
|
<mat-card-content fxLayout="column" fxFlex="{{card.id === 'node' || card.id === 'balance' ? 70 : card.id === 'fee' || card.id === 'status' ? 78 : 90}}"
|
|
[ngClass]="{'dashboard-card-content': true,
|
|
'error-border': (card.id === 'node' && apiCallStatusNodeInfo.status === apiCallStatusEnum.ERROR) ||
|
|
(card.id === 'balance' && (apiCallStatusChannels.status === apiCallStatusEnum.ERROR || apiCallStatusBlockchainBalance.status === apiCallStatusEnum.ERROR)) ||
|
|
(card.id === 'capacity' && apiCallStatusChannels.status === apiCallStatusEnum.ERROR) ||
|
|
(card.id === 'fee' && apiCallStatusFees.status === apiCallStatusEnum.ERROR) ||
|
|
(card.id === 'status' && (apiCallStatusChannels.status === apiCallStatusEnum.ERROR || apiCallStatusPendingChannels.status === apiCallStatusEnum.ERROR))}">
|
|
<mat-progress-bar mode="indeterminate"
|
|
*ngIf="(card.id === 'node' && apiCallStatusNodeInfo.status === apiCallStatusEnum.INITIATED) ||
|
|
(card.id === 'balance' && (apiCallStatusChannels.status === apiCallStatusEnum.INITIATED || apiCallStatusBlockchainBalance.status === apiCallStatusEnum.INITIATED)) ||
|
|
(card.id === 'capacity' && apiCallStatusChannels.status === apiCallStatusEnum.INITIATED) ||
|
|
(card.id === 'fee' && apiCallStatusFees.status === apiCallStatusEnum.INITIATED) ||
|
|
(card.id === 'status' && (apiCallStatusChannels.status === apiCallStatusEnum.INITIATED || apiCallStatusPendingChannels.status === apiCallStatusEnum.INITIATED))"
|
|
></mat-progress-bar>
|
|
<div [ngSwitch]="card.id" fxLayout="column" fxFlex="100">
|
|
<rtl-node-info fxFlex="100" *ngSwitchCase="'node'" [information]="information" [showColorFieldSeparately]="false"></rtl-node-info>
|
|
<rtl-balances-info fxFlex="100" *ngSwitchCase="'balance'" [balances]="balances" [errorMessage]="errorMessages[3] + ' ' + errorMessages[2]"></rtl-balances-info>
|
|
<rtl-channel-capacity-info fxFlex="100" *ngSwitchCase="'capacity'" [sortBy]="sortField" [channelBalances]="channelBalances" [allChannels]="allChannelsCapacity" [errorMessage]="errorMessages[3]"></rtl-channel-capacity-info>
|
|
<rtl-fee-info fxFlex="100" *ngSwitchCase="'fee'" [fees]="fees" [errorMessage]="errorMessages[1]"></rtl-fee-info>
|
|
<rtl-channel-status-info fxFlex="100" *ngSwitchCase="'status'" [channelsStatus]="channelsStatus" [errorMessage]="errorMessages[3] + ' ' + errorMessages[4]"></rtl-channel-status-info>
|
|
<h3 *ngSwitchDefault>Error! Unable to find information!</h3>
|
|
</div>
|
|
</mat-card-content>
|
|
</mat-card>
|
|
</mat-grid-tile>
|
|
</mat-grid-list>
|
|
</div>
|
|
<ng-template #merchantDashboard>
|
|
<div fxLayout="row" fxLayoutAlign="start end" class="page-title-container mb-0">
|
|
<fa-icon [icon]="faSmile" class="page-title-img mr-1"></fa-icon>
|
|
<span class="page-title">Welcome {{information.alias}}! Your node is up and running.</span>
|
|
</div>
|
|
<mat-grid-list cols="6" [rowHeight]="merchantCardHeight">
|
|
<mat-grid-tile *ngFor="let card of merchantCards" [colspan]="card.cols" [rowspan]="card.rows">
|
|
<mat-card fxFlex="100" fxLayout="column" fxLayoutAlign="start stretch" class="h-100 dashboard-card mt-4" [ngClass]="{'p-0': card.id === 'transactions'}">
|
|
<mat-card-header *ngIf="card.id !== 'transactions'">
|
|
<mat-card-title fxLayoutAlign="space-between center">
|
|
<div>
|
|
<fa-icon [icon]="card.icon" class="mr-1"></fa-icon>
|
|
<span>{{card.title}}</span>
|
|
</div>
|
|
<div>
|
|
<button *ngIf="card.links[0]" mat-icon-button class="more-button" [matMenuTriggerFor]="menuMerchant" aria-label="Toggle menu">
|
|
<mat-icon>more_vert</mat-icon>
|
|
</button>
|
|
<mat-menu #menuMerchant="matMenu" class="dashboard-vert-menu" xPosition="before">
|
|
<button mat-menu-item *ngFor="let goToOption of card.goToOptions; index as i" (click)="onNavigateTo(card.links[i])">{{goToOption}}</button>
|
|
</mat-menu>
|
|
</div>
|
|
</mat-card-title>
|
|
</mat-card-header>
|
|
<mat-card-content fxLayout="column" fxLayoutAlign="start stretch" fxFlex="{{card.id === 'transactions' ? 100 : card.id === 'balance' ? 70: 90}}"
|
|
[ngClass]="{'dashboard-card-content': true,
|
|
'error-border': (card.id === 'node' && apiCallStatusNodeInfo.status === apiCallStatusEnum.ERROR) ||
|
|
(card.id === 'balance' && (apiCallStatusChannels.status === apiCallStatusEnum.ERROR || apiCallStatusBlockchainBalance.status === apiCallStatusEnum.ERROR)) ||
|
|
((card.id === 'inboundLiq' || card.id === 'outboundLiq') && apiCallStatusChannels.status === apiCallStatusEnum.ERROR)}">
|
|
<mat-progress-bar mode="indeterminate"
|
|
*ngIf="(card.id === 'node' && apiCallStatusNodeInfo.status === apiCallStatusEnum.INITIATED) ||
|
|
(card.id === 'balance' && (apiCallStatusChannels.status === apiCallStatusEnum.INITIATED || apiCallStatusBlockchainBalance.status === apiCallStatusEnum.INITIATED)) ||
|
|
((card.id === 'inboundLiq' || card.id === 'outboundLiq') && apiCallStatusChannels.status === apiCallStatusEnum.INITIATED)"
|
|
></mat-progress-bar>
|
|
<div [ngSwitch]="card.id" fxLayout="column" fxFlex="100" fxLayoutAlign="start stretch">
|
|
<rtl-node-info fxFlex="100" *ngSwitchCase="'node'" [information]="information"></rtl-node-info>
|
|
<rtl-balances-info fxFlex="100" *ngSwitchCase="'balance'" [balances]="balances" [errorMessage]="errorMessages[3] + ' ' + errorMessages[2]"></rtl-balances-info>
|
|
<rtl-channel-liquidity-info fxFlex="100" *ngSwitchCase="'inboundLiq'" [direction]="'In'" [totalLiquidity]="totalInboundLiquidity" [allChannels]="allInboundChannels" [errorMessage]="errorMessages[3]"></rtl-channel-liquidity-info>
|
|
<rtl-channel-liquidity-info fxFlex="100" *ngSwitchCase="'outboundLiq'" [direction]="'Out'" [totalLiquidity]="totalOutboundLiquidity" [allChannels]="allOutboundChannels" [errorMessage]="errorMessages[3]"></rtl-channel-liquidity-info>
|
|
<span [perfectScrollbar] fxLayout="column" fxFlex="100" fxLayoutAlign="start start" *ngSwitchCase="'transactions'">
|
|
<mat-tab-group fxLayout="column" fxFlex="100" class="w-100 dashboard-tabs-group">
|
|
<mat-tab label="Receive"><rtl-lightning-invoices [calledFrom]="'home'"></rtl-lightning-invoices></mat-tab>
|
|
<mat-tab label="Pay"><rtl-lightning-payments [calledFrom]="'home'"></rtl-lightning-payments></mat-tab>
|
|
<mat-tab [disabled]="true">
|
|
<ng-template mat-tab-label>
|
|
<button mat-icon-button class="more-button" [matMenuTriggerFor]="menuTransactions" aria-label="Toggle menu">
|
|
<mat-icon>more_vert</mat-icon>
|
|
</button>
|
|
<mat-menu #menuTransactions="matMenu" class="dashboard-vert-menu" xPosition="before">
|
|
<button mat-menu-item *ngFor="let goToOption of card.goToOptions; index as i" (click)="onNavigateTo(card.links[i])">{{goToOption}}</button>
|
|
</mat-menu>
|
|
</ng-template>
|
|
</mat-tab>
|
|
</mat-tab-group>
|
|
</span>
|
|
<h3 *ngSwitchDefault>Error! Unable to find information!</h3>
|
|
</div>
|
|
</mat-card-content>
|
|
</mat-card>
|
|
</mat-grid-tile>
|
|
</mat-grid-list>
|
|
</ng-template> |