diff --git a/src/govoplan_admin/backend/manifest.py b/src/govoplan_admin/backend/manifest.py index 9b64f19..4825cce 100644 --- a/src/govoplan_admin/backend/manifest.py +++ b/src/govoplan_admin/backend/manifest.py @@ -3,7 +3,8 @@ from __future__ import annotations from govoplan_admin.backend.db import models as admin_models # noqa: F401 - populate Admin ORM metadata from govoplan_core.core.access import CAPABILITY_AUTH_PERMISSION_EVALUATOR, CAPABILITY_AUTH_PRINCIPAL_RESOLVER from govoplan_core.core.module_guards import persistent_table_uninstall_guard -from govoplan_core.core.modules import MigrationSpec, ModuleContext, ModuleManifest +from govoplan_core.core.modules import FrontendModule, MigrationSpec, ModuleContext, ModuleManifest +from govoplan_core.core.views import ViewSurface from govoplan_core.db.base import Base @@ -20,6 +21,19 @@ manifest = ModuleManifest( version="0.1.8", required_capabilities=(CAPABILITY_AUTH_PRINCIPAL_RESOLVER, CAPABILITY_AUTH_PERMISSION_EVALUATOR), route_factory=_route_factory, + frontend=FrontendModule( + module_id="admin", + package_name="@govoplan/admin-webui", + view_surfaces=( + ViewSurface(id="admin.section.overview", module_id="admin", kind="section", label="Administration overview", order=0), + ViewSurface(id="admin.section.system-settings", module_id="admin", kind="section", label="System settings", order=10), + ViewSurface(id="admin.section.system-configuration-changes", module_id="admin", kind="section", label="Configuration changes", order=20), + ViewSurface(id="admin.section.system-configuration-packages", module_id="admin", kind="section", label="Configuration packages", order=30), + ViewSurface(id="admin.section.system-role-templates", module_id="admin", kind="section", label="Role templates", order=40), + ViewSurface(id="admin.section.system-groups", module_id="admin", kind="section", label="Group templates", order=50), + ViewSurface(id="admin.section.system-modules", module_id="admin", kind="section", label="Modules", order=85), + ), + ), migration_spec=MigrationSpec(module_id="admin", metadata=Base.metadata), uninstall_guard_providers=( persistent_table_uninstall_guard( diff --git a/webui/src/features/admin/ModuleManagementPanel.tsx b/webui/src/features/admin/ModuleManagementPanel.tsx index a63c9f5..3a1f5f4 100644 --- a/webui/src/features/admin/ModuleManagementPanel.tsx +++ b/webui/src/features/admin/ModuleManagementPanel.tsx @@ -355,8 +355,8 @@ export default function ModuleManagementPanel({ settings, canWrite, canAccessMai
{module.protected && } - {module.frontend_package && {module.frontend_package}} - {module.migration_module_id && i18n:govoplan-admin.db.e355c23a {module.migration_module_id}} + i18n:govoplan-admin.webui_package.19645536 {module.frontend_package ?? "none"} + i18n:govoplan-admin.db.e355c23a {module.migration_module_id ?? "none"}
i18n:govoplan-admin.requires.a4fc9357 {module.dependencies.length ? module.dependencies.join(", ") : "none"} diff --git a/webui/src/module.ts b/webui/src/module.ts index 849485f..bccd8cc 100644 --- a/webui/src/module.ts +++ b/webui/src/module.ts @@ -19,6 +19,7 @@ const adminSections: AdminSectionsUiCapability = { sections: [ { id: "overview", + surfaceId: "admin.section.overview", label: "i18n:govoplan-admin.overview.0efc2e6b", group: "ROOT", order: 0, @@ -31,6 +32,7 @@ const adminSections: AdminSectionsUiCapability = { }, { id: "system-settings", + surfaceId: "admin.section.system-settings", label: "i18n:govoplan-admin.general.9239ee2c", group: "SYSTEM", order: 10, @@ -43,6 +45,7 @@ const adminSections: AdminSectionsUiCapability = { }, { id: "system-configuration-changes", + surfaceId: "admin.section.system-configuration-changes", label: "i18n:govoplan-admin.changes.8aa57de6", group: "SYSTEM", order: 20, @@ -54,6 +57,7 @@ const adminSections: AdminSectionsUiCapability = { }, { id: "system-configuration-packages", + surfaceId: "admin.section.system-configuration-packages", label: "i18n:govoplan-admin.configuration_packages.eb2f05f1", group: "SYSTEM", order: 30, @@ -65,6 +69,7 @@ const adminSections: AdminSectionsUiCapability = { }, { id: "system-role-templates", + surfaceId: "admin.section.system-role-templates", label: "i18n:govoplan-admin.tenant_roles.51aca82d", group: "SYSTEM", order: 40, @@ -78,6 +83,7 @@ const adminSections: AdminSectionsUiCapability = { }, { id: "system-modules", + surfaceId: "admin.section.system-modules", label: "i18n:govoplan-admin.modules.04e9462c", group: "SYSTEM", order: 85, @@ -90,6 +96,7 @@ const adminSections: AdminSectionsUiCapability = { }, { id: "system-groups", + surfaceId: "admin.section.system-groups", label: "i18n:govoplan-admin.groups.ae9629f4", group: "SYSTEM", order: 50, @@ -110,6 +117,15 @@ export const adminModule: PlatformWebModule = { version: "1.0.0", dependencies: ["access"], translations, + viewSurfaces: [ + { id: "admin.section.overview", moduleId: "admin", kind: "section", label: "Administration overview", order: 0 }, + { id: "admin.section.system-settings", moduleId: "admin", kind: "section", label: "System settings", order: 10 }, + { id: "admin.section.system-configuration-changes", moduleId: "admin", kind: "section", label: "Configuration changes", order: 20 }, + { id: "admin.section.system-configuration-packages", moduleId: "admin", kind: "section", label: "Configuration packages", order: 30 }, + { id: "admin.section.system-role-templates", moduleId: "admin", kind: "section", label: "Role templates", order: 40 }, + { id: "admin.section.system-groups", moduleId: "admin", kind: "section", label: "Group templates", order: 50 }, + { id: "admin.section.system-modules", moduleId: "admin", kind: "section", label: "Modules", order: 85 } + ], uiCapabilities: { "admin.sections": adminSections }