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.
This commit is contained in:
@@ -250,7 +250,9 @@ DOCUMENTATION = localize_documentation_topics((
|
|||||||
id="dataflow.workspace-layout",
|
id="dataflow.workspace-layout",
|
||||||
title="Dataflow workspace actions",
|
title="Dataflow workspace actions",
|
||||||
summary="Find collection-wide commands in their consistent workspace position.",
|
summary="Find collection-wide commands in their consistent workspace position.",
|
||||||
body="Reload and New pipeline use the persistent full-width workspace header at the upper right; Reload sits immediately before creation. Selecting a record, changing filters, or opening an editor does not move these collection-wide commands into the left pane. SQL editing, validation, previews, saving, and execution keep their existing editor scope and bounded safety rules. Existing permissions, disabled-state rules, and unsaved-change guards still apply. Administrators configure authority through the existing permission system; no new permission or automatic operation is introduced.",
|
body="The workspace documentation book sits beside Pipelines; automation and run help sits beside "
|
||||||
|
"the corresponding dialog title, and field help stays with its label. "
|
||||||
|
"Reload and New pipeline use the persistent full-width workspace header at the upper right; Reload sits immediately before creation. Selecting a record, changing filters, or opening an editor does not move these collection-wide commands into the left pane. SQL editing, validation, previews, saving, and execution keep their existing editor scope and bounded safety rules. Existing permissions, disabled-state rules, and unsaved-change guards still apply. Administrators configure authority through the existing permission system; no new permission or automatic operation is introduced.",
|
||||||
layer="static",
|
layer="static",
|
||||||
documentation_types=("user", "admin"),
|
documentation_types=("user", "admin"),
|
||||||
audience=("user", "module_admin", "operator"),
|
audience=("user", "module_admin", "operator"),
|
||||||
@@ -258,7 +260,10 @@ DOCUMENTATION = localize_documentation_topics((
|
|||||||
translations={"de": {
|
translations={"de": {
|
||||||
"title": "Datenflüsse: Aktionen im Arbeitsbereich",
|
"title": "Datenflüsse: Aktionen im Arbeitsbereich",
|
||||||
"summary": "Sammlungsweite Aktionen an ihrer einheitlichen Position im Arbeitsbereich finden.",
|
"summary": "Sammlungsweite Aktionen an ihrer einheitlichen Position im Arbeitsbereich finden.",
|
||||||
"body": "Neu laden und Neue Pipeline stehen oben rechts in der dauerhaft sichtbaren, arbeitsbereichsweiten Leiste; Neu laden steht unmittelbar vor dem Anlegen. Auswahl, Filterwechsel und Bearbeitung verschieben diese sammlungsweiten Aktionen nicht in den linken Bereich. SQL-Bearbeitung, Validierung, Vorschau, Speichern und Ausführung behalten ihren bisherigen Editorbereich und ihre begrenzenden Sicherheitsregeln. Bestehende Berechtigungen, Deaktivierungsregeln und der Schutz ungespeicherter Änderungen gelten weiterhin. Administratoren konfigurieren Rechte im bestehenden Berechtigungssystem; es entstehen weder neue Rechte noch automatische Vorgänge.",
|
"body": "Das Dokumentationsbuch des Arbeitsbereichs steht neben Pipelines; Hilfe zu Automatisierung "
|
||||||
|
"und Ausführung steht neben dem jeweiligen Dialogtitel, und Feldhilfe bleibt bei der "
|
||||||
|
"Feldbezeichnung. "
|
||||||
|
"Neu laden und Neue Pipeline stehen oben rechts in der dauerhaft sichtbaren, arbeitsbereichsweiten Leiste; Neu laden steht unmittelbar vor dem Anlegen. Auswahl, Filterwechsel und Bearbeitung verschieben diese sammlungsweiten Aktionen nicht in den linken Bereich. SQL-Bearbeitung, Validierung, Vorschau, Speichern und Ausführung behalten ihren bisherigen Editorbereich und ihre begrenzenden Sicherheitsregeln. Bestehende Berechtigungen, Deaktivierungsregeln und der Schutz ungespeicherter Änderungen gelten weiterhin. Administratoren konfigurieren Rechte im bestehenden Berechtigungssystem; es entstehen weder neue Rechte noch automatische Vorgänge.",
|
||||||
}},
|
}},
|
||||||
),
|
),
|
||||||
DocumentationTopic(
|
DocumentationTopic(
|
||||||
|
|||||||
@@ -67,12 +67,13 @@ class DataflowInterfaceDocumentationContractTests(unittest.TestCase):
|
|||||||
|
|
||||||
for component in (
|
for component in (
|
||||||
"ActionBlockerHint",
|
"ActionBlockerHint",
|
||||||
"DocumentationHelpLink",
|
"titleHelp={<DocumentationHelpLink reference={DATAFLOW_DOCUMENTATION} />}",
|
||||||
"useUnsavedDraftGuard",
|
"useUnsavedDraftGuard",
|
||||||
"ConfirmDialog",
|
"ConfirmDialog",
|
||||||
):
|
):
|
||||||
self.assertIn(component, page)
|
self.assertIn(component, page)
|
||||||
self.assertIn("DATAFLOW_NODE_DOCUMENTATION", inspector)
|
self.assertIn("DATAFLOW_NODE_DOCUMENTATION", inspector)
|
||||||
|
self.assertNotIn("helpAction=", page)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
|||||||
@@ -668,11 +668,12 @@ export default function DataflowPage({ settings, auth }: { settings: ApiSettings
|
|||||||
return (
|
return (
|
||||||
<WorkspaceFrame as="main" height="viewport" surface="plain" className="dataflow-page" label="Dataflow workspace">
|
<WorkspaceFrame as="main" height="viewport" surface="plain" className="dataflow-page" label="Dataflow workspace">
|
||||||
<WorkspaceActionBar
|
<WorkspaceActionBar
|
||||||
|
title="Pipelines"
|
||||||
|
titleHelp={<DocumentationHelpLink reference={DATAFLOW_DOCUMENTATION} />}
|
||||||
scope="workspace"
|
scope="workspace"
|
||||||
variant="collection"
|
variant="collection"
|
||||||
refreshable
|
refreshable
|
||||||
reloadAction={{ onReload: () => void loadPipelines(draft?.id), loading, label: "Refresh pipelines" }}
|
reloadAction={{ onReload: () => void loadPipelines(draft?.id), loading, label: "Refresh pipelines" }}
|
||||||
contextActions={<strong>Pipelines</strong>}
|
|
||||||
createAction={<IconButton
|
createAction={<IconButton
|
||||||
label="New pipeline"
|
label="New pipeline"
|
||||||
icon={<Plus size={17} />}
|
icon={<Plus size={17} />}
|
||||||
@@ -759,7 +760,6 @@ export default function DataflowPage({ settings, auth }: { settings: ApiSettings
|
|||||||
<option value="archived">Archived</option>
|
<option value="archived">Archived</option>
|
||||||
</select>
|
</select>
|
||||||
</div>}
|
</div>}
|
||||||
helpAction={<DocumentationHelpLink reference={DATAFLOW_DOCUMENTATION} />}
|
|
||||||
primaryActions={<div className="dataflow-command-bar">
|
primaryActions={<div className="dataflow-command-bar">
|
||||||
<SegmentedControl<EditorMode>
|
<SegmentedControl<EditorMode>
|
||||||
ariaLabel="Pipeline editor mode"
|
ariaLabel="Pipeline editor mode"
|
||||||
@@ -1953,6 +1953,7 @@ function DataflowTriggersDialog({
|
|||||||
<Dialog
|
<Dialog
|
||||||
open={open}
|
open={open}
|
||||||
title={`Automation · ${pipeline?.name ?? "pipeline"}`}
|
title={`Automation · ${pipeline?.name ?? "pipeline"}`}
|
||||||
|
titleHelp={<DocumentationHelpLink reference={DATAFLOW_FIELDS_DOCUMENTATION} />}
|
||||||
className="dataflow-triggers-dialog"
|
className="dataflow-triggers-dialog"
|
||||||
closeDisabled={busy}
|
closeDisabled={busy}
|
||||||
onClose={close}
|
onClose={close}
|
||||||
@@ -2009,7 +2010,6 @@ function DataflowTriggersDialog({
|
|||||||
{!busy && !triggers.length ? <small>No triggers configured</small> : null}
|
{!busy && !triggers.length ? <small>No triggers configured</small> : null}
|
||||||
</div>
|
</div>
|
||||||
<div className="dataflow-trigger-form">
|
<div className="dataflow-trigger-form">
|
||||||
<DocumentationHelpLink reference={DATAFLOW_FIELDS_DOCUMENTATION} />
|
|
||||||
{error ? <DismissibleAlert tone="danger" resetKey={error}>{error}</DismissibleAlert> : null}
|
{error ? <DismissibleAlert tone="danger" resetKey={error}>{error}</DismissibleAlert> : null}
|
||||||
<FormField label="Name" documentation={DATAFLOW_FIELDS_DOCUMENTATION}>
|
<FormField label="Name" documentation={DATAFLOW_FIELDS_DOCUMENTATION}>
|
||||||
<input disabled={!editable} value={name} onChange={(event) => setName(event.target.value)} />
|
<input disabled={!editable} value={name} onChange={(event) => setName(event.target.value)} />
|
||||||
@@ -2313,6 +2313,7 @@ function RunPipelineDialog({
|
|||||||
<Dialog
|
<Dialog
|
||||||
open={open}
|
open={open}
|
||||||
title={`Run ${pipeline?.name ?? "pipeline"}`}
|
title={`Run ${pipeline?.name ?? "pipeline"}`}
|
||||||
|
titleHelp={<DocumentationHelpLink reference={DATAFLOW_RUN_DOCUMENTATION} />}
|
||||||
className="dataflow-run-dialog"
|
className="dataflow-run-dialog"
|
||||||
onClose={() => {
|
onClose={() => {
|
||||||
if (!busy) {
|
if (!busy) {
|
||||||
@@ -2349,7 +2350,6 @@ function RunPipelineDialog({
|
|||||||
</DismissibleAlert>
|
</DismissibleAlert>
|
||||||
) : null}
|
) : null}
|
||||||
<div className="dataflow-run-controls">
|
<div className="dataflow-run-controls">
|
||||||
<DocumentationHelpLink reference={DATAFLOW_RUN_DOCUMENTATION} />
|
|
||||||
<SegmentedControl<RunMode>
|
<SegmentedControl<RunMode>
|
||||||
ariaLabel="Run output"
|
ariaLabel="Run output"
|
||||||
options={[
|
options={[
|
||||||
|
|||||||
Reference in New Issue
Block a user