diff --git a/app/scripts/modules/core/src/pipeline/config/pipelineConfigurer.js b/app/scripts/modules/core/src/pipeline/config/pipelineConfigurer.js index 3897e503e5b..07aabfd414f 100644 --- a/app/scripts/modules/core/src/pipeline/config/pipelineConfigurer.js +++ b/app/scripts/modules/core/src/pipeline/config/pipelineConfigurer.js @@ -537,23 +537,20 @@ module.exports = angular //update pipeline through a callback for React this.updatePipelineConfig = changes => { - $scope.$applyAsync(() => { - $scope.pipeline = Object.assign( - {}, - $scope.pipeline, - $scope.isV2TemplatedPipeline - ? PipelineTemplateV2Service.filterInheritedConfig(Object.assign({}, changes)) - : changes, - ); + $scope.pipeline = Object.assign( + $scope.pipeline, + $scope.isV2TemplatedPipeline + ? PipelineTemplateV2Service.filterInheritedConfig(Object.assign({}, changes)) + : changes, + ); - if ($scope.isV2TemplatedPipeline) { - $scope.renderablePipeline = Object.assign({}, $scope.renderablePipeline, changes); - } else if (!$scope.isTemplatedPipeline) { - $scope.renderablePipeline = $scope.pipeline; - } + if ($scope.isV2TemplatedPipeline) { + $scope.renderablePipeline = Object.assign($scope.renderablePipeline, changes); + } else if (!$scope.isTemplatedPipeline) { + $scope.renderablePipeline = $scope.pipeline; + } - markDirty(); - }); + markDirty(); }; }, ]); diff --git a/app/scripts/modules/core/src/pipeline/config/triggers/TriggersWrapper.tsx b/app/scripts/modules/core/src/pipeline/config/triggers/TriggersWrapper.tsx new file mode 100644 index 00000000000..b7169ab9aae --- /dev/null +++ b/app/scripts/modules/core/src/pipeline/config/triggers/TriggersWrapper.tsx @@ -0,0 +1,15 @@ +import * as React from 'react'; + +import { IPipeline } from 'core/domain'; +import { ITriggersProps, Triggers } from 'core/pipeline'; + +export class TriggersWrapper extends React.Component { + private updatePipelineConfig = (changes: Partial): void => { + this.props.updatePipelineConfig(changes); + this.forceUpdate(); + }; + + public render() { + return ; + } +} diff --git a/app/scripts/modules/core/src/pipeline/config/triggers/triggers.module.ts b/app/scripts/modules/core/src/pipeline/config/triggers/triggers.module.ts index 9bff97890fb..a07c58d8c63 100644 --- a/app/scripts/modules/core/src/pipeline/config/triggers/triggers.module.ts +++ b/app/scripts/modules/core/src/pipeline/config/triggers/triggers.module.ts @@ -1,11 +1,11 @@ import { module } from 'angular'; import { react2angular } from 'react2angular'; -import { Triggers } from './Triggers'; +import { TriggersWrapper } from './TriggersWrapper'; import { ARTIFACT_MODULE } from './artifacts/artifact.module'; export const TRIGGERS = 'spinnaker.core.pipeline.config.trigger.triggersDirective'; module(TRIGGERS, [ARTIFACT_MODULE]).component( 'triggers', - react2angular(Triggers, ['application', 'pipeline', 'fieldUpdated', 'updatePipelineConfig', 'viewState']), + react2angular(TriggersWrapper, ['application', 'pipeline', 'fieldUpdated', 'updatePipelineConfig', 'viewState']), ); diff --git a/app/scripts/modules/core/src/pipeline/index.ts b/app/scripts/modules/core/src/pipeline/index.ts index 49602b81933..b040061feea 100644 --- a/app/scripts/modules/core/src/pipeline/index.ts +++ b/app/scripts/modules/core/src/pipeline/index.ts @@ -10,6 +10,7 @@ export * from './config/stages/templates'; export * from './config/templates'; export * from './config/triggers/baseBuild/BaseBuildTriggerTemplate'; export * from './config/triggers/RunAsUser'; +export * from './config/triggers/Triggers'; export * from './config/validation/PipelineConfigValidator'; export * from './create'; export * from './details'; diff --git a/app/scripts/modules/core/src/pipeline/manualExecution/ManualPipelineExecutionModal.tsx b/app/scripts/modules/core/src/pipeline/manualExecution/ManualPipelineExecutionModal.tsx index cf441c7a6a2..842ec11a24d 100644 --- a/app/scripts/modules/core/src/pipeline/manualExecution/ManualPipelineExecutionModal.tsx +++ b/app/scripts/modules/core/src/pipeline/manualExecution/ManualPipelineExecutionModal.tsx @@ -289,7 +289,7 @@ export class ManualExecutionModal extends React.Component !TRIGGER_FIELDS_TO_EXCLUDE.includes(key));