feat(workflows): React Flow canvas editor + list + approvals UI
Adds the admin Workflows surface (top-level nav, gated by the workflows flag + workflows.view): a list page (enable toggle, delete, new), a pending-approvals inbox (confirm/deny), and a React Flow (@xyflow/react) canvas editor — palette to add nodes, drag handle→handle to connect (branch/gate/loop expose yes-no / confirm-deny / loop-exit handles), a side-panel JSON config editor, and save (writes a new version). Routes + sidebar entry + workflows.service. Build + tsc clean. NOTE: the workflow page strings render via inline English fallbacks; DE translations for the workflows.* block are still pending native review.
This commit is contained in:
@@ -46,6 +46,9 @@ import { QuoteResponsePage } from './pages/public/QuoteResponsePage';
|
||||
import { ContractResponsePage } from './pages/public/ContractResponsePage';
|
||||
import { ProjectsListPage } from './pages/admin/projects/ProjectsListPage';
|
||||
import { ProjectCockpitPage } from './pages/admin/projects/ProjectCockpitPage';
|
||||
import { WorkflowsListPage } from './pages/admin/workflows/WorkflowsListPage';
|
||||
import { WorkflowApprovalsPage } from './pages/admin/workflows/WorkflowApprovalsPage';
|
||||
import { WorkflowEditorPage } from './pages/admin/workflows/WorkflowEditorPage';
|
||||
import { ContractsListPage } from './pages/admin/contracts/ContractsListPage';
|
||||
import { ContractEditorPage } from './pages/admin/contracts/ContractEditorPage';
|
||||
import { ContractDetailPage } from './pages/admin/contracts/ContractDetailPage';
|
||||
@@ -314,6 +317,14 @@ function App() {
|
||||
<Route path="customers" element={<Navigate to="/admin/clients/accounts" replace />} />
|
||||
<Route path="customers/:id" element={<RedirectCustomerDetail />} />
|
||||
|
||||
{/* Workflows (automation engine) — top-level area gated
|
||||
by the `workflows` flag. */}
|
||||
<Route element={<RequireFeature flag="workflows" />}>
|
||||
<Route path="workflows" element={<WorkflowsListPage />} />
|
||||
<Route path="workflows/approvals" element={<WorkflowApprovalsPage />} />
|
||||
<Route path="workflows/:id" element={<WorkflowEditorPage />} />
|
||||
</Route>
|
||||
|
||||
<Route path="settings" element={<SettingsPage />} />
|
||||
<Route path="system-health" element={<SystemHealthPage />} />
|
||||
<Route path="webhooks/:id/deliveries" element={<WebhookDeliveriesPage />} />
|
||||
|
||||
Reference in New Issue
Block a user