- Pin Dockerfile to Go 1.23 to match go.mod - Record README front-door audit findings
43 lines
2.5 KiB
HTML
43 lines
2.5 KiB
HTML
{{- /* SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Commercial */ -}}
|
|
{{- /* SPDX-FileCopyrightText: 2025-2026 Christian Galo */ -}}
|
|
|
|
{{/* operator_billing.html
|
|
MPA wrapper for the four billing sub-views and the invoice detail.
|
|
Dispatched from /operator/billing/{accounts,subscriptions,invoices,
|
|
payments} by GetBillingXPage handlers in operator_pages.go. Built from
|
|
the page-anatomy parts: the wrapper owns the one page header (.Header;
|
|
"Billing" for the views, the invoice's own header with the Billing /
|
|
Invoices trail for the detail via WrapperHeader). The section
|
|
navigates itself: the pill row is the four views' navigation
|
|
(operator-billing-views: "Billing views are navigated in-page";
|
|
maintainer 2026-08-23, the sidebar holds one flat Billing entry, no
|
|
children); the invoice detail renders no pills because its trail
|
|
already names Billing / Invoices (maintainer 2026-08-31). .ActiveSection
|
|
drives both the active pill and the page's IAPosition
|
|
(operator_pages.go). The recency stamp renders only when
|
|
provider events exist; a quiet stream says nothing here (maintainer,
|
|
2026-08-30: the zero-events banner conflated the provider stream with
|
|
the records below it; stream health belongs to the Stripe integration
|
|
settings page). Delegates to .InnerTemplate / .InnerData via
|
|
renderBody. */}}
|
|
{{ template "pageHeader" .Header }}
|
|
|
|
{{ if .TestMode }}
|
|
<div class="alert alert-warning mb-3" role="alert">{{ .TestModeBanner.Sentence }} <a class="alert-link" href="{{ .TestModeBanner.SettingsLink.URL }}">{{ .TestModeBanner.SettingsLink.Label }}</a></div>
|
|
{{ end }}
|
|
|
|
{{ if not .Detail }}
|
|
<ul class="nav nav-pills mb-3">
|
|
<li class="nav-item"><a class="nav-link {{ if eq .ActiveSection "accounts" }}active{{ end }}" href="{{ routeURL "/operator/billing/accounts" }}">Accounts</a></li>
|
|
<li class="nav-item"><a class="nav-link {{ if eq .ActiveSection "subscriptions" }}active{{ end }}" href="{{ routeURL "/operator/billing/subscriptions" }}">Subscriptions</a></li>
|
|
<li class="nav-item"><a class="nav-link {{ if eq .ActiveSection "invoices" }}active{{ end }}" href="{{ routeURL "/operator/billing/invoices" }}">Invoices</a></li>
|
|
<li class="nav-item"><a class="nav-link {{ if eq .ActiveSection "payments" }}active{{ end }}" href="{{ routeURL "/operator/billing/payments" }}">Payments</a></li>
|
|
</ul>
|
|
{{ end }}
|
|
|
|
{{ if .DataAsOf }}
|
|
<p class="text-muted small mb-3">Last updated at {{ .DataAsOf }}.</p>
|
|
{{ end }}
|
|
|
|
{{ renderBody .InnerTemplate .InnerData }}
|