Files
member-console/internal/embeds/templates/partials/operator_billing.html
T
cgalo5758 fe19ee415c Add CLA and SPDX headers, fix docs
- Pin Dockerfile to Go 1.23 to match go.mod
- Record README front-door audit findings
2026-09-07 21:32:14 -05:00

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 }}