Skip to content

Commit

Permalink
fix
Browse files Browse the repository at this point in the history
  • Loading branch information
michael-radency committed Nov 19, 2024
1 parent 124ac26 commit 7df0ca6
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 19 deletions.
48 changes: 29 additions & 19 deletions packages/nodes-base/nodes/Form/Form.node.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ import {

import { formDescription, formFields, formTitle } from '../Form/common.descriptions';
import { prepareFormReturnItem, renderForm, resolveRawData } from '../Form/utils';
import { type CompletionPageConfig } from './interfaces';

const pageProperties = updateDisplayOptions(
{
Expand Down Expand Up @@ -267,22 +268,17 @@ export class Form extends Node {
const method = context.getRequestObject().method;

if (operation === 'completion') {
const respondWith = context.getNodeParameter('respondWith', '') as string;

if (respondWith === 'redirect') {
const redirectUrl = context.getNodeParameter('redirectUrl', '') as string;
res.redirect(redirectUrl);
return {
noWebhookResponse: true,
};
const staticData = context.getWorkflowStaticData('node');
const id = `${context.getExecutionId()}-${context.getNode().name}`;
const config = staticData?.[id] as CompletionPageConfig;
delete staticData[id];

if (config.redirectUrl) {
res.redirect(config.redirectUrl);
return { noWebhookResponse: true };
}

const completionTitle = context.getNodeParameter('completionTitle', '') as string;
const completionMessage = context.getNodeParameter('completionMessage', '') as string;
const options = context.getNodeParameter('options', {}) as {
formTitle: string;
};
let title = options.formTitle;
let title = config.pageTitle;
if (!title) {
title = context.evaluateExpression(
`{{ $('${trigger?.name}').params.formTitle }}`,
Expand All @@ -293,15 +289,13 @@ export class Form extends Node {
) as boolean;

res.render('form-trigger-completion', {
title: completionTitle,
message: completionMessage,
title: config.completionTitle,
message: config.completionMessage,
formTitle: title,
appendAttribution,
});

return {
noWebhookResponse: true,
};
return { noWebhookResponse: true };
}

if (method === 'GET') {
Expand Down Expand Up @@ -415,6 +409,22 @@ export class Form extends Node {
if (operation !== 'completion') {
const waitTill = new Date(WAIT_TIME_UNLIMITED);
await context.putExecutionToWait(waitTill);
} else {
const staticData = context.getWorkflowStaticData('node');
const completionTitle = context.getNodeParameter('completionTitle', 0, '') as string;
const completionMessage = context.getNodeParameter('completionMessage', 0, '') as string;
const redirectUrl = context.getNodeParameter('redirectUrl', 0, '') as string;
const options = context.getNodeParameter('options', 0, {}) as { formTitle: string };
const id = `${context.getExecutionId()}-${context.getNode().name}`;

const config: CompletionPageConfig = {
completionTitle,
completionMessage,
redirectUrl,
pageTitle: options.formTitle,
};

staticData[id] = config;
}

return [context.getInputData()];
Expand Down
7 changes: 7 additions & 0 deletions packages/nodes-base/nodes/Form/interfaces.ts
Original file line number Diff line number Diff line change
Expand Up @@ -31,4 +31,11 @@ export type FormTriggerData = {
buttonLabel?: string;
};

export type CompletionPageConfig = {
pageTitle?: string;
completionMessage?: string;
completionTitle?: string;
redirectUrl?: string;
};

export const FORM_TRIGGER_AUTHENTICATION_PROPERTY = 'authentication';

0 comments on commit 7df0ca6

Please sign in to comment.