fix: comprehensive CMS QA fixes — i18n, UI labels, breadcrumbs
Some checks failed
Workflow / ʦ TypeScript (push) Failing after 6m6s
Workflow / ⚫️ Test (push) Has been skipped

- Fix i18n dotted permission keys causing INVALID_KEY console spam (en/de cms.json)
- Fix member detail breadcrumb showing UUID instead of member name
- Fix bookings stats card showing 'of' instead of 'Total'
- Fix events/registrations table 'status' column header resolving to object
- Fix finance search placeholder showing 'Show All' instead of search text
- Fix finance status filter default showing 'No data' instead of 'All'
- Fix applications page German pluralization 'Antrage' → 'Anträge'
- Add breadcrumbValues prop to CmsPageShell for UUID→name overrides
This commit is contained in:
Zaid Marzguioui
2026-04-02 22:59:42 +02:00
parent 0932c57fa1
commit f10a34c505
11 changed files with 111 additions and 62 deletions

View File

@@ -126,7 +126,7 @@ export default async function BookingsPage({
icon={<CalendarCheck className="h-5 w-5" />}
/>
<StatsCard
title={t('common.of')}
title={t('list.total')}
value={total}
icon={<Euro className="h-5 w-5" />}
/>

View File

@@ -138,7 +138,7 @@ export default async function EventsPage({ params, searchParams }: PageProps) {
{t('capacity')}
</th>
<th scope="col" className="p-3 text-left font-medium">
{t('status')}
{t('statusLabel')}
</th>
<th scope="col" className="p-3 text-right font-medium">
{t('registrations')}

View File

@@ -116,7 +116,7 @@ export default async function EventRegistrationsPage({ params }: PageProps) {
{t('eventDate')}
</th>
<th scope="col" className="p-3 text-left font-medium">
{t('status')}
{t('statusLabel')}
</th>
<th scope="col" className="p-3 text-right font-medium">
{t('capacity')}

View File

@@ -144,13 +144,13 @@ export default async function FinancePage({ params, searchParams }: PageProps) {
{/* Toolbar */}
<ListToolbar
searchPlaceholder={t('common.showAll')}
searchPlaceholder={t('common.searchPlaceholder')}
filters={[
{
param: 'status',
label: t('common.status'),
options: [
{ value: '', label: t('common.noData') },
{ value: '', label: t('common.all') },
{ value: 'draft', label: t('status.draft') },
{ value: 'ready', label: t('sepa.newBatch') },
{ value: 'sent', label: t('status.sent') },

View File

@@ -30,10 +30,13 @@ export default async function MemberDetailPage({ params }: Props) {
api.listMandates(memberId),
]);
const memberName = `${String(member.first_name)} ${String(member.last_name)}`;
return (
<CmsPageShell
account={account}
title={`${String(member.first_name)} ${String(member.last_name)}`}
title={memberName}
breadcrumbValues={{ [memberId]: memberName }}
>
<MemberDetailView
member={member}