Files
PowderCoatingLogix/src/PowderCoating.Web/Views/StripeEvents/Details.cshtml
T
2026-04-23 21:38:24 -04:00

92 lines
3.7 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
@using PowderCoating.Core.Entities
@model StripeWebhookEvent
@{
ViewData["Title"] = $"Webhook Event {Model.EventId}";
var statusClass = Model.Status switch
{
StripeWebhookEventStatus.Processed => "success",
StripeWebhookEventStatus.Failed => "danger",
StripeWebhookEventStatus.Ignored => "secondary",
_ => "warning"
};
}
<div class="container-fluid py-3" style="max-width:960px">
<div class="d-flex align-items-center gap-3 mb-3">
<a asp-action="Index" class="btn btn-outline-secondary btn-sm">
<i class="bi bi-arrow-left me-1"></i>Back
</a>
<h4 class="mb-0">
<i class="bi bi-stripe me-2 text-primary"></i>Webhook Event
</h4>
<span class="badge bg-@statusClass fs-6">@Model.Status</span>
</div>
<div class="row g-3 mb-3">
<div class="col-md-6">
<div class="card shadow-sm h-100">
<div class="card-header fw-semibold py-2">Event Details</div>
<div class="card-body">
<dl class="row mb-0 small">
<dt class="col-5 text-muted">Event ID</dt>
<dd class="col-7 font-monospace">@Model.EventId</dd>
<dt class="col-5 text-muted">Type</dt>
<dd class="col-7"><span class="badge bg-light text-dark border">@Model.EventType</span></dd>
<dt class="col-5 text-muted">Company ID</dt>
<dd class="col-7">@(Model.CompanyId.HasValue ? Model.CompanyId.ToString() : "—")</dd>
<dt class="col-5 text-muted">Status</dt>
<dd class="col-7"><span class="badge bg-@statusClass">@Model.Status</span></dd>
<dt class="col-5 text-muted">Received At</dt>
<dd class="col-7">@Model.ReceivedAt.ToString("MM/dd/yyyy HH:mm:ss") UTC</dd>
<dt class="col-5 text-muted">Processed At</dt>
<dd class="col-7">@(Model.ProcessedAt.HasValue ? Model.ProcessedAt.Value.ToString("MM/dd/yyyy HH:mm:ss") + " UTC" : "—")</dd>
</dl>
</div>
</div>
</div>
@if (!string.IsNullOrEmpty(Model.ErrorMessage))
{
<div class="col-md-6">
<div class="card shadow-sm h-100 border-danger">
<div class="card-header fw-semibold py-2 text-danger">
<i class="bi bi-exclamation-triangle me-1"></i>Error
</div>
<div class="card-body">
<pre class="small mb-0 text-danger">@Model.ErrorMessage</pre>
</div>
</div>
</div>
}
</div>
<div class="card shadow-sm">
<div class="card-header d-flex justify-content-between align-items-center py-2">
<span class="fw-semibold">Raw Payload</span>
<button class="btn btn-outline-secondary btn-sm" onclick="copyJson()">
<i class="bi bi-clipboard me-1"></i>Copy
</button>
</div>
<div class="card-body p-0">
<pre id="json-payload" class="mb-0 p-3 small" style="background:#1e1e1e;color:#d4d4d4;max-height:600px;overflow-y:auto;border-radius:0 0 .375rem .375rem">@ViewBag.FormattedJson</pre>
</div>
</div>
</div>
@section Scripts {
<script>
function copyJson() {
const text = document.getElementById('json-payload').textContent;
navigator.clipboard.writeText(text).then(() => {
const btn = event.currentTarget;
btn.innerHTML = '<i class="bi bi-check me-1"></i>Copied';
setTimeout(() => btn.innerHTML = '<i class="bi bi-clipboard me-1"></i>Copy', 2000);
});
}
</script>
}