From 2858dda8b30c294d9d6eee3a679a52c303d22435 Mon Sep 17 00:00:00 2001 From: Riccardo Forina Date: Fri, 10 May 2019 15:49:51 +0200 Subject: [PATCH] add support for extensions --- .../integrations/IntegrationCreatorApp.tsx | 4 -- .../integrations/IntegrationEditorApp.tsx | 2 - .../editor/step/WithConfigurationForm.tsx | 37 ++++++++++++++----- .../integrations/components/editor/utils.ts | 4 +- 4 files changed, 28 insertions(+), 19 deletions(-) diff --git a/app/ui-react/syndesis/src/modules/integrations/IntegrationCreatorApp.tsx b/app/ui-react/syndesis/src/modules/integrations/IntegrationCreatorApp.tsx index 495b0f7b172..7e1b64d460b 100644 --- a/app/ui-react/syndesis/src/modules/integrations/IntegrationCreatorApp.tsx +++ b/app/ui-react/syndesis/src/modules/integrations/IntegrationCreatorApp.tsx @@ -45,7 +45,6 @@ const addStepPage = ( }) } filterHref={resolvers.create.configure.editStep.basicFilter} - extensionHref={resolvers.create.configure.editStep.extension} mapperHref={resolvers.create.configure.editStep.dataMapper} templateHref={resolvers.create.configure.editStep.template} stepHref={(step, params, state) => @@ -83,7 +82,6 @@ const startStepSelectConnectionPage = ( }) } filterHref={resolvers.create.start.basicFilter} - extensionHref={resolvers.create.start.extension} mapperHref={resolvers.create.start.dataMapper} templateHref={resolvers.create.start.template} stepHref={resolvers.create.start.step} @@ -278,7 +276,6 @@ const finishStepSelectConnectionPage = ( }) } filterHref={resolvers.create.finish.basicFilter} - extensionHref={resolvers.create.finish.extension} mapperHref={resolvers.create.finish.dataMapper} templateHref={resolvers.create.finish.template} stepHref={(step, params, state) => @@ -488,7 +485,6 @@ const addStepSelectConnectionPage = ( }) } filterHref={resolvers.create.configure.addStep.basicFilter} - extensionHref={resolvers.create.configure.addStep.extension} mapperHref={resolvers.create.configure.addStep.dataMapper} templateHref={resolvers.create.configure.addStep.template} stepHref={(step, params, state) => diff --git a/app/ui-react/syndesis/src/modules/integrations/IntegrationEditorApp.tsx b/app/ui-react/syndesis/src/modules/integrations/IntegrationEditorApp.tsx index e41b3d9aee6..b2f81ac916c 100644 --- a/app/ui-react/syndesis/src/modules/integrations/IntegrationEditorApp.tsx +++ b/app/ui-react/syndesis/src/modules/integrations/IntegrationEditorApp.tsx @@ -41,7 +41,6 @@ const addStepPage = ( }) } filterHref={resolvers.integration.edit.editStep.basicFilter} - extensionHref={resolvers.integration.edit.editStep.extension} mapperHref={resolvers.integration.edit.editStep.dataMapper} templateHref={resolvers.integration.edit.editStep.template} stepHref={(step, params, state) => @@ -72,7 +71,6 @@ const selectConnectionPage = ( }) } filterHref={resolvers.integration.edit.addStep.basicFilter} - extensionHref={resolvers.integration.edit.addStep.extension} mapperHref={resolvers.integration.edit.addStep.dataMapper} templateHref={resolvers.integration.edit.addStep.template} stepHref={(step, params, state) => diff --git a/app/ui-react/syndesis/src/modules/integrations/components/editor/step/WithConfigurationForm.tsx b/app/ui-react/syndesis/src/modules/integrations/components/editor/step/WithConfigurationForm.tsx index f39b8946544..f9962c851cd 100644 --- a/app/ui-react/syndesis/src/modules/integrations/components/editor/step/WithConfigurationForm.tsx +++ b/app/ui-react/syndesis/src/modules/integrations/components/editor/step/WithConfigurationForm.tsx @@ -1,6 +1,11 @@ -import { ALL_STEPS } from '@syndesis/api'; +import { + ALL_STEPS, + getActionStep, + getActionStepDefinition, + getActionSteps, +} from '@syndesis/api'; import { AutoForm } from '@syndesis/auto-form'; -import { IConfigurationProperties, StepKind } from '@syndesis/models'; +import { StepKind } from '@syndesis/models'; import { IntegrationEditorForm } from '@syndesis/ui'; import { toFormDefinition } from '@syndesis/utils'; import * as React from 'react'; @@ -83,17 +88,25 @@ export class WithConfigurationForm extends React.Component< }); actions.setSubmitting(false); }; - // this can throw if the stepKind is not available for any given reason. Let - // the error boundary catch and handle this. - const step = this.props.step.properties + let step = this.props.step.properties ? this.props.step - : ALL_STEPS.find(s => s.stepKind === this.props.step.stepKind)!; + : ALL_STEPS.find(s => s.stepKind === this.props.step.stepKind); + + let definition; + + // if step is undefined, maybe we are dealing with an extension + if (!step) { + const steps = getActionSteps(this.props.step.action!.descriptor!); + const actionStep = getActionStep(steps, 0); + definition = getActionStepDefinition(actionStep); + step = this.props.step; + } else { + definition = step.properties; + } return ( i18nRequiredProperty={'* Required field'} - definition={toFormDefinition( - step.properties as IConfigurationProperties - )} + definition={toFormDefinition(definition)} initialValue={this.props.step.configuredProperties || {}} onSave={onSave} key={this.props.step.id} @@ -102,7 +115,11 @@ export class WithConfigurationForm extends React.Component< this.props.children({ form: (