diff --git a/src/govoplan_files/backend/manifest.py b/src/govoplan_files/backend/manifest.py index cbee571..07dca62 100644 --- a/src/govoplan_files/backend/manifest.py +++ b/src/govoplan_files/backend/manifest.py @@ -13,6 +13,7 @@ from govoplan_core.core.modules import ( DocumentationLink, DocumentationTopic, FrontendModule, + FrontendRoute, MigrationSpec, ModuleContext, ModuleInterfaceProvider, @@ -22,6 +23,7 @@ from govoplan_core.core.modules import ( PermissionDefinition, RoleTemplate, ) +from govoplan_core.core.views import ViewSurface from govoplan_core.db.base import Base from govoplan_files.backend.change_tracking import register_files_change_tracking from govoplan_files.backend.db import models as file_models # noqa: F401 - populate Files ORM metadata @@ -192,7 +194,22 @@ manifest = ModuleManifest( frontend=FrontendModule( module_id="files", package_name="@govoplan/files-webui", + routes=( + FrontendRoute( + path="/files", + component="FilesPage", + required_any=("files:file:read",), + order=40, + ), + ), nav_items=(NavItem(path="/files", label="Files", icon="folder", required_any=("files:file:read",), order=40),), + view_surfaces=( + ViewSurface(id="files.admin.system-connectors", module_id="files", kind="section", label="System file connections", order=75), + ViewSurface(id="files.admin.tenant-connectors", module_id="files", kind="section", label="Tenant file connections", order=65), + ViewSurface(id="files.admin.group-connectors", module_id="files", kind="section", label="Group file connections", order=65), + ViewSurface(id="files.admin.user-connectors", module_id="files", kind="section", label="User file connections", order=65), + ViewSurface(id="files.settings.connectors", module_id="files", kind="section", label="Personal file connections", order=20), + ), ), documentation=( DocumentationTopic( diff --git a/webui/src/module.ts b/webui/src/module.ts index 8450793..c801f7a 100644 --- a/webui/src/module.ts +++ b/webui/src/module.ts @@ -18,6 +18,7 @@ const fileConnectorAdminSections: AdminSectionsUiCapability = { sections: [ { id: "system-file-connectors", + surfaceId: "files.admin.system-connectors", label: "i18n:govoplan-files.file_connections.1e362326", group: "SYSTEM", order: 75, @@ -30,6 +31,7 @@ const fileConnectorAdminSections: AdminSectionsUiCapability = { }, { id: "tenant-file-connectors", + surfaceId: "files.admin.tenant-connectors", label: "i18n:govoplan-files.file_connections.1e362326", group: "TENANT", order: 65, @@ -49,6 +51,13 @@ export const filesModule: PlatformWebModule = { version: "1.0.0", dependencies: ["access"], translations, + viewSurfaces: [ + { id: "files.admin.system-connectors", moduleId: "files", kind: "section", label: "System file connections", order: 75 }, + { id: "files.admin.tenant-connectors", moduleId: "files", kind: "section", label: "Tenant file connections", order: 65 }, + { id: "files.admin.group-connectors", moduleId: "files", kind: "section", label: "Group file connections", order: 65 }, + { id: "files.admin.user-connectors", moduleId: "files", kind: "section", label: "User file connections", order: 65 }, + { id: "files.settings.connectors", moduleId: "files", kind: "section", label: "Personal file connections", order: 20 } + ], navItems: [{ to: "/files", label: "i18n:govoplan-files.files.6ce6c512", iconName: "folder", anyOf: fileRead, order: 40 }], routes: [ { path: "/files", anyOf: fileRead, order: 40, render: ({ settings, auth }) => createElement(FilesPage, { settings, auth }) }],