{ if (isSuspendEnabled && flowModule.suspend != undefined) { flowModule.suspend = undefined } else { flowModule.suspend = stepSettingDefaults('suspend') } }} options={{ right: 'Suspend until approval/resume', rightTooltip: 'At the end of the step, the flow is suspended until it receives external requests to resume or cancel it. Most useful for approval steps, but can be used flexibly for other purposes.', rightDocumentationLink: 'https://www.windmill.dev/docs/flows/flow_approval' }} /> {#if isSuspendEnabled}
{#if suspendTabSelected === 'core'}
{ if (flowModule.suspend) { flowModule.suspend.continue_on_disapprove_timeout = e.detail } }} /> {#if Boolean(flowModule.suspend?.continue_on_disapprove_timeout)} We recommend using the expr resume?.error to handle null payload values.
To filter timeout, use resume?.error?.name === "SuspendedTimedOut".
To filter disapproval, use resume?.error?.name === "SuspendedDisapproved"
{/if}
{:else if suspendTabSelected === 'permissions'}
{ if (flowModule.suspend) { flowModule.suspend.user_auth_required = e.detail if (e.detail && flowModule.suspend?.user_groups_required === undefined) { flowModule.suspend.user_groups_required = { type: 'static', value: [] } } else if (!e.detail) { flowModule.suspend.user_groups_required = undefined flowModule.suspend.self_approval_disabled = false } } }} /> { if (flowModule.suspend) { flowModule.suspend.self_approval_disabled = e.detail } }} />
{#if Boolean(flowModule.suspend?.user_auth_required) && allUserGroups.length !== 0 && flowModule.suspend && schema.properties['groups']} Require approvers to be members of one of the following user groups (leave empty for any) { editor?.insertAtCursor(detail) editor?.focus() }} > {/if}
{:else}
{#if flowModule?.suspend?.resume_form}
{:else if emptyString($enterpriseLicense)} {:else} {/if} flowModule.suspend?.resume_form?.schema ?? draftFormSchema, (v) => { if (flowModule.suspend) { flowModule.suspend.resume_form = { schema: v } } } } drawerOnly /> {#if flowModule.suspend?.resume_form} { if (flowModule.suspend) { flowModule.suspend.hide_cancel = e.detail } }} options={{ right: 'Hide cancel button on approval page' }} /> {/if}
{/if}
{/if}