Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cd59137d4c |
@@ -144,7 +144,10 @@ manifest = ModuleManifest(
|
||||
id="workflow.workspace-layout",
|
||||
title="Workflow workspace actions",
|
||||
summary="Find collection-wide commands in their consistent workspace position.",
|
||||
body="Reload and New workflow 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. Graph editing, validation, saving, publication, and execution remain separate pane-local actions. 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="Documentation books sit immediately beside the visible heading or contextual label for "
|
||||
"Workflows, the current workflow and its inspector, not among operational action buttons. "
|
||||
"Field help remains beside its label. "
|
||||
"Reload and New workflow 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. Graph editing, validation, saving, publication, and execution remain separate pane-local actions. 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"),
|
||||
@@ -152,7 +155,10 @@ manifest = ModuleManifest(
|
||||
translations={"de": {
|
||||
"title": "Workflows: Aktionen im Arbeitsbereich",
|
||||
"summary": "Sammlungsweite Aktionen an ihrer einheitlichen Position im Arbeitsbereich finden.",
|
||||
"body": "Neu laden und Neuer Workflow 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. Graphbearbeitung, Validierung, Speichern, Veröffentlichung und Ausführung bleiben getrennte Aktionen im jeweiligen Bereich. 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": "Dokumentationsbücher stehen unmittelbar neben der sichtbaren Überschrift oder "
|
||||
"Kontextbezeichnung für Workflows, den aktuellen Workflow und seine Detailansicht, nicht "
|
||||
"zwischen ausführbaren Aktionsschaltflächen. Feldhilfe bleibt neben der Feldbezeichnung. "
|
||||
"Neu laden und Neuer Workflow 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. Graphbearbeitung, Validierung, Speichern, Veröffentlichung und Ausführung bleiben getrennte Aktionen im jeweiligen Bereich. 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(
|
||||
|
||||
@@ -4,6 +4,7 @@ import {
|
||||
ActionToolbar,
|
||||
Button,
|
||||
DocumentationHelpLink,
|
||||
TextWithHelp,
|
||||
DismissibleAlert,
|
||||
FormField,
|
||||
ReferenceMultiSelect,
|
||||
@@ -212,17 +213,18 @@ export default function WorkflowInspector({
|
||||
<ActionToolbar surface="section-header" className="workflow-panel-heading">
|
||||
<span>
|
||||
<strong>Inspector</strong>
|
||||
<small>{definition?.label ?? node.type}</small>
|
||||
<TextWithHelp help={semanticDefinitionId && semanticStepAvailable ? <DocumentationHelpLink
|
||||
reference={{
|
||||
contextId: semanticHelpContext(semanticDefinitionId, node.id),
|
||||
documentationType: "user"
|
||||
}}
|
||||
label="Open step meaning"
|
||||
/> : undefined}>
|
||||
<small>{definition?.label ?? node.type}</small>
|
||||
</TextWithHelp>
|
||||
</span>
|
||||
<span className="workflow-inspector-actions">
|
||||
{semanticDefinitionId && semanticStepAvailable ? <>
|
||||
<DocumentationHelpLink
|
||||
reference={{
|
||||
contextId: semanticHelpContext(semanticDefinitionId, node.id),
|
||||
documentationType: "user"
|
||||
}}
|
||||
label="Open step meaning"
|
||||
/>
|
||||
<a
|
||||
className="btn btn-secondary"
|
||||
href={semanticAuthoringHref(semanticDefinitionId, node.id)}
|
||||
|
||||
@@ -602,8 +602,8 @@ export default function WorkflowPage({
|
||||
variant="collection"
|
||||
refreshable
|
||||
reloadAction={{ onReload: () => void reload(draft?.id), loading: loading || working }}
|
||||
title="Workflows"
|
||||
contextActions={<>
|
||||
<strong>Workflows</strong>
|
||||
{hasScope(auth, "workflow:instance:admin") ? (
|
||||
<IconButton
|
||||
label="Reconcile module standards"
|
||||
@@ -614,7 +614,7 @@ export default function WorkflowPage({
|
||||
/>
|
||||
) : null}
|
||||
</>}
|
||||
helpAction={<DocumentationHelpLink
|
||||
titleHelp={<DocumentationHelpLink
|
||||
reference={{ topicId: "workflow.editor", documentationType: "user" }}
|
||||
label="Open Workflow documentation"
|
||||
/>}
|
||||
@@ -709,14 +709,15 @@ export default function WorkflowPage({
|
||||
aria-label="Workflow description"
|
||||
/>
|
||||
</span>}
|
||||
helpAction={draft.id ? <>
|
||||
<DocumentationHelpLink
|
||||
title="Workflow"
|
||||
titleHelp={draft.id ? <DocumentationHelpLink
|
||||
reference={{
|
||||
contextId: semanticHelpContext(draft.id),
|
||||
documentationType: "user"
|
||||
}}
|
||||
label="Open workflow meaning"
|
||||
/>
|
||||
/> : undefined}
|
||||
helpAction={draft.id ?
|
||||
<a
|
||||
className="btn btn-secondary"
|
||||
href={semanticAuthoringHref(draft.id)}
|
||||
@@ -725,7 +726,7 @@ export default function WorkflowPage({
|
||||
>
|
||||
<BookOpen size={16} aria-hidden="true" /> Document meaning
|
||||
</a>
|
||||
</> : undefined}
|
||||
: undefined}
|
||||
primaryActions={<span className="workflow-command-bar">
|
||||
{draft.id ? (
|
||||
<select
|
||||
|
||||
Executable
+14
@@ -0,0 +1,14 @@
|
||||
import type { PlatformTranslations } from "@govoplan/core-webui";
|
||||
|
||||
/** Module-owned translations for contextual headings. */
|
||||
export const generatedTranslations: PlatformTranslations = {
|
||||
en: {
|
||||
"Workflows": "Workflows",
|
||||
"Workflow": "Workflow",
|
||||
},
|
||||
de: {
|
||||
"Workflows": "Workflows",
|
||||
"Workflow": "Workflow",
|
||||
},
|
||||
};
|
||||
|
||||
@@ -3,6 +3,7 @@ import type {
|
||||
DashboardWidgetsUiCapability,
|
||||
PlatformWebModule
|
||||
} from "@govoplan/core-webui";
|
||||
import { generatedTranslations } from "./i18n/generatedTranslations";
|
||||
import "@xyflow/react/dist/style.css";
|
||||
import "./styles/workflow.css";
|
||||
|
||||
@@ -64,6 +65,7 @@ const workflowDashboardWidgets: DashboardWidgetsUiCapability = {
|
||||
};
|
||||
|
||||
export const workflowModule: PlatformWebModule = {
|
||||
translations: generatedTranslations,
|
||||
id: "workflow",
|
||||
label: "Workflow",
|
||||
version: "0.1.14",
|
||||
|
||||
Reference in New Issue
Block a user