diff --git a/src/govoplan_mail/backend/manifest.py b/src/govoplan_mail/backend/manifest.py index bcbcd3b..46220c0 100644 --- a/src/govoplan_mail/backend/manifest.py +++ b/src/govoplan_mail/backend/manifest.py @@ -12,6 +12,7 @@ from govoplan_core.core.modules import ( DocumentationLink, DocumentationTopic, FrontendModule, + FrontendRoute, MigrationSpec, ModuleContext, ModuleInterfaceProvider, @@ -21,6 +22,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_mail.backend.documentation import documentation_topics from govoplan_mail.backend.db import models as mail_models # noqa: F401 - populate Mail ORM metadata @@ -184,7 +186,22 @@ manifest = ModuleManifest( frontend=FrontendModule( module_id="mail", package_name="@govoplan/mail-webui", + routes=( + FrontendRoute( + path="/mail", + component="MailboxPage", + required_any=("mail:mailbox:read",), + order=50, + ), + ), nav_items=(NavItem(path="/mail", label="Mail", icon="mail", required_any=("mail:mailbox:read",), order=50),), + view_surfaces=( + ViewSurface(id="mail.admin.system-servers", module_id="mail", kind="section", label="System mail servers", order=70), + ViewSurface(id="mail.admin.tenant-servers", module_id="mail", kind="section", label="Tenant mail servers", order=60), + ViewSurface(id="mail.admin.group-servers", module_id="mail", kind="section", label="Group mail servers", order=20), + ViewSurface(id="mail.admin.user-servers", module_id="mail", kind="section", label="User mail servers", order=20), + ViewSurface(id="mail.settings.profiles", module_id="mail", kind="section", label="Personal mail profiles", order=10), + ), ), migration_spec=MigrationSpec( module_id="mail", diff --git a/webui/src/module.ts b/webui/src/module.ts index ad04dca..1564a93 100644 --- a/webui/src/module.ts +++ b/webui/src/module.ts @@ -19,6 +19,13 @@ export const mailModule: PlatformWebModule = { dependencies: ["access"], optionalDependencies: ["addresses"], translations, + viewSurfaces: [ + { id: "mail.admin.system-servers", moduleId: "mail", kind: "section", label: "System mail servers", order: 70 }, + { id: "mail.admin.tenant-servers", moduleId: "mail", kind: "section", label: "Tenant mail servers", order: 60 }, + { id: "mail.admin.group-servers", moduleId: "mail", kind: "section", label: "Group mail servers", order: 20 }, + { id: "mail.admin.user-servers", moduleId: "mail", kind: "section", label: "User mail servers", order: 20 }, + { id: "mail.settings.profiles", moduleId: "mail", kind: "section", label: "Personal mail profiles", order: 10 } + ], navItems: [{ to: "/mail", label: "i18n:govoplan-mail.mail.92379cbb", iconName: "mail", anyOf: mailboxRead, order: 50 }], routes: [ { path: "/mail", anyOf: mailboxRead, order: 50, render: ({ settings }) => createElement(MailboxPage, { settings }) }],