check / check (push) Waiting to run
Each row of the recent events on the webhook page links to the
event's own page, /hook/{id}/events/{eventID}, and expands to show its
body; only the newest starts expanded. The event's page shows its
details, its whole body and every delivery with its attempts.
One renderer, newBodyView with templates/event_body.html, shows a body
in all three places: whole up to 32 KiB, cut there in the lists with a
link to the event's page, JSON pretty-printed, a body of more than 200
lines or 32 KiB in a scrolling box, and a body that is not text left
out beside its download link. A resubmitted copy links to its
original's page.
Model: opus-5-5
33 lines
1.6 KiB
HTML
33 lines
1.6 KiB
HTML
{{define "delivery_attempts"}}
|
|
<!-- A delivery's recorded attempts, as handlers.DeliveryView holds
|
|
them: in the event log and on an event's own page. -->
|
|
{{if .AttemptsOmitted}}
|
|
<p class="text-xs text-gray-500">{{.AttemptsOmitted}} attempt{{if ne .AttemptsOmitted 1}}s{{end}} omitted between the first and last shown.</p>
|
|
{{end}}
|
|
{{range .Results}}
|
|
<div class="rounded-md bg-white border border-gray-200 p-2">
|
|
<div class="flex flex-wrap items-center gap-3 text-xs">
|
|
<span class="text-gray-500">Attempt {{.AttemptNum}}</span>
|
|
<span class="{{if .Success}}text-green-600{{else}}text-red-600{{end}}">{{if .Success}}success{{else}}failure{{end}}</span>
|
|
<span class="text-gray-500">Status: {{if .HasStatusCode}}{{.StatusCode}}{{else}}— (no response){{end}}</span>
|
|
<span class="text-gray-500">Duration: {{.DurationMS}} ms</span>
|
|
</div>
|
|
{{if .Error}}
|
|
<p class="mt-2 text-xs text-red-700 break-all">Error: {{.Error}}</p>
|
|
{{end}}
|
|
{{if .ResponseBody}}
|
|
<pre class="mt-2 text-xs text-gray-700 overflow-x-auto whitespace-pre-wrap break-all">{{.ResponseBody}}</pre>
|
|
{{end}}
|
|
{{if .ResponseTruncated}}
|
|
{{if .ResponseSizeKnown}}
|
|
<p class="mt-1 text-xs text-gray-500">Response truncated for display: showing {{.ResponseShownBytes}} of {{.ResponseBytes}} bytes.</p>
|
|
{{else}}
|
|
<p class="mt-1 text-xs text-gray-500">Showing {{.ResponseShownBytes}} of the {{.ResponseBytes}} recorded bytes. The response reached the recording limit, so the remote may have sent more that was never stored.</p>
|
|
{{end}}
|
|
{{end}}
|
|
</div>
|
|
{{else}}
|
|
<p class="text-xs text-gray-500">No attempts recorded yet.</p>
|
|
{{end}}
|
|
{{end}}
|