Implement label filter

This commit is contained in:
nicolas.dorier 2019-08-03 23:10:45 +09:00
parent 8e58fc128d
commit 4e53f59a9c
No known key found for this signature in database
GPG key ID: 6618763EF09186FE
2 changed files with 5 additions and 3 deletions

View file

@ -227,7 +227,7 @@ namespace BTCPayServer.Controllers
[Route("{walletId}")] [Route("{walletId}")]
public async Task<IActionResult> WalletTransactions( public async Task<IActionResult> WalletTransactions(
[ModelBinder(typeof(WalletIdModelBinder))] [ModelBinder(typeof(WalletIdModelBinder))]
WalletId walletId) WalletId walletId, string labelFilter = null)
{ {
DerivationSchemeSettings paymentMethod = await GetDerivationSchemeSettings(walletId); DerivationSchemeSettings paymentMethod = await GetDerivationSchemeSettings(walletId);
if (paymentMethod == null) if (paymentMethod == null)
@ -243,7 +243,6 @@ namespace BTCPayServer.Controllers
foreach (var tx in transactions.UnconfirmedTransactions.Transactions.Concat(transactions.ConfirmedTransactions.Transactions).ToArray()) foreach (var tx in transactions.UnconfirmedTransactions.Transactions.Concat(transactions.ConfirmedTransactions.Transactions).ToArray())
{ {
var vm = new ListTransactionsViewModel.TransactionViewModel(); var vm = new ListTransactionsViewModel.TransactionViewModel();
model.Transactions.Add(vm);
vm.Id = tx.TransactionId.ToString(); vm.Id = tx.TransactionId.ToString();
vm.Link = string.Format(CultureInfo.InvariantCulture, paymentMethod.Network.BlockExplorerLink, vm.Id); vm.Link = string.Format(CultureInfo.InvariantCulture, paymentMethod.Network.BlockExplorerLink, vm.Id);
vm.Timestamp = tx.Timestamp; vm.Timestamp = tx.Timestamp;
@ -258,6 +257,9 @@ namespace BTCPayServer.Controllers
model.Labels.AddRange(labels); model.Labels.AddRange(labels);
vm.Comment = transactionInfo.Comment; vm.Comment = transactionInfo.Comment;
} }
if (labelFilter == null || vm.Labels.Any(l => l.Value.Equals(labelFilter, StringComparison.OrdinalIgnoreCase)))
model.Transactions.Add(vm);
} }
model.Transactions = model.Transactions.OrderByDescending(t => t.Timestamp).ToList(); model.Transactions = model.Transactions.OrderByDescending(t => t.Timestamp).ToList();
return View(model); return View(model);

View file

@ -64,7 +64,7 @@
<td style="text-align:left"> <td style="text-align:left">
@foreach (var label in transaction.Labels) @foreach (var label in transaction.Labels)
{ {
<span class="badge" style="display:block;background-color:@label.Color;color:white;">@label.Value</span> <a asp-route-labelFilter="@label.Value"><span class="badge" style="display:block;background-color:@label.Color;color:white;">@label.Value</span></a>
} }
</td> </td>
<td class="smMaxWidth text-truncate"> <td class="smMaxWidth text-truncate">