1 Commits
Author SHA1 Message Date
zemion 34211e848b fix(ui): align contextual documentation with headings
Verified with the coordinated workspace changes by devkit full run
2026-09-08T225814-186389-0000-3e3ed7cd (all seven phases passed).
This shared UI pass does not mark the individual module reviews complete.
2026-09-09 02:03:46 +02:00
4 changed files with 15 additions and 4 deletions
@@ -568,6 +568,8 @@ manifest = ModuleManifest(
title="Complete and manage Forms", title="Complete and manage Forms",
summary="Save permitted drafts, submit validated values, and retain exact definition and handoff evidence.", summary="Save permitted drafts, submit validated values, and retain exact definition and handoff evidence.",
body=( body=(
"Documentation books sit beside Forms runtime or Form instance. Editing guidance is beside "
"the displayed form title while the instance is editable; field help stays with its label. "
"Every instance resolves one immutable published Form revision. Draft and final values are validated on the server; final submission also enforces attachment, signature, and policy requirements. " "Every instance resolves one immutable published Form revision. Draft and final values are validated on the server; final submission also enforces attachment, signature, and policy requirements. "
"Service launches retain the exact Service and binding. Native Case and Workflow handoffs persist intent before execution, use owner capabilities with stable provider keys, and require reconciliation after unknown outcomes. History, receipts, and handoffs are replay-safe and optimistic-concurrency guarded." "Service launches retain the exact Service and binding. Native Case and Workflow handoffs persist intent before execution, use owner capabilities with stable provider keys, and require reconciliation after unknown outcomes. History, receipts, and handoffs are replay-safe and optimistic-concurrency guarded."
" Invitation and explicitly enabled anonymous intake use hash-only expiring tokens, bounded rate limits, and isolated synthetic actors. Authenticated assisted sessions retain channel, affected and represented parties, authority, purpose, notice, responsible function, language, accessibility needs, and field provenance without bypassing the exact Form rules. Submission requires immutable read-back evidence bound to the current revision, values, attachments, and signatures; any later draft edit invalidates it. Administrators can configure applicant status per exact Form revision as authenticated-only, a short-lived link sent to a matching Form email, or a non-expiring public link. Status projections expose only a bounded lifecycle timeline and receipt reference, never Form values, actors, evidence, internal notes, or handoff details. Files-backed attachments use one-time purpose-bound grants, while authenticated acknowledgements bind an exact actor and payload digest without claiming advanced or qualified signature assurance. When Search is enabled, Forms Runtime contributes a rebuildable metadata-only projection; submitted values and evidence content are excluded, and every candidate receives a current workspace or participant access check." " Invitation and explicitly enabled anonymous intake use hash-only expiring tokens, bounded rate limits, and isolated synthetic actors. Authenticated assisted sessions retain channel, affected and represented parties, authority, purpose, notice, responsible function, language, accessibility needs, and field provenance without bypassing the exact Form rules. Submission requires immutable read-back evidence bound to the current revision, values, attachments, and signatures; any later draft edit invalidates it. Administrators can configure applicant status per exact Form revision as authenticated-only, a short-lived link sent to a matching Form email, or a non-expiring public link. Status projections expose only a bounded lifecycle timeline and receipt reference, never Form values, actors, evidence, internal notes, or handoff details. Files-backed attachments use one-time purpose-bound grants, while authenticated acknowledgements bind an exact actor and payload digest without claiming advanced or qualified signature assurance. When Search is enabled, Forms Runtime contributes a rebuildable metadata-only projection; submitted values and evidence content are excluded, and every candidate receives a current workspace or participant access check."
@@ -625,6 +627,9 @@ manifest = ModuleManifest(
"Zulässige Entwürfe speichern, validierte Werte einreichen und exakte Definitions- und Übergabenachweise bewahren." "Zulässige Entwürfe speichern, validierte Werte einreichen und exakte Definitions- und Übergabenachweise bewahren."
), ),
"body": ( "body": (
"Dokumentationsbücher stehen neben Formularlaufzeit oder Formularinstanz. Solange die Instanz "
"bearbeitbar ist, steht die Bearbeitungshilfe neben dem angezeigten Formulartitel; Feldhilfe "
"bleibt bei der Feldbezeichnung. "
"Jede Instanz löst genau eine unveränderliche veröffentlichte Formularrevision auf. Entwurfs- und Endwerte " "Jede Instanz löst genau eine unveränderliche veröffentlichte Formularrevision auf. Entwurfs- und Endwerte "
"werden auf dem Server validiert; die endgültige Einreichung erzwingt zusätzlich Anforderungen an Anlagen, " "werden auf dem Server validiert; die endgültige Einreichung erzwingt zusätzlich Anforderungen an Anlagen, "
"Signaturen und Regeln. Service-Aufrufe bewahren den exakten Service und seine Bindung. Native Übergaben an " "Signaturen und Regeln. Service-Aufrufe bewahren den exakten Service und seine Bindung. Native Übergaben an "
@@ -8,6 +8,7 @@ import { ActionBlockerHint,
DescriptionList, DescriptionList,
Dialog, Dialog,
DocumentationHelpLink, DocumentationHelpLink,
TextWithHelp,
DismissibleAlert, DismissibleAlert,
FileDropZone, FileDropZone,
FormField as CoreFormField, FormField as CoreFormField,
@@ -397,6 +398,8 @@ export default function FormInstancePage({ settings, auth }: PlatformRouteContex
<main className="forms-runtime-page"> <main className="forms-runtime-page">
<WorkspaceFrame className="form-instance-shell" label="Form instance" interfaceId="forms-runtime.instance" helpContextId="forms-runtime.page.instance" helpModuleId="forms-runtime"> <WorkspaceFrame className="form-instance-shell" label="Form instance" interfaceId="forms-runtime.instance" helpContextId="forms-runtime.page.instance" helpModuleId="forms-runtime">
<WorkspaceActionBar <WorkspaceActionBar
title="Form instance"
titleHelp={<DocumentationHelpLink reference={FORMS_RUNTIME_DOCUMENTATION} />}
scope="workspace" scope="workspace"
variant="detail" variant="detail"
refreshable refreshable
@@ -416,7 +419,6 @@ export default function FormInstancePage({ settings, auth }: PlatformRouteContex
File in eAkte File in eAkte
</Button> </Button>
: undefined} : undefined}
helpAction={<DocumentationHelpLink reference={FORMS_RUNTIME_DOCUMENTATION} />}
/> />
<PageScrollViewport className="form-instance-viewport"> <PageScrollViewport className="form-instance-viewport">
{error && {error &&
@@ -446,7 +448,7 @@ export default function FormInstancePage({ settings, auth }: PlatformRouteContex
<div className="form-instance-content"> <div className="form-instance-content">
<section className="form-instance-main"> <section className="form-instance-main">
<header> <header>
<h1>{localized.title}</h1> <TextWithHelp as="div" help={editable ? <DocumentationHelpLink reference={FORMS_RUNTIME_FIELD_DOCUMENTATION} /> : undefined}><h1>{localized.title}</h1></TextWithHelp>
{localized.description && <p>{localized.description}</p>} {localized.description && <p>{localized.description}</p>}
</header> </header>
{assisted && {assisted &&
@@ -553,7 +555,6 @@ export default function FormInstancePage({ settings, auth }: PlatformRouteContex
} }
{editable && {editable &&
<div className="form-instance-actions"> <div className="form-instance-actions">
<DocumentationHelpLink reference={FORMS_RUNTIME_FIELD_DOCUMENTATION} />
{canSave && {canSave &&
<label className="form-change-reason"> <label className="form-change-reason">
<span>Change reason</span> <span>Change reason</span>
@@ -70,6 +70,8 @@ export default function FormsRuntimePage({ settings, auth }: PlatformRouteContex
<main className="forms-runtime-page"> <main className="forms-runtime-page">
<WorkspaceFrame className="forms-runtime-shell" label="Forms runtime" interfaceId="forms-runtime.workspace" helpContextId="forms-runtime.page.workspace" helpModuleId="forms-runtime"> <WorkspaceFrame className="forms-runtime-shell" label="Forms runtime" interfaceId="forms-runtime.workspace" helpContextId="forms-runtime.page.workspace" helpModuleId="forms-runtime">
<WorkspaceActionBar <WorkspaceActionBar
title="Forms runtime"
titleHelp={<DocumentationHelpLink reference={FORMS_RUNTIME_DOCUMENTATION} />}
scope="workspace" scope="workspace"
variant="collection" variant="collection"
refreshable refreshable
@@ -110,7 +112,6 @@ export default function FormsRuntimePage({ settings, auth }: PlatformRouteContex
Assisted intake Assisted intake
</Button> </Button>
: undefined} : undefined}
helpAction={<DocumentationHelpLink reference={FORMS_RUNTIME_DOCUMENTATION} />}
/> />
<PageScrollViewport className="forms-runtime-list-viewport"> <PageScrollViewport className="forms-runtime-list-viewport">
{error && {error &&
+4
View File
@@ -1,6 +1,8 @@
import type { PlatformTranslations } from "@govoplan/core-webui"; import type { PlatformTranslations } from "@govoplan/core-webui";
const en = { const en = {
"Form instance": "Form instance",
"Forms runtime": "Forms runtime",
"i18n:govoplan-forms-runtime.forms": "Forms", "i18n:govoplan-forms-runtime.forms": "Forms",
"i18n:govoplan-forms-runtime.loading_reason": "Form data is still loading.", "i18n:govoplan-forms-runtime.loading_reason": "Form data is still loading.",
"i18n:govoplan-forms-runtime.saving_reason": "A Form operation is still running.", "i18n:govoplan-forms-runtime.saving_reason": "A Form operation is still running.",
@@ -202,6 +204,8 @@ const en = {
} as const; } as const;
const de: Record<keyof typeof en, string> = { const de: Record<keyof typeof en, string> = {
"Form instance": "Formularinstanz",
"Forms runtime": "Formularlaufzeit",
"i18n:govoplan-forms-runtime.forms": "Formulare", "i18n:govoplan-forms-runtime.forms": "Formulare",
"i18n:govoplan-forms-runtime.loading_reason": "Formulardaten werden noch geladen.", "i18n:govoplan-forms-runtime.loading_reason": "Formulardaten werden noch geladen.",
"i18n:govoplan-forms-runtime.saving_reason": "Eine Formularaktion läuft noch.", "i18n:govoplan-forms-runtime.saving_reason": "Eine Formularaktion läuft noch.",