diff --git a/public/pages/workflow_detail/components/header.tsx b/public/pages/workflow_detail/components/header.tsx
index 88266500..b4854043 100644
--- a/public/pages/workflow_detail/components/header.tsx
+++ b/public/pages/workflow_detail/components/header.tsx
@@ -50,14 +50,9 @@ export function WorkflowDetailHeader(props: WorkflowDetailHeaderProps) {
}
rightSideItems={[
- // TODO: finalize if this is needed
- {}}
- >
- Delete
+ // TODO: implement export functionality
+ {}}>
+ Export
,
]}
bottomBorder={true}
diff --git a/public/pages/workflow_detail/resizable_workspace.tsx b/public/pages/workflow_detail/resizable_workspace.tsx
index 377eb962..62f634c0 100644
--- a/public/pages/workflow_detail/resizable_workspace.tsx
+++ b/public/pages/workflow_detail/resizable_workspace.tsx
@@ -11,11 +11,9 @@ import { Form, Formik, FormikProps } from 'formik';
import * as yup from 'yup';
import { cloneDeep } from 'lodash';
import {
- EuiButton,
EuiCallOut,
EuiFlexGroup,
EuiFlexItem,
- EuiPageHeader,
EuiResizableContainer,
} from '@elastic/eui';
import { getCore } from '../../services';
@@ -34,23 +32,11 @@ import {
componentDataToFormik,
getComponentSchema,
processNodes,
- reduceToTemplate,
APP_PATH,
} from '../../utils';
import { validateWorkspaceFlow, toTemplateFlows } from './utils';
-import {
- AppState,
- createWorkflow,
- deprovisionWorkflow,
- getWorkflowState,
- provisionWorkflow,
- removeDirty,
- setDirty,
- updateWorkflow,
- useAppDispatch,
-} from '../../store';
+import { AppState, setDirty, useAppDispatch } from '../../store';
import { Workspace } from './workspace/workspace';
-import { ComponentDetails } from './component_details';
// styling
import './workspace/workspace-styles.scss';
@@ -338,114 +324,6 @@ export function ResizableWorkspace(props: ResizableWorkspaceProps) {
deprovisioned.
)}
- {
- if (workflow?.id) {
- setIsDeprovisioning(true);
- dispatch(deprovisionWorkflow(workflow.id))
- .unwrap()
- .then(async (result) => {
- await new Promise((f) => setTimeout(f, 3000));
- dispatch(getWorkflowState(workflow.id as string));
- setIsDeprovisioning(false);
- })
- .catch((error: any) => {
- setIsDeprovisioning(false);
- });
- } else {
- // This case should not happen
- console.debug(
- 'Deprovisioning triggered on an invalid workflow. Ignoring.'
- );
- }
- }}
- >
- Deprovision
- ,
- {
- if (workflow?.id) {
- setIsProvisioning(true);
- dispatch(provisionWorkflow(workflow.id))
- .unwrap()
- .then(async (result) => {
- await new Promise((f) => setTimeout(f, 3000));
- dispatch(getWorkflowState(workflow.id as string));
- setIsProvisioning(false);
- })
- .catch((error: any) => {
- setIsProvisioning(false);
- });
- } else {
- // This case should not happen
- console.debug(
- 'Provisioning triggered on an invalid workflow. Ignoring.'
- );
- }
- }}
- >
- Provision
- ,
- {
- setIsSaving(true);
- dispatch(removeDirty());
- if (isFirstSave) {
- setIsFirstSave(false);
- }
- validateFormAndFlow(
- formikProps,
- // The callback fn to run if everything is valid.
- (updatedWorkflow) => {
- if (updatedWorkflow.id) {
- dispatch(
- updateWorkflow({
- workflowId: updatedWorkflow.id,
- workflowTemplate: reduceToTemplate(updatedWorkflow),
- })
- )
- .unwrap()
- .then((result) => {
- setIsSaving(false);
- })
- .catch((error: any) => {
- setIsSaving(false);
- });
- } else {
- dispatch(createWorkflow(updatedWorkflow))
- .unwrap()
- .then((result) => {
- const { workflow } = result;
- history.replace(
- `${APP_PATH.WORKFLOWS}/${workflow.id}`
- );
- history.go(0);
- })
- .catch((error: any) => {
- setIsSaving(false);
- });
- }
- }
- );
- }}
- >
- {props.isNewWorkflow || isCreating ? 'Create' : 'Save'}
- ,
- ]}
- bottomBorder={false}
- />
diff --git a/public/pages/workflows/new_workflow/utils.ts b/public/pages/workflows/new_workflow/utils.ts
index 320a09f2..95f055dc 100644
--- a/public/pages/workflows/new_workflow/utils.ts
+++ b/public/pages/workflows/new_workflow/utils.ts
@@ -27,6 +27,9 @@ import {
NormalizationTransformer,
} from '../../../component_types';
+// TODO: change from producing a flow state, to producing a form state w/ some preset values.
+// The form will generate the end flow state.
+
// Fn to produce the complete preset template with all necessary UI metadata.
// Some UI metadata we want to generate on-the-fly using our component classes we have on client-side.
// Thus, we only persist a minimal subset of a full template on server-side. We generate