diff --git a/ui/src/app/cluster-workflow-templates/components/cluster-workflow-template-details/cluster-workflow-template-details.tsx b/ui/src/app/cluster-workflow-templates/components/cluster-workflow-template-details/cluster-workflow-template-details.tsx index b1cb30e6008a..773c78205580 100644 --- a/ui/src/app/cluster-workflow-templates/components/cluster-workflow-template-details/cluster-workflow-template-details.tsx +++ b/ui/src/app/cluster-workflow-templates/components/cluster-workflow-template-details/cluster-workflow-template-details.tsx @@ -129,8 +129,8 @@ export const ClusterWorkflowTemplateDetails = ({history, location, match}: Route namespace={namespace} name={template.metadata.name} entrypoint={template.spec.entrypoint} - entrypoints={(template.spec.templates || []).map(t => t.name)} - parameters={template.spec.arguments.parameters || []} + templates={template.spec.templates || []} + workflowParameters={template.spec.arguments.parameters || []} /> )} diff --git a/ui/src/app/workflow-templates/components/workflow-template-details/workflow-template-details.tsx b/ui/src/app/workflow-templates/components/workflow-template-details/workflow-template-details.tsx index 9845f7b18655..2cf0b3b81129 100644 --- a/ui/src/app/workflow-templates/components/workflow-template-details/workflow-template-details.tsx +++ b/ui/src/app/workflow-templates/components/workflow-template-details/workflow-template-details.tsx @@ -127,8 +127,8 @@ export const WorkflowTemplateDetails = ({history, location, match}: RouteCompone namespace={namespace} name={name} entrypoint={template.spec.entrypoint} - entrypoints={(template.spec.templates || []).map(t => t.name)} - parameters={template.spec.arguments.parameters || []} + templates={template.spec.templates || []} + workflowParameters={template.spec.arguments.parameters || []} /> )} {sidePanel === 'share' && } diff --git a/ui/src/app/workflows/components/submit-workflow-panel.tsx b/ui/src/app/workflows/components/submit-workflow-panel.tsx index 61f3201ae2c2..0be9c2dfbbe6 100644 --- a/ui/src/app/workflows/components/submit-workflow-panel.tsx +++ b/ui/src/app/workflows/components/submit-workflow-panel.tsx @@ -1,5 +1,5 @@ import * as React from 'react'; -import {Parameter, Workflow} from '../../../models'; +import {Parameter, Template, Workflow} from '../../../models'; import {uiUrl} from '../../shared/base'; import {ErrorNotice} from '../../shared/components/error-notice'; import {services} from '../../shared/services'; @@ -12,25 +12,40 @@ interface Props { namespace: string; name: string; entrypoint: string; - entrypoints: string[]; - parameters: Parameter[]; + templates: Template[]; + workflowParameters: Parameter[]; } interface State { entrypoint: string; + entrypoints: string[]; parameters: Parameter[]; + selectedTemplate: Template; + templates: Template[]; labels: string[]; error?: Error; } +const workflowEntrypoint = ''; + export class SubmitWorkflowPanel extends React.Component { constructor(props: any) { super(props); - this.state = { - entrypoint: this.props.entrypoint || (this.props.entrypoints.length > 0 && this.props.entrypoints[0]), - parameters: this.props.parameters || [], + const defaultTemplate: Template = { + name: workflowEntrypoint, + inputs: { + parameters: this.props.workflowParameters + } + }; + const state = { + entrypoint: workflowEntrypoint, + entrypoints: this.props.templates.map(t => t.name), + selectedTemplate: defaultTemplate, + parameters: this.props.workflowParameters || [], + templates: [defaultTemplate].concat(this.props.templates), labels: ['submit-from-ui=true'] }; + this.state = state; } public render() { @@ -46,11 +61,18 @@ export class SubmitWorkflowPanel extends React.Component { { private submit() { services.workflows .submit(this.props.kind, this.props.name, this.props.namespace, { - entryPoint: this.state.entrypoint, + entryPoint: this.state.entrypoint === workflowEntrypoint ? null : this.state.entrypoint, parameters: this.state.parameters.map(p => p.name + '=' + p.value), labels: this.state.labels.join(',') }) diff --git a/ui/src/app/workflows/components/workflow-creator.tsx b/ui/src/app/workflows/components/workflow-creator.tsx index 300cd8f73bc2..fda7a7a8995d 100644 --- a/ui/src/app/workflows/components/workflow-creator.tsx +++ b/ui/src/app/workflows/components/workflow-creator.tsx @@ -90,8 +90,8 @@ export const WorkflowCreator = ({namespace, onCreate}: {namespace: string; onCre namespace={workflowTemplate.metadata.namespace} name={workflowTemplate.metadata.name} entrypoint={workflowTemplate.spec.entrypoint} - entrypoints={(workflowTemplate.spec.templates || []).map(t => t.name)} - parameters={workflowTemplate.spec.arguments.parameters || []} + templates={workflowTemplate.spec.templates || []} + workflowParameters={workflowTemplate.spec.arguments.parameters || []} /> setStage('full-editor')}> Edit using full workflow options