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

View file

@ -64,7 +64,7 @@
<td style="text-align:left">
@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 class="smMaxWidth text-truncate">