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",
|
||||
title="Dataflow workspace actions",
|
||||
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",
|
||||
documentation_types=("user", "admin"),
|
||||
audience=("user", "module_admin", "operator"),
|
||||
@@ -258,7 +260,10 @@ DOCUMENTATION = localize_documentation_topics((
|
||||
translations={"de": {
|
||||
"title": "Datenflüsse: Aktionen im Arbeitsbereich",
|
||||
"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(
|
||||
|
||||
@@ -67,12 +67,13 @@ class DataflowInterfaceDocumentationContractTests(unittest.TestCase):
|
||||
|
||||
for component in (
|
||||
"ActionBlockerHint",
|
||||
"DocumentationHelpLink",
|
||||
"titleHelp={<DocumentationHelpLink reference={DATAFLOW_DOCUMENTATION} />}",
|
||||
"useUnsavedDraftGuard",
|
||||
"ConfirmDialog",
|
||||
):
|
||||
self.assertIn(component, page)
|
||||
self.assertIn("DATAFLOW_NODE_DOCUMENTATION", inspector)
|
||||
self.assertNotIn("helpAction=", page)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
@@ -668,11 +668,12 @@ export default function DataflowPage({ settings, auth }: { settings: ApiSettings
|
||||
return (
|
||||
<WorkspaceFrame as="main" height="viewport" surface="plain" className="dataflow-page" label="Dataflow workspace">
|
||||
<WorkspaceActionBar
|
||||
title="Pipelines"
|
||||
titleHelp={<DocumentationHelpLink reference={DATAFLOW_DOCUMENTATION} />}
|
||||
scope="workspace"
|
||||
variant="collection"
|
||||
refreshable
|
||||
reloadAction={{ onReload: () => void loadPipelines(draft?.id), loading, label: "Refresh pipelines" }}
|
||||
contextActions={<strong>Pipelines</strong>}
|
||||
createAction={<IconButton
|
||||
label="New pipeline"
|
||||
icon={<Plus size={17} />}
|
||||
@@ -759,7 +760,6 @@ export default function DataflowPage({ settings, auth }: { settings: ApiSettings
|
||||
<option value="archived">Archived</option>
|
||||
</select>
|
||||
</div>}
|
||||
helpAction={<DocumentationHelpLink reference={DATAFLOW_DOCUMENTATION} />}
|
||||
primaryActions={<div className="dataflow-command-bar">
|
||||
<SegmentedControl<EditorMode>
|
||||
ariaLabel="Pipeline editor mode"
|
||||
@@ -1953,6 +1953,7 @@ function DataflowTriggersDialog({
|
||||
<Dialog
|
||||
open={open}
|
||||
title={`Automation · ${pipeline?.name ?? "pipeline"}`}
|
||||
titleHelp={<DocumentationHelpLink reference={DATAFLOW_FIELDS_DOCUMENTATION} />}
|
||||
className="dataflow-triggers-dialog"
|
||||
closeDisabled={busy}
|
||||
onClose={close}
|
||||
@@ -2009,7 +2010,6 @@ function DataflowTriggersDialog({
|
||||
{!busy && !triggers.length ? <small>No triggers configured</small> : null}
|
||||
</div>
|
||||
<div className="dataflow-trigger-form">
|
||||
<DocumentationHelpLink reference={DATAFLOW_FIELDS_DOCUMENTATION} />
|
||||
{error ? <DismissibleAlert tone="danger" resetKey={error}>{error}</DismissibleAlert> : null}
|
||||
<FormField label="Name" documentation={DATAFLOW_FIELDS_DOCUMENTATION}>
|
||||
<input disabled={!editable} value={name} onChange={(event) => setName(event.target.value)} />
|
||||
@@ -2313,6 +2313,7 @@ function RunPipelineDialog({
|
||||
<Dialog
|
||||
open={open}
|
||||
title={`Run ${pipeline?.name ?? "pipeline"}`}
|
||||
titleHelp={<DocumentationHelpLink reference={DATAFLOW_RUN_DOCUMENTATION} />}
|
||||
className="dataflow-run-dialog"
|
||||
onClose={() => {
|
||||
if (!busy) {
|
||||
@@ -2349,7 +2350,6 @@ function RunPipelineDialog({
|
||||
</DismissibleAlert>
|
||||
) : null}
|
||||
<div className="dataflow-run-controls">
|
||||
<DocumentationHelpLink reference={DATAFLOW_RUN_DOCUMENTATION} />
|
||||
<SegmentedControl<RunMode>
|
||||
ariaLabel="Run output"
|
||||
options={[
|
||||
|
||||
Reference in New Issue
Block a user