diff --git a/src/govoplan_wiki/backend/manifest.py b/src/govoplan_wiki/backend/manifest.py index 948ebdc..47586ab 100644 --- a/src/govoplan_wiki/backend/manifest.py +++ b/src/govoplan_wiki/backend/manifest.py @@ -190,7 +190,9 @@ DOCUMENTATION = ( id="wiki.module-boundary", title="Wiki module boundary", summary="Governed collaborative knowledge spaces, hierarchical pages, immutable revisions, links, labels, comments, access, and publishing.", - body="Wiki owns native knowledge-space and page identity, hierarchy, drafts, immutable revisions, comments, labels, typed references, redirects, and publication state. Files or DMS owns binary content, Records owns formal record disposition, Docs owns product and configured-system guidance, and Connectors owns MediaWiki or BlueSpice transport.", + body="Documentation books sit immediately beside the visible heading or contextual label for Wiki, " + "not among operational action buttons. Field help remains beside its label. " + "Wiki owns native knowledge-space and page identity, hierarchy, drafts, immutable revisions, comments, labels, typed references, redirects, and publication state. Files or DMS owns binary content, Records owns formal record disposition, Docs owns product and configured-system guidance, and Connectors owns MediaWiki or BlueSpice transport.", layer="available", documentation_types=("admin", "user"), audience=("user", "operator", "module_admin", "product_owner"), @@ -199,7 +201,10 @@ DOCUMENTATION = ( "de": { "title": "Modulgrenze von Wiki", "summary": "Gesteuerte Wissensbereiche mit hierarchischen Seiten, unveränderlichen Revisionen, Verweisen, Schlagwörtern, Kommentaren, Zugriff und Veröffentlichung.", - "body": "Wiki verwaltet die Identität nativer Wissensbereiche und Seiten, Hierarchie, Entwürfe, unveränderliche Revisionen, Kommentare, Schlagwörter, typisierte Verweise, Weiterleitungen und Veröffentlichungsstatus. Files beziehungsweise DMS verwaltet Binärinhalte, Records die formale Aufbewahrung, Docs die Produkt- und Konfigurationsdokumentation und Connectors den Transport zu MediaWiki oder BlueSpice.", + "body": "Dokumentationsbücher stehen unmittelbar neben der sichtbaren Überschrift oder " + "Kontextbezeichnung für Wiki, nicht zwischen ausführbaren Aktionsschaltflächen. Feldhilfe " + "bleibt neben der Feldbezeichnung. " + "Wiki verwaltet die Identität nativer Wissensbereiche und Seiten, Hierarchie, Entwürfe, unveränderliche Revisionen, Kommentare, Schlagwörter, typisierte Verweise, Weiterleitungen und Veröffentlichungsstatus. Files beziehungsweise DMS verwaltet Binärinhalte, Records die formale Aufbewahrung, Docs die Produkt- und Konfigurationsdokumentation und Connectors den Transport zu MediaWiki oder BlueSpice.", } }, links=( diff --git a/webui/src/features/wiki/WikiPage.tsx b/webui/src/features/wiki/WikiPage.tsx index 6f70e10..469d0b7 100644 --- a/webui/src/features/wiki/WikiPage.tsx +++ b/webui/src/features/wiki/WikiPage.tsx @@ -146,7 +146,7 @@ export default function WikiPage({ settings, auth }: PlatformRouteContext) { {pages.length} pages - } helpAction={} createAction={
+ } title="Wiki" titleLevel={1} titleHelp={} createAction={
{canAdmin && } {canWrite && selectedSpace && }
} /> @@ -181,7 +181,7 @@ export default function WikiPage({ settings, auth }: PlatformRouteContext) { function WikiDetail({ record, revisions, comments, canWrite, canPublish, canComment, saving, onEdit, onPublish, onAddLink, onRemoveLink, onHistory, onComment, onArchive }: { record: WikiPageRecord; revisions: WikiRevision[]; comments: WikiComment[]; canWrite: boolean; canPublish: boolean; canComment: boolean; saving: boolean; onEdit: () => void; onPublish: () => void; onAddLink: () => void; onRemoveLink: (id: string) => Promise; onHistory: () => void; onComment: (body: string) => Promise; onArchive: () => void }) { const [comment, setComment] = useState(""); return
-
{record.path} · revision {record.revision}

{record.title}

{record.summary}

+
{record.path} · revision {record.revision}

{record.title}

{record.summary}

{canWrite && record.state !== "archived" && } {canWrite && record.state !== "archived" && } diff --git a/webui/src/i18n/generatedTranslations.ts b/webui/src/i18n/generatedTranslations.ts new file mode 100755 index 0000000..401c274 --- /dev/null +++ b/webui/src/i18n/generatedTranslations.ts @@ -0,0 +1,12 @@ +import type { PlatformTranslations } from "@govoplan/core-webui"; + +/** Module-owned translations for contextual headings. */ +export const generatedTranslations: PlatformTranslations = { + en: { + "Wiki": "Wiki", + }, + de: { + "Wiki": "Wiki", + }, +}; + diff --git a/webui/src/module.ts b/webui/src/module.ts index 330c0b6..a738504 100644 --- a/webui/src/module.ts +++ b/webui/src/module.ts @@ -1,11 +1,13 @@ import { createElement, lazy } from "react"; import type { PlatformWebModule } from "@govoplan/core-webui"; +import { generatedTranslations } from "./i18n/generatedTranslations"; import "./styles/wiki.css"; const WikiPage = lazy(() => import("./features/wiki/WikiPage")); export const wikiModule: PlatformWebModule = { + translations: generatedTranslations, id: "wiki", label: "Wiki", version: "0.1.20", diff --git a/webui/src/styles/wiki.css b/webui/src/styles/wiki.css index eec5465..a1a3f83 100644 --- a/webui/src/styles/wiki.css +++ b/webui/src/styles/wiki.css @@ -89,7 +89,7 @@ .wiki-space-header h2, .wiki-space-header p, -.wiki-detail-header h1, +.wiki-detail-header h2, .wiki-detail-header p, .wiki-section h2, .wiki-section p, @@ -125,7 +125,7 @@ border-block-end: 1px solid var(--border-subtle); } -.wiki-detail-header h1 { +.wiki-detail-header h2 { margin-block-start: var(--space-1); font-size: var(--font-size-2xl); }