Phase3: Billing Customerpage/Mailings
All checks were successful
Build and Push / build (push) Successful in 1m37s

This commit is contained in:
2026-05-24 22:21:26 +02:00
parent c21b48c704
commit 4a5ae0bb8b
7 changed files with 29 additions and 21 deletions

View File

@@ -8,7 +8,7 @@ interface Props {
} }
const statusColors: Record<string, string> = { const statusColors: Record<string, string> = {
issued: "text-text-secondary bg-surface-3", open: "text-text-secondary bg-surface-3",
paid: "text-success bg-success/10", paid: "text-success bg-success/10",
overdue: "text-error bg-error/10", overdue: "text-error bg-error/10",
void: "text-text-muted bg-surface-3", void: "text-text-muted bg-surface-3",

View File

@@ -8,7 +8,7 @@ interface Props {
} }
const statusColors: Record<string, string> = { const statusColors: Record<string, string> = {
issued: "text-text-secondary bg-surface-3", open: "text-text-secondary bg-surface-3",
paid: "text-success bg-success/10", paid: "text-success bg-success/10",
overdue: "text-error bg-error/10", overdue: "text-error bg-error/10",
void: "text-text-muted bg-surface-3 line-through", void: "text-text-muted bg-surface-3 line-through",

View File

@@ -74,17 +74,6 @@ function NavBar() {
{t("settings")} {t("settings")}
</NavLink> </NavLink>
)} )}
{/* Feature 5: Support is available to every signed-in
user. Customers see their own tickets only; platform
admins see the queue. */}
{user && (
<NavLink
href="/support"
active={pathname.startsWith("/support")}
>
{t("support")}
</NavLink>
)}
{/* Phase 3: Billing visible to anyone signed in. The {/* Phase 3: Billing visible to anyone signed in. The
page is org-scoped server-side — non-owner members page is org-scoped server-side — non-owner members
see the same invoice history their owner does, but see the same invoice history their owner does, but
@@ -99,6 +88,17 @@ function NavBar() {
{t("billing")} {t("billing")}
</NavLink> </NavLink>
)} )}
{/* Feature 5: Support is available to every signed-in
user. Customers see their own tickets only; platform
admins see the queue. */}
{user && (
<NavLink
href="/support"
active={pathname.startsWith("/support")}
>
{t("support")}
</NavLink>
)}
{user?.isPlatform && ( {user?.isPlatform && (
<NavLink href="/admin" active={pathname === "/admin"}> <NavLink href="/admin" active={pathname === "/admin"}>
{t("admin")} {t("admin")}

View File

@@ -731,10 +731,12 @@
"totalLabel": "Gesamt", "totalLabel": "Gesamt",
"downloadPdf": "PDF herunterladen", "downloadPdf": "PDF herunterladen",
"status": { "status": {
"issued": "Ausgestellt", "draft": "Entwurf",
"open": "Offen",
"paid": "Bezahlt", "paid": "Bezahlt",
"overdue": "Überfällig", "overdue": "Überfällig",
"void": "Storniert" "void": "Storniert",
"uncollectible": "Uneinbringlich"
} }
} }
} }

View File

@@ -731,10 +731,12 @@
"totalLabel": "Total", "totalLabel": "Total",
"downloadPdf": "Download PDF", "downloadPdf": "Download PDF",
"status": { "status": {
"issued": "Issued", "draft": "Draft",
"open": "Open",
"paid": "Paid", "paid": "Paid",
"overdue": "Overdue", "overdue": "Overdue",
"void": "Void" "void": "Void",
"uncollectible": "Uncollectible"
} }
} }
} }

View File

@@ -731,10 +731,12 @@
"totalLabel": "Total", "totalLabel": "Total",
"downloadPdf": "Télécharger le PDF", "downloadPdf": "Télécharger le PDF",
"status": { "status": {
"issued": "Émise", "draft": "Brouillon",
"open": "Ouverte",
"paid": "Payée", "paid": "Payée",
"overdue": "En retard", "overdue": "En retard",
"void": "Annulée" "void": "Annulée",
"uncollectible": "Irrécouvrable"
} }
} }
} }

View File

@@ -731,10 +731,12 @@
"totalLabel": "Totale", "totalLabel": "Totale",
"downloadPdf": "Scarica PDF", "downloadPdf": "Scarica PDF",
"status": { "status": {
"issued": "Emessa", "draft": "Bozza",
"open": "Aperta",
"paid": "Pagata", "paid": "Pagata",
"overdue": "In ritardo", "overdue": "In ritardo",
"void": "Annullata" "void": "Annullata",
"uncollectible": "Inesigibile"
} }
} }
} }