From 5d57bf517f9a1e3ce4e9615923d6f0ff4e50918a Mon Sep 17 00:00:00 2001 From: Sipke Schoorstra Date: Sun, 19 Sep 2021 13:41:38 +0200 Subject: [PATCH] Update SendHttpRequestPlugin Handle case where there the activity is not SendHttpRequest while activity editor is being closed. --- .../elsa-activity-editor-modal.tsx | 15 +++++++++++++-- .../send-http-request-plugin.tsx | 14 ++++++++++---- .../src/services/plugin-manager.ts | 2 +- 3 files changed, 24 insertions(+), 7 deletions(-) rename src/designer/elsa-workflows-studio/src/plugins/{send-http-request => }/send-http-request-plugin.tsx (78%) diff --git a/src/designer/elsa-workflows-studio/src/components/screens/workflow-definition-editor/elsa-activity-editor-modal/elsa-activity-editor-modal.tsx b/src/designer/elsa-workflows-studio/src/components/screens/workflow-definition-editor/elsa-activity-editor-modal/elsa-activity-editor-modal.tsx index d1c7acde1..fb6000a7c 100644 --- a/src/designer/elsa-workflows-studio/src/components/screens/workflow-definition-editor/elsa-activity-editor-modal/elsa-activity-editor-modal.tsx +++ b/src/designer/elsa-workflows-studio/src/components/screens/workflow-definition-editor/elsa-activity-editor-modal/elsa-activity-editor-modal.tsx @@ -27,11 +27,17 @@ export interface ActivityEditorRenderProps { selectedTabName?: string; } -export interface ActivityEditorAppearingEventArgs { +export interface ActivityEditorEventArgs { activityDescriptor: ActivityDescriptor; activityModel: ActivityModel; } +export interface ActivityEditorAppearingEventArgs extends ActivityEditorEventArgs { +} + +export interface ActivityEditorDisappearingEventArgs extends ActivityEditorEventArgs { +} + @Component({ tag: 'elsa-activity-editor-modal', shadow: false, @@ -189,7 +195,12 @@ export class ElsaActivityEditorModal { }; onDialogHidden = async () => { - await eventBus.emit(EventTypes.ActivityEditor.Disappearing); + const args: ActivityEditorDisappearingEventArgs = { + activityModel: this.activityModel, + activityDescriptor: this.activityDescriptor + }; + + await eventBus.emit(EventTypes.ActivityEditor.Disappearing, this, args); }; render() { diff --git a/src/designer/elsa-workflows-studio/src/plugins/send-http-request/send-http-request-plugin.tsx b/src/designer/elsa-workflows-studio/src/plugins/send-http-request-plugin.tsx similarity index 78% rename from src/designer/elsa-workflows-studio/src/plugins/send-http-request/send-http-request-plugin.tsx rename to src/designer/elsa-workflows-studio/src/plugins/send-http-request-plugin.tsx index 46a806434..26e4d6f7e 100644 --- a/src/designer/elsa-workflows-studio/src/plugins/send-http-request/send-http-request-plugin.tsx +++ b/src/designer/elsa-workflows-studio/src/plugins/send-http-request-plugin.tsx @@ -1,7 +1,10 @@ -import {eventBus, ElsaPlugin} from "../../services"; -import {EventTypes} from "../../models"; +import {eventBus, ElsaPlugin} from "../services"; +import {EventTypes} from "../models"; import {h} from "@stencil/core"; -import {ActivityEditorAppearingEventArgs} from "../../components/screens/workflow-definition-editor/elsa-activity-editor-modal/elsa-activity-editor-modal"; +import { + ActivityEditorAppearingEventArgs, + ActivityEditorDisappearingEventArgs +} from "../components/screens/workflow-definition-editor/elsa-activity-editor-modal/elsa-activity-editor-modal"; export class SendHttpRequestPlugin implements ElsaPlugin { constructor() { @@ -19,7 +22,10 @@ export class SendHttpRequestPlugin implements ElsaPlugin { this.updateUI(); }; - onActivityEditorDisappearing = () => { + onActivityEditorDisappearing = (args: ActivityEditorDisappearingEventArgs) => { + if (args.activityDescriptor.type != 'SendHttpRequest') + return; + document.querySelector('#ReadContent').removeEventListener('change', this.updateUI); document.querySelector('#ResponseContentParserName').removeEventListener('change', this.updateUI); }; diff --git a/src/designer/elsa-workflows-studio/src/services/plugin-manager.ts b/src/designer/elsa-workflows-studio/src/services/plugin-manager.ts index 37400e0b9..0debbfc0c 100644 --- a/src/designer/elsa-workflows-studio/src/services/plugin-manager.ts +++ b/src/designer/elsa-workflows-studio/src/services/plugin-manager.ts @@ -16,7 +16,7 @@ import {SignalReceivedPlugin} from "../plugins/signal-received-plugin"; import {SendSignalPlugin} from "../plugins/send-signal-plugin"; import {UserTaskPlugin} from "../plugins/user-task-plugin"; import {StatePlugin} from "../plugins/state-plugin"; -import {SendHttpRequestPlugin} from "../plugins/send-http-request/send-http-request-plugin"; +import {SendHttpRequestPlugin} from "../plugins/send-http-request-plugin"; import {RunWorkflowPlugin} from "../plugins/run-workflow-plugin"; import {ElsaStudio} from "../models";