btcpayserver/BTCPayServer/Views/Stores/Webhooks.cshtml
Umar Bolatov 861e5b1530
Add webhook delivery status indicator (#2679)
* Add webhook delivery status indicator

As discussed in: https://github.com/btcpayserver/btcpayserver/discussions/2616

* Add relative delivery time to tooltips
2021-07-12 21:58:11 +09:00

69 lines
2.8 KiB
Text

@model WebhooksViewModel
@{
Layout = "../Shared/_NavLayout.cshtml";
ViewData.SetActivePageAndTitle(StoreNavPages.Webhooks, "Webhooks", Context.GetStoreData().StoreName);
}
<div class="d-flex align-items-center justify-content-between mb-3">
<h4 class="mb-0">@ViewData["PageTitle"]</h4>
<a id="CreateWebhook" asp-action="NewWebhook" class="btn btn-primary" role="button" asp-route-storeId="@Context.GetRouteValue("storeId")">
<span class="fa fa-plus"></span>
Create a new webhook
</a>
</div>
<p>Webhooks allow BTCPay Server to send HTTP events related to your store to another server.</p>
@if (Model.Webhooks.Any())
{
<table class="table table-sm table-responsive-md">
<thead>
<tr>
<th>Status</th>
<th>Url</th>
<th class="text-end">Actions</th>
</tr>
</thead>
<tbody>
@foreach (var wh in Model.Webhooks)
{
<tr>
<td class="align-baseline">
@if (wh.LastDeliverySuccessful)
{
<span
class="fa fa-check text-success"
id="delivery-status-icon"
data-bs-toggle="tooltip"
title="@(wh.LastDeliveryTimeStamp == null ? "No deliveries for this webhook yet" : "Last delivery " + @wh.LastDeliveryTimeStamp?.ToTimeAgo())"></span>
}
else
{
<span
class="fa fa-times text-danger"
id="delivery-status-icon"
data-bs-toggle="tooltip"
data-bs-html="true"
title="Error: @wh.LastDeliveryErrorMessage. <br/> Delivery last attempted <span id='last-delivery-time'>@wh.LastDeliveryTimeStamp?.ToTimeAgo()</span>"></span>
}
</td>
<td class="d-block text-break">@wh.Url</td>
<td class="text-end text-md-nowrap">
<a asp-action="TestWebhook" asp-route-storeId="@this.Context.GetRouteValue("storeId")" asp-route-webhookId="@wh.Id">Test</a> -
<a asp-action="ModifyWebhook" asp-route-storeId="@this.Context.GetRouteValue("storeId")" asp-route-webhookId="@wh.Id">Modify</a> -
<a asp-action="DeleteWebhook" asp-route-storeId="@this.Context.GetRouteValue("storeId")" asp-route-webhookId="@wh.Id">Delete</a>
</td>
</tr>
}
</tbody>
</table>
}
else
{
<p class="text-secondary mt-3">
There are no webhooks yet.
</p>
}
@section PageFootContent {
<partial name="_ValidationScriptsPartial" />
}