1 Commits
Author SHA1 Message Date
zemion 1f67eb25d7 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:59 +02:00
3 changed files with 29 additions and 11 deletions
+14
View File
@@ -898,6 +898,9 @@ manifest = ModuleManifest(
"effective organization-function assignments." "effective organization-function assignments."
), ),
body=( body=(
"Documentation books sit immediately beside the visible heading or contextual label for "
"Postboxes and the relevant protection, hierarchy or inbox setting, not among operational "
"action buttons. Field help remains beside its label. "
"Postboxes belong to responsibilities, not individual accounts. " "Postboxes belong to responsibilities, not individual accounts. "
"A stable postbox remains addressable during vacancy and " "A stable postbox remains addressable during vacancy and "
"reassignment. Current access combines a generic Postbox " "reassignment. Current access combines a generic Postbox "
@@ -940,6 +943,10 @@ manifest = ModuleManifest(
"title": "Funktionsgebundene Postfächer", "title": "Funktionsgebundene Postfächer",
"summary": "Dauerhafte institutionelle Nachrichtencontainer, deren Zugriff den wirksamen Zuweisungen zu Organisationsfunktionen folgt.", "summary": "Dauerhafte institutionelle Nachrichtencontainer, deren Zugriff den wirksamen Zuweisungen zu Organisationsfunktionen folgt.",
"body": ( "body": (
"Dokumentationsbücher stehen unmittelbar neben der sichtbaren Überschrift oder "
"Kontextbezeichnung für Postfächer und die jeweilige Schutz-, Hierarchie- oder "
"Posteingangseinstellung, nicht zwischen ausführbaren Aktionsschaltflächen. Feldhilfe bleibt "
"neben der Feldbezeichnung. "
"Postfächer gehören zu Verantwortlichkeiten und nicht zu einzelnen Konten. Ein stabiles Postfach bleibt während " "Postfächer gehören zu Verantwortlichkeiten und nicht zu einzelnen Konten. Ein stabiles Postfach bleibt während "
"einer Vakanz und Neubesetzung adressierbar. Der aktuelle Zugriff verbindet eine allgemeine Postfachberechtigung " "einer Vakanz und Neubesetzung adressierbar. Der aktuelle Zugriff verbindet eine allgemeine Postfachberechtigung "
"mit dem wirksamen IDM-Zuweisungskontext. Vorlagen können einheitsspezifische Adressen bei Bedarf erzeugen; exakte " "mit dem wirksamen IDM-Zuweisungskontext. Vorlagen können einheitsspezifische Adressen bei Bedarf erzeugen; exakte "
@@ -977,6 +984,9 @@ manifest = ModuleManifest(
"classification, retention, and lifecycle fields." "classification, retention, and lifecycle fields."
), ),
body=( body=(
"Documentation books sit immediately beside the visible heading or contextual label for "
"Postboxes and the relevant protection, hierarchy or inbox setting, not among operational "
"action buttons. Field help remains beside its label. "
"A Postbox address is durable and bound to an organization function. " "A Postbox address is durable and bound to an organization function. "
"Template revisions are immutable after publication; retiring a template " "Template revisions are immutable after publication; retiring a template "
"does not remove materialized addresses. Archiving an address stops new " "does not remove materialized addresses. Archiving an address stops new "
@@ -1020,6 +1030,10 @@ manifest = ModuleManifest(
"title": "Postfachfelder und ihre Auswirkungen", "title": "Postfachfelder und ihre Auswirkungen",
"summary": "Referenz für Adresse, Vorlage, Routing, Nachricht, Gruppierung, Klassifikation, Aufbewahrung und Lebenszyklus.", "summary": "Referenz für Adresse, Vorlage, Routing, Nachricht, Gruppierung, Klassifikation, Aufbewahrung und Lebenszyklus.",
"body": ( "body": (
"Dokumentationsbücher stehen unmittelbar neben der sichtbaren Überschrift oder "
"Kontextbezeichnung für Postfächer und die jeweilige Schutz-, Hierarchie- oder "
"Posteingangseinstellung, nicht zwischen ausführbaren Aktionsschaltflächen. Feldhilfe bleibt "
"neben der Feldbezeichnung. "
"Eine Postfachadresse ist dauerhaft und an eine Organisationsfunktion gebunden. Vorlagenrevisionen sind nach der " "Eine Postfachadresse ist dauerhaft und an eine Organisationsfunktion gebunden. Vorlagenrevisionen sind nach der "
"Veröffentlichung unveränderlich; die Stilllegung einer Vorlage entfernt keine bereits erzeugten Adressen. Die " "Veröffentlichung unveränderlich; die Stilllegung einer Vorlage entfernt keine bereits erzeugten Adressen. Die "
"Archivierung einer Adresse stoppt neue Zustellungen und bewahrt Nachrichten und Nachweise. Zusammengefasste " "Archivierung einer Adresse stoppt neue Zustellungen und bewahrt Nachrichten und Nachweise. Zusammengefasste "
@@ -21,6 +21,7 @@ import { FormGrid,
ConfirmDialog, ConfirmDialog,
Dialog, Dialog,
DocumentationHelpLink, DocumentationHelpLink,
TextWithHelp,
FormField, FormField,
IconButton, IconButton,
MetricCard, MetricCard,
@@ -794,7 +795,7 @@ export default function PostboxAdminPanel({
return ( return (
<AdminPageLayout <AdminPageLayout
title="Postboxes" title="Postboxes" titleHelp={<DocumentationHelpLink reference={POSTBOX_ADMIN_DOCUMENTATION} />}
description="Manage durable organization-function addresses and reusable templates." description="Manage durable organization-function addresses and reusable templates."
loading={loading} loading={loading}
error={error} error={error}
@@ -809,7 +810,7 @@ export default function PostboxAdminPanel({
disabled={loading || busy} disabled={loading || busy}
disabledReason={postboxBusyReason(loading, busy)} disabledReason={postboxBusyReason(loading, busy)}
/> />
<DocumentationHelpLink reference={POSTBOX_ADMIN_DOCUMENTATION} />
{mode === "templates" && canManageTemplates ? ( {mode === "templates" && canManageTemplates ? (
<Button variant="primary" onClick={openNewTemplate} disabled={busy} disabledReason={postboxBusyReason(false, busy)}> <Button variant="primary" onClick={openNewTemplate} disabled={busy} disabledReason={postboxBusyReason(false, busy)}>
<Plus size={16} /> New template <Plus size={16} /> New template
@@ -1525,9 +1526,10 @@ function TemplateDialog({
<div className="postbox-routing-section"> <div className="postbox-routing-section">
<div className="postbox-routing-heading"> <div className="postbox-routing-heading">
<div> <div>
<strong>Hierarchy linked copies</strong> <TextWithHelp as="div" help={<DocumentationHelpLink reference={POSTBOX_FIELD_DOCUMENTATION} />}>
<strong>Hierarchy linked copies</strong>
</TextWithHelp>
<span>Copy to explicitly bounded function Postboxes in one selected structure.</span> <span>Copy to explicitly bounded function Postboxes in one selected structure.</span>
<DocumentationHelpLink reference={POSTBOX_FIELD_DOCUMENTATION} />
</div> </div>
<ToggleSwitch <ToggleSwitch
label="Enable hierarchy linked copies" label="Enable hierarchy linked copies"
@@ -1948,11 +1950,12 @@ function ProtectionConfigurationFields({
<div className="postbox-routing-section"> <div className="postbox-routing-section">
<div className="postbox-routing-heading"> <div className="postbox-routing-heading">
<div> <div>
<strong>Content protection and hand-over policy</strong> <TextWithHelp as="div" help={<DocumentationHelpLink reference={POSTBOX_FIELD_DOCUMENTATION} />}>
<strong>Content protection and hand-over policy</strong>
</TextWithHelp>
<span> <span>
The institution chooses the protection boundary. Managed envelope encryption is the recommended standard. The institution chooses the protection boundary. Managed envelope encryption is the recommended standard.
</span> </span>
<DocumentationHelpLink reference={POSTBOX_FIELD_DOCUMENTATION} />
</div> </div>
{selected?.standard ? <StatusBadge status="recommended" label="Standard" /> : null} {selected?.standard ? <StatusBadge status="recommended" label="Standard" /> : null}
</div> </div>
@@ -2156,9 +2159,10 @@ function GroupingPolicyFields({
<div className="postbox-protection-section"> <div className="postbox-protection-section">
<div className="postbox-routing-heading"> <div className="postbox-routing-heading">
<div> <div>
<strong>Unified-inbox separation</strong> <TextWithHelp as="div" help={<DocumentationHelpLink reference={POSTBOX_FIELD_DOCUMENTATION} />}>
<strong>Unified-inbox separation</strong>
</TextWithHelp>
<span>Keep source containers and institutional responsibilities visibly separated where required.</span> <span>Keep source containers and institutional responsibilities visibly separated where required.</span>
<DocumentationHelpLink reference={POSTBOX_FIELD_DOCUMENTATION} />
</div> </div>
</div> </div>
<FormGrid> <FormGrid>
+3 -3
View File
@@ -680,11 +680,11 @@ export default function PostboxPage({
refreshable refreshable
reloadAction={{ onReload: () => void loadDirectory(), loading: loadingDirectory || busy }} reloadAction={{ onReload: () => void loadDirectory(), loading: loadingDirectory || busy }}
className="postbox-bar" className="postbox-bar"
contextActions={<div className="postbox-bar-title"> title={<span className="postbox-bar-title">
<Inbox size={17} aria-hidden="true" /> <Inbox size={17} aria-hidden="true" />
<strong>Postbox</strong> <strong>Postbox</strong>
</div>} </span>}
helpAction={<DocumentationHelpLink reference={POSTBOX_DOCUMENTATION} />} titleHelp={<DocumentationHelpLink reference={POSTBOX_DOCUMENTATION} />}
createAction={<IconButton createAction={<IconButton
label="New unified view" label="New unified view"
icon={<Plus size={16} />} icon={<Plus size={16} />}