From 01d6ca160584db36cdb0b00967de650f93b2fb4b Mon Sep 17 00:00:00 2001 From: Albrecht Degering Date: Tue, 18 Aug 2026 11:30:39 +0200 Subject: [PATCH] Adopt shared WebUI layout primitives --- .../src/features/admin/AdminOverviewPanel.tsx | 9 ++++---- .../admin/DataSubjectRequestsPanel.tsx | 22 ++++++++++--------- .../admin/GovernanceTemplatesPanel.tsx | 3 ++- .../features/admin/ModuleManagementPanel.tsx | 5 +++-- .../admin/TenantModuleManagementPanel.tsx | 5 +++-- 5 files changed, 25 insertions(+), 19 deletions(-) diff --git a/webui/src/features/admin/AdminOverviewPanel.tsx b/webui/src/features/admin/AdminOverviewPanel.tsx index d8005ad..4437894 100644 --- a/webui/src/features/admin/AdminOverviewPanel.tsx +++ b/webui/src/features/admin/AdminOverviewPanel.tsx @@ -1,3 +1,4 @@ +import { MetricGrid } from "@govoplan/core-webui"; import { useEffect, useState } from "react"; import type { ApiSettings } from "@govoplan/core-webui"; import { fetchAdminOverview, type AdminOverview } from "../../api/admin"; @@ -33,12 +34,12 @@ export default function AdminOverviewPanel({ settings, onSelect, availableSectio {overview && <> {hasSystemMetrics && <>
i18n:govoplan-admin.system.bc0792d8
-
+ -
+ } {hasAnySection(availableSections, platformSectionIds) && @@ -67,12 +68,12 @@ export default function AdminOverviewPanel({ settings, onSelect, availableSectio }
i18n:govoplan-admin.active_tenant.dfadf0aa {overview.active_tenant_name}
-
+ -
+ {hasAnySection(availableSections, tenantSectionIds) &&
diff --git a/webui/src/features/admin/DataSubjectRequestsPanel.tsx b/webui/src/features/admin/DataSubjectRequestsPanel.tsx index b7dbdb4..e945d14 100644 --- a/webui/src/features/admin/DataSubjectRequestsPanel.tsx +++ b/webui/src/features/admin/DataSubjectRequestsPanel.tsx @@ -1,3 +1,5 @@ +import { DescriptionItem, DescriptionList } from "@govoplan/core-webui"; +import { MetricGrid } from "@govoplan/core-webui"; import { useEffect, useMemo, useState } from "react"; import { Download, Eye, Play, Plus, RefreshCw, Search, ShieldCheck } from "lucide-react"; import type { FormGrid, ApiSettings, DataGridColumn } from "@govoplan/core-webui"; @@ -343,21 +345,21 @@ export default function DataSubjectRequestsPanel({
{selected ? <> -
+ -
+ -
-
{I18N.subject}
{subjectLabel(selected.request)}
-
{I18N.kindLabel}
{selected.request.request_kind}
-
{I18N.statusLabel}
-
{I18N.due}
{selected.request.due_at ? formatDateTime(selected.request.due_at) : "-"}
-
{I18N.purpose}
{selected.request.purpose}
-
{I18N.legalBasis}
{selected.request.legal_basis || "-"}
-
+ + {I18N.subject}}>{subjectLabel(selected.request)} + {I18N.kindLabel}}>{selected.request.request_kind} + {I18N.statusLabel}}> + {I18N.due}}>{selected.request.due_at ? formatDateTime(selected.request.due_at) : "-"} + {I18N.purpose}}>{selected.request.purpose} + {I18N.legalBasis}}>{selected.request.legal_basis || "-"} +
{selected.request.request_kind !== "access" && } diff --git a/webui/src/features/admin/GovernanceTemplatesPanel.tsx b/webui/src/features/admin/GovernanceTemplatesPanel.tsx index a0de482..d359ef1 100644 --- a/webui/src/features/admin/GovernanceTemplatesPanel.tsx +++ b/webui/src/features/admin/GovernanceTemplatesPanel.tsx @@ -1,3 +1,4 @@ +import { DescriptionItem, DescriptionList } from "@govoplan/core-webui"; import { useEffect, useMemo, useState } from "react"; import { Search, Pencil, Plus, Trash2 } from "lucide-react"; import type { FormGrid, ApiSettings } from "@govoplan/core-webui"; @@ -240,7 +241,7 @@ export default function GovernanceTemplatesPanel({ setViewing(null)} className="" footer={}> - {viewing &&
i18n:govoplan-admin.kind.e00ac23f
{viewing.kind}
i18n:govoplan-admin.slug.094da9b9
{viewing.slug}
i18n:govoplan-admin.status.bae7d5be
{viewing.is_active ? "i18n:govoplan-admin.active.a733b809" : "i18n:govoplan-admin.inactive.09af574c"}
i18n:govoplan-admin.tenants.1f7ae776
{viewing.assignments.length || "i18n:govoplan-admin.none.6eef6648"}
i18n:govoplan-admin.description.55f8ebc8
{viewing.description || "—"}
i18n:govoplan-admin.permissions.d06d5557
{viewing.permissions.length ? : "—"}
} + {viewing && i18n:govoplan-admin.kind.e00ac23f}>{viewing.kind}i18n:govoplan-admin.slug.094da9b9}>{viewing.slug}i18n:govoplan-admin.status.bae7d5be}>{viewing.is_active ? "i18n:govoplan-admin.active.a733b809" : "i18n:govoplan-admin.inactive.09af574c"}i18n:govoplan-admin.tenants.1f7ae776}>{viewing.assignments.length || "i18n:govoplan-admin.none.6eef6648"}i18n:govoplan-admin.description.55f8ebc8}>{viewing.description || "—"}i18n:govoplan-admin.permissions.d06d5557}>{viewing.permissions.length ? : "—"}}
setDeleting(null)} onConfirm={() => void remove()} /> diff --git a/webui/src/features/admin/ModuleManagementPanel.tsx b/webui/src/features/admin/ModuleManagementPanel.tsx index ab3149e..36fc040 100644 --- a/webui/src/features/admin/ModuleManagementPanel.tsx +++ b/webui/src/features/admin/ModuleManagementPanel.tsx @@ -1,3 +1,4 @@ +import { MetricGrid } from "@govoplan/core-webui"; import { useEffect, useMemo, useState } from "react"; import type { ActionToolbar, ApiSettings } from "@govoplan/core-webui"; import { ActionBlockerHint, AdminPageLayout, adminErrorMessage, Button, ConfirmDialog, dispatchPlatformModulesChanged, DocumentationHelpLink, formatDateTime, MetricCard, SegmentedControl, StageRail, StatusBadge, ToggleSwitch, i18nMessage, useUnsavedDraftGuard, type FormatDateTimeOptions } from "@govoplan/core-webui"; @@ -407,13 +408,13 @@ export default function ModuleManagementPanel({ settings, canWrite, canAccessMai actions={<>}> {catalog && <> -
+ -
+ -
+ -
+ {state.diagnostics.map((diagnostic) => (