mirror of
https://github.com/btcpayserver/btcpayserver.git
synced 2024-11-20 10:40:29 +01:00
ed7031981b
* Swap bootstrap asset files * Update themes and color definitions * Move general bootstrap customizations * Theme updates Theme updates * Remove BuildBundlerMinifier This lead to an error, because BuildBundlerMinifier and BundlerMinifier.Core seem to conflict here. Details: https://stackoverflow.com/a/61119586 * Rewplace btn-block class with w-100 * Update badge classes * Remove old font family head variable * Update margin classes * Cleanups * Update float classes * Update text classes * Update padding classes * Update border classes * UPdate dropdown classes * Update select classes * Update neutral custom props * Update bootstrap and customizations * Update ChromeDriver; disable smooth scroll https://github.com/SeleniumHQ/selenium/issues/8295 * Improve alert messages * Improve bootstrap customizations * Disable reduced motion See also 7358282f * Update Bootstrap data attributes * Update file inputs * Update input groups * Replace deprecated jumbotron class * Update variables; re-add negative margin util classes * Update cards * Update form labels * Debug alerts * Fix aria-labelledby associations * Dropdown-related test fixes * Fix CanUseWebhooks test * Test fixes * Nav updates * Fix nav usage in wallet send and payouts * Update alert and modal close buttons * Re-add backdrop properties * Upgrade Bootstrap to v5 final * Update screen reader classes * Update font-weight classes * Update monospace font classes * Update accordians * Update close icon usage * Cleanup * Update scripts and style integrations * Update input group texts * Update LN node setup page * Update more form control classes * Update inline forms * Add js specific test * Upgrade Vue.js * Remove unused JS * Upgrade Bootstrap to v5.0.1 * Try container related test updates * Separate jQuery bundle * Remove jQuery from LND seed backup page * Remove unused code * Refactor email autofill js * Refactor camera scanner JS * Re-add tests * Re-add BuildBundlerMinifier * Do not minify bundles containing Bootstrap Details https://github.com/madskristensen/BundlerMinifier/issues/558 * Update bundles * Cleanup JS test * Cleanup tests involving dropdowns * Cleanup tests involving collapses * Cleanup locale additions in ConfigureCore * Cleanup bundles * Remove duplicate status message * Cleanup formatting * Fix missing validation scripts * Remove unused unminified Bootstrap js files * Fix classic theme * Fix Casa theme * Fix PoS validation
227 lines
11 KiB
Plaintext
227 lines
11 KiB
Plaintext
@model ListTransactionsViewModel
|
|
@{
|
|
Layout = "../Shared/_NavLayout.cshtml";
|
|
ViewData.SetActivePageAndTitle(WalletsNavPages.Transactions, $"{Model.CryptoCode} Transactions", Context.GetStoreData().StoreName);
|
|
}
|
|
<style type="text/css">
|
|
.smMaxWidth {
|
|
max-width: 200px;
|
|
}
|
|
|
|
@@media (min-width: 768px) {
|
|
.smMaxWidth {
|
|
max-width: 400px;
|
|
}
|
|
}
|
|
|
|
.unconf > * {
|
|
opacity: 0.5;
|
|
}
|
|
|
|
.switchTimeFormat {
|
|
display: block;
|
|
max-width: 150px;
|
|
width: 150px;
|
|
overflow: hidden;
|
|
white-space: nowrap;
|
|
text-overflow: ellipsis;
|
|
}
|
|
|
|
.badge-container:not(:last-child) {
|
|
margin-bottom: 4px;
|
|
}
|
|
|
|
.badge-container {
|
|
display: flex;
|
|
align-items: center;
|
|
flex-wrap: nowrap;
|
|
}
|
|
|
|
.removeTransactionLabelForm {
|
|
display: inline;
|
|
position: absolute;
|
|
right: 4px;
|
|
}
|
|
|
|
.removeTransactionLabelForm button {
|
|
cursor: pointer;
|
|
display: inline;
|
|
padding: 0;
|
|
background-color: transparent;
|
|
border: 0;
|
|
}
|
|
|
|
.transaction-details-icon {
|
|
position: relative;
|
|
padding-left: 12px;
|
|
left: -8px;
|
|
}
|
|
</style>
|
|
|
|
<h4 class="mb-3">@ViewData["PageTitle"]</h4>
|
|
<p>
|
|
If BTCPay Server shows you an invalid balance, <a asp-action="WalletRescan" asp-route-walletId="@Context.GetRouteValue("walletId")">rescan your wallet</a>.
|
|
<br/>
|
|
If some transactions appear in BTCPay Server, but are missing in another wallet, <a href="https://docs.btcpayserver.org/FAQ/FAQ-Wallet/#missing-payments-in-my-software-or-hardware-wallet">follow these instructions</a>.
|
|
</p>
|
|
|
|
@if (Model.Transactions.Any())
|
|
{
|
|
@if (Model.Labels.Any())
|
|
{
|
|
<div class="row mt-4">
|
|
<div class="col-md-12">
|
|
<div class="d-flex flex-row align-items-start flex-wrap card card-body p-2">
|
|
<span class="me-2">Filter by label:</span>
|
|
@foreach (var label in Model.Labels)
|
|
{
|
|
<a asp-route-labelFilter="@label.Text" class="badge me-2 my-1 position-relative text-white d-block"
|
|
style="background-color: @label.Color;"><span class="text-white">@label.Text</span></a>
|
|
}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
}
|
|
<div class="row">
|
|
<div class="col-md-12">
|
|
<table class="table table-sm table-responsive-lg">
|
|
<thead class="thead-inverse">
|
|
<tr>
|
|
<th style="min-width: 90px;" class="col-md-auto">
|
|
Date
|
|
<a href="javascript:switchTimeFormat()">
|
|
<span class="fa fa-clock-o" title="Switch date format"></span>
|
|
</a>
|
|
</th>
|
|
<th class="text-start">Label</th>
|
|
<th>Transaction Id</th>
|
|
<th class="text-end">Amount</th>
|
|
<th class="text-end"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
@foreach (var transaction in Model.Transactions)
|
|
{
|
|
<tr>
|
|
<td>
|
|
<span class="switchTimeFormat" data-switch="@transaction.Timestamp.ToTimeAgo()">
|
|
@transaction.Timestamp.ToBrowserDate()
|
|
</span>
|
|
</td>
|
|
<td class="text-start">
|
|
@foreach (var label in transaction.Labels)
|
|
{
|
|
<div class="badge-container">
|
|
<div
|
|
class="badge transactionLabel position-relative text-white d-block"
|
|
style="background-color: @label.Color; padding-right: 16px; z-index: 1;"
|
|
data-bs-toggle="tooltip"
|
|
title="@label.Tooltip">
|
|
<a asp-route-labelFilter="@label.Text" class="text-white">@label.Text</a>
|
|
|
|
<form
|
|
asp-route-walletId="@Context.GetRouteValue("walletId")"
|
|
asp-action="ModifyTransaction"
|
|
method="post"
|
|
class="removeTransactionLabelForm">
|
|
<input type="hidden" name="transactionId" value="@transaction.Id"/>
|
|
<button
|
|
name="removelabel"
|
|
style="color: @label.Color; filter: brightness(0.5);"
|
|
type="submit"
|
|
value="@label.Text">
|
|
<span class="fa fa-close"></span>
|
|
</button>
|
|
</form>
|
|
</div>
|
|
@if (!string.IsNullOrEmpty(label.Link))
|
|
{
|
|
<a href="@label.Link" target="_blank" class="badge transaction-details-icon" style="background-color: @label.Color; filter: brightness(1.1);">
|
|
<span class="fa fa-info-circle" title="Transaction details" style="color: @label.Color; filter: brightness(0.5);">
|
|
<span class="visually-hidden">Transaction details</span>
|
|
</span>
|
|
</a>
|
|
}
|
|
</div>
|
|
}
|
|
</td>
|
|
<td class="smMaxWidth text-truncate @(transaction.IsConfirmed ? "" : "unconf")">
|
|
<a href="@transaction.Link" target="_blank">
|
|
@transaction.Id
|
|
</a>
|
|
</td>
|
|
@if (transaction.Positive)
|
|
{
|
|
<td class="text-end text-success">@transaction.Balance</td>
|
|
}
|
|
else
|
|
{
|
|
<td class="text-end text-danger">@transaction.Balance</td>
|
|
}
|
|
<td class="text-end">
|
|
<div class="dropstart d-inline-block">
|
|
<span class="fa fa-tags cursor-pointer" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false"></span>
|
|
<div class="dropdown-menu">
|
|
<form asp-action="ModifyTransaction" method="post"
|
|
asp-route-walletId="@Context.GetRouteValue("walletId")">
|
|
<input type="hidden" name="transactionId" value="@transaction.Id"/>
|
|
<div class="input-group p-2">
|
|
<input name="addlabel" placeholder="Label name" maxlength="20" type="text" class="form-control form-control-sm"/>
|
|
<button type="submit" class="btn btn-primary btn-sm"><span class="fa fa-plus"></span></button>
|
|
</div>
|
|
@if (Model.Labels.Count > 0)
|
|
{
|
|
<div class="dropdown-divider"></div>
|
|
@foreach (var label in Model.Labels)
|
|
{
|
|
@if (transaction.Labels.Contains(label))
|
|
{
|
|
<button name="removelabel" class="btn btn-sm" type="submit" value="@label.Text"><span class="badge" style="display:block;background-color:@label.Color;color:white;text-align:left;"><span class="fa fa-check"></span> @label.Text</span></button>
|
|
}
|
|
else
|
|
{
|
|
<button name="addlabelclick" class="btn btn-sm" type="submit" value="@label.Text"><span class="badge" style="display:block;background-color:@label.Color;color:white;text-align:left;">@label.Text</span></button>
|
|
}
|
|
}
|
|
}
|
|
</form>
|
|
</div>
|
|
</div>
|
|
<div class="dropstart d-inline-block">
|
|
@if (string.IsNullOrEmpty(transaction.Comment))
|
|
{
|
|
<span class="fa fa-comment cursor-pointer" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false"></span>
|
|
}
|
|
else
|
|
{
|
|
<span class="fa fa-commenting cursor-pointer" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false"></span>
|
|
}
|
|
<div class="dropdown-menu">
|
|
<form asp-action="ModifyTransaction" method="post"
|
|
asp-route-walletId="@Context.GetRouteValue("walletId")">
|
|
<input type="hidden" name="transactionId" value="@transaction.Id"/>
|
|
<div class="input-group p-2">
|
|
<textarea name="addcomment" maxlength="200" rows="2" cols="20" class="form-control form-control-sm">@transaction.Comment</textarea>
|
|
</div>
|
|
<div class="p-2">
|
|
<button type="submit" class="btn btn-primary">Save comment</button>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
}
|
|
</tbody>
|
|
</table>
|
|
<vc:pager view-model="Model"/>
|
|
</div>
|
|
</div>
|
|
}
|
|
else
|
|
{
|
|
<p class="text-secondary mt-3">
|
|
There are no transactions yet.
|
|
</p>
|
|
}
|