Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
104 changes: 60 additions & 44 deletions src/Pages/ChannelRequests.razor
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@
@using NodeGuard.Helpers;
@attribute [Authorize(Roles = "FinanceManager, Superadmin, NodeManager")]

<PageTitle>Channel Operation Requests</PageTitle>

<PageTitle>Channel Requests</PageTitle>
<h3 class="custom-primary">Channel Requests</h3>
@if (_isFinanceManager || _isNodeManager)
{
<Field Flex="Flex.JustifyContent.Between">
Expand Down Expand Up @@ -289,38 +289,6 @@
</h3>
<br/>
<Row Class="mb-3" @key="_filtersResetKey">
<Column ColumnSize="ColumnSize.Is1">
<Field>
<FieldLabel>Status</FieldLabel>
<Autocomplete TItem="ChannelOperationRequestStatus?"
TValue="ChannelOperationRequestStatus?"
Data="@_statusOptions"
TextField="@(item => item?.Humanize() ?? "All")"
ValueField="@(item => item)"
@bind-SelectedValue="@_statusFilter"
@bind-SelectedValue:after="OnFiltersChanged"
Placeholder="All"
FreeTyping="false"
MinLength="0"
Filter="AutocompleteFilter.Contains" />
</Field>
</Column>
<Column ColumnSize="ColumnSize.Is1">
<Field>
<FieldLabel>Type</FieldLabel>
<Autocomplete TItem="OperationRequestType?"
TValue="OperationRequestType?"
Data="@_requestTypeOptions"
TextField="@(item => item?.Humanize() ?? "All")"
ValueField="@(item => item)"
@bind-SelectedValue="@_requestTypeFilter"
@bind-SelectedValue:after="OnFiltersChanged"
Placeholder="All"
FreeTyping="false"
MinLength="0"
Filter="AutocompleteFilter.Contains" />
</Field>
</Column>
<Column ColumnSize="ColumnSize.Is2">
<Field>
<FieldLabel>Source Node</FieldLabel>
Expand Down Expand Up @@ -353,7 +321,7 @@
Filter="AutocompleteFilter.Contains" />
</Field>
</Column>
<Column ColumnSize="ColumnSize.Is2">
<Column ColumnSize="ColumnSize.Is1">
<Field>
<FieldLabel>Wallet</FieldLabel>
<Autocomplete TItem="Wallet"
Expand All @@ -371,7 +339,7 @@
</Column>
<Column ColumnSize="ColumnSize.Is1">
<Field>
<FieldLabel>User</FieldLabel>
<FieldLabel>Requestor</FieldLabel>
<Autocomplete TItem="ApplicationUser"
TValue="string?"
Data="@_availableUsers"
Expand All @@ -385,6 +353,38 @@
Filter="AutocompleteFilter.Contains" />
</Field>
</Column>
<Column ColumnSize="ColumnSize.Is2">
<Field>
<FieldLabel>Status</FieldLabel>
<Autocomplete TItem="ChannelOperationRequestStatus?"
TValue="ChannelOperationRequestStatus?"
Data="@_statusOptions"
TextField="@(item => item?.Humanize() ?? "All")"
ValueField="@(item => item)"
@bind-SelectedValue="@_statusFilter"
@bind-SelectedValue:after="OnFiltersChanged"
Placeholder="All"
FreeTyping="false"
MinLength="0"
Filter="AutocompleteFilter.Contains" />
</Field>
</Column>
<Column ColumnSize="ColumnSize.Is1">
<Field>
<FieldLabel>Type</FieldLabel>
<Autocomplete TItem="OperationRequestType?"
TValue="OperationRequestType?"
Data="@_requestTypeOptions"
TextField="@(item => item?.Humanize() ?? "All")"
ValueField="@(item => item)"
@bind-SelectedValue="@_requestTypeFilter"
@bind-SelectedValue:after="OnFiltersChanged"
Placeholder="All"
FreeTyping="false"
MinLength="0"
Filter="AutocompleteFilter.Contains" />
</Field>
</Column>
<Column ColumnSize="ColumnSize.Is1">
<Field>
<FieldLabel>From</FieldLabel>
Expand All @@ -403,15 +403,18 @@
</Button>
</Column>
</Row>
@* TODO: Convert this grid to paginated ReadData to avoid loading all records in memory. *@
<DataGrid TItem="ChannelOperationRequest"
@ref="@_allRequestsDatagrid"
Data="@_allRequests"
ReadData="@OnAllRequestsReadData"
TotalItems="@_totalAllRequests"
Responsive="true"
ResizeMode="TableResizeMode.Columns"
ShowPager="true"
ShowPageSizes="true"
Striped="true">
Striped="true"
Narrow="true"
PageSize="@_allRequestsPageSize">
<ChildContent>
<DataGridColumn TItem="ChannelOperationRequest" Field="@nameof(ChannelOperationRequest.Id)" Caption="#" Sortable="false" Displayable="true"/>
<DataGridColumn TItem="ChannelOperationRequest" Field="SourceNode.Name" Caption="Source Node" Sortable="false" Displayable="@IsAllRequestsColumnVisible(AllChannelsColumnName.SourceNode)"/>
Expand All @@ -430,7 +433,7 @@
}
</DisplayTemplate>
</DataGridColumn>
<DataGridColumn TItem="ChannelOperationRequest" Field="Wallet.Name" Caption="Source of Funds" Sortable="false" Displayable="@IsAllRequestsColumnVisible(AllChannelsColumnName.SourceOfFunds)"/>
<DataGridColumn TItem="ChannelOperationRequest" Field="Wallet.Name" Caption="Wallet" Sortable="false" Displayable="@IsAllRequestsColumnVisible(AllChannelsColumnName.SourceOfFunds)"/>
<DataGridColumn TItem="ChannelOperationRequest" Field="@nameof(ChannelOperationRequest.Amount)" Caption="Capacity" Sortable="false" Displayable="@IsAllRequestsColumnVisible(AllChannelsColumnName.Capacity)">
<DisplayTemplate>
@{
Expand Down Expand Up @@ -532,7 +535,7 @@
TemplatePsbtString="@_templatePSBTString"
SignedPSBT="@_psbt"/>

<CancelOrRejectPopup

Check warning on line 538 in src/Pages/ChannelRequests.razor

View workflow job for this annotation

GitHub Actions / build-and-test

Component 'CancelOrRejectPopup' expects a value for the parameter 'Reason', but a value may not have been provided.
@ref=@_rejectCancelModalRef
Title='@(_selectedStatusActionString + " operation: " + _selectedRequest?.Id)'
Validator="@RejectReasonValidator"
Expand Down Expand Up @@ -577,8 +580,9 @@

@code {
private List<ChannelOperationRequest>? _channelRequests;
private List<ChannelOperationRequest>? _allRequests;
private List<ChannelOperationRequest> _allRequests = new();
private int _totalAllRequests;
private const int _allRequestsPageSize = 25;
private List<ApplicationUser> _availableUsers = new();
private List<Node> _availableNodes = new();

Expand Down Expand Up @@ -748,8 +752,6 @@
{
if (LoggedUser == null) return;

_allRequests = await ChannelOperationRequestRepository.GetAll();

if (_isFinanceManager)
{
_channelRequests = await ChannelOperationRequestRepository.GetUnsignedPendingRequestsByUser(LoggedUser.Id);
Expand All @@ -758,7 +760,10 @@
{
_channelRequests = await ChannelOperationRequestRepository.GetPendingRequests();
}
_allRequests = _allRequests.Except(_channelRequests ?? new List<ChannelOperationRequest>()).ToList();
else
{
_channelRequests = new();
}
}

#region New Request Integration
Expand Down Expand Up @@ -895,6 +900,7 @@
}
await LoadData();
await FetchRequests();
await ReloadAllRequestsGrid();
}

#endregion
Expand Down Expand Up @@ -954,6 +960,7 @@
_selectedRequest.Id.ToString(),
new { RequestId = _selectedRequest.Id, Status = _selectedStatus, Reason = _selectedRequest.ClosingReason, Description = $"Channel operation request {_selectedStatus.ToString().ToLower()}" });
await FetchRequests();
await ReloadAllRequestsGrid();
}
}
else
Expand Down Expand Up @@ -1046,6 +1053,7 @@
}

await FetchRequests();
await ReloadAllRequestsGrid();
await _psbtSignRef.HideModal();
StateHasChanged();
}
Expand Down Expand Up @@ -1118,6 +1126,7 @@
_utxoSelectorModalRef.ClearModal();
await _approveOperationConfirmationModal.CloseModal();
await FetchRequests();
await ReloadAllRequestsGrid();
StateHasChanged();
return;
}
Expand All @@ -1137,6 +1146,7 @@


await FetchRequests();
await ReloadAllRequestsGrid();
_utxoSelectorModalRef.ClearModal();
await _approveOperationConfirmationModal.CloseModal();
}
Expand Down Expand Up @@ -1206,6 +1216,7 @@
{
await MarkRequestAsFailedCloseConfirmationModal();
await FetchRequests();
await ReloadAllRequestsGrid();
}
}

Expand Down Expand Up @@ -1280,11 +1291,16 @@
private async Task RefreshChannelRequestsInformation()
{
await FetchRequests();
await ReloadAllRequestsGrid();
StateHasChanged();
}

private async Task ReloadAllRequestsGrid()
{
if (_allRequestsDatagrid != null)
{
await _allRequestsDatagrid.Reload();
}
StateHasChanged();
}

private async Task OnAllRequestsReadData(DataGridReadDataEventArgs<ChannelOperationRequest> e)
Expand Down
4 changes: 2 additions & 2 deletions src/Pages/Withdrawals.razor
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
@if (_isFinanceManager)
{
<Column ColumnSize="ColumnSize.Is12">
<h3>Withdrawal requests awaiting my signature</h3>
<h3>Requests awaiting my signature</h3>
@* TODO: Convert this grid to paginated ReadData to avoid loading all records in memory. *@
<DataGrid TItem="WalletWithdrawalRequest"
Data="@_userPendingRequests"
Expand Down Expand Up @@ -274,7 +274,7 @@
}

<Column ColumnSize="ColumnSize.Is12">
<h3>Withdrawal requests</h3>
<h3>Requests</h3>
<Row Class="mb-3" @key="_filtersResetKey">
<Column ColumnSize="ColumnSize.Is2">
<Field>
Expand Down
Loading