diff --git a/frontend/src/lib/components/FlowGraphViewer.svelte b/frontend/src/lib/components/FlowGraphViewer.svelte index b81b1184c2..d805c1fa44 100644 --- a/frontend/src/lib/components/FlowGraphViewer.svelte +++ b/frontend/src/lib/components/FlowGraphViewer.svelte @@ -12,6 +12,7 @@ description?: string value: FlowValue schema?: any + path?: string } export let overflowAuto = false export let noSide = false @@ -30,6 +31,7 @@ class:overflow-auto={overflowAuto} > {/if} diff --git a/frontend/src/lib/components/details/DetailPageLayout.svelte b/frontend/src/lib/components/details/DetailPageLayout.svelte index a9690d5982..47cd775a11 100644 --- a/frontend/src/lib/components/details/DetailPageLayout.svelte +++ b/frontend/src/lib/components/details/DetailPageLayout.svelte @@ -8,7 +8,7 @@ export let flow_json: any | undefined = undefined export let hasStepDetails: boolean = false export let selected: string - export let triggerSelected: 'webhooks' | 'schedule' | 'cli' = 'webhooks' + export let triggerSelected: 'webhooks' | 'schedule' | 'cli' | 'email' = 'webhooks' let mobileTab: 'form' | 'detail' = 'form' diff --git a/frontend/src/lib/components/flows/map/FlowModuleSchemaMap.svelte b/frontend/src/lib/components/flows/map/FlowModuleSchemaMap.svelte index 8fbe61a9e6..ca583994ef 100644 --- a/frontend/src/lib/components/flows/map/FlowModuleSchemaMap.svelte +++ b/frontend/src/lib/components/flows/map/FlowModuleSchemaMap.svelte @@ -254,6 +254,7 @@
{ + $selectedId = 'settings-schedule' + }} />
= writable(undefined) export let path: string | undefined = undefined + export let isEditor: boolean = false export let insertable = false export let moving: string | undefined = undefined @@ -168,7 +169,17 @@ success, $useDataflow, $selectedId, - moving + moving, + { + openSchedules: () => { + dispatch('openSchedules') + }, + triggerDetail: (e) => { + dispatch('triggerDetail', e) + }, + isEditor: isEditor, + path + } ) const nodes = writable([]) diff --git a/frontend/src/lib/components/graph/graphBuilder.ts b/frontend/src/lib/components/graph/graphBuilder.ts index 02429a49ac..faeaaa488c 100644 --- a/frontend/src/lib/components/graph/graphBuilder.ts +++ b/frontend/src/lib/components/graph/graphBuilder.ts @@ -22,7 +22,13 @@ export default function graphBuilder( success: boolean | undefined, useDataflow: boolean | undefined, selectedId: string | undefined, - moving: string | undefined + moving: string | undefined, + triggerProps?: { + path?: string + openSchedules?: () => void + triggerDetail?: (e) => void + isEditor?: boolean + } ): { nodes: Node[] edges: Edge[] @@ -113,7 +119,10 @@ export default function graphBuilder( position: { x: -1, y: -1 }, type: 'trigger', data: { - path: extra.path + path: triggerProps?.path, + openSchedules: triggerProps?.openSchedules, + triggerDetail: triggerProps?.triggerDetail, + isEditor: triggerProps?.isEditor } } diff --git a/frontend/src/lib/components/graph/renderers/nodes/TriggersNode.svelte b/frontend/src/lib/components/graph/renderers/nodes/TriggersNode.svelte index c6fd837559..a505b6b99d 100644 --- a/frontend/src/lib/components/graph/renderers/nodes/TriggersNode.svelte +++ b/frontend/src/lib/components/graph/renderers/nodes/TriggersNode.svelte @@ -4,9 +4,19 @@ export let data: { path: string + openSchedules: () => void + triggerDetail: (e: { detail: 'webhook' | 'mail' | 'schedule' }) => void + isEditor: boolean } - + data.openSchedules()} + on:triggerDetail={(e) => { + data.triggerDetail(e.detail) + }} + isEditor={data.isEditor} + /> diff --git a/frontend/src/lib/components/graph/renderers/triggers/TriggersWrapper.svelte b/frontend/src/lib/components/graph/renderers/triggers/TriggersWrapper.svelte index c724d79d8b..5ac4a55f47 100644 --- a/frontend/src/lib/components/graph/renderers/triggers/TriggersWrapper.svelte +++ b/frontend/src/lib/components/graph/renderers/triggers/TriggersWrapper.svelte @@ -12,11 +12,14 @@ import EmailTriggerPanel from '$lib/components/details/EmailTriggerPanel.svelte' import TriggerCount from './TriggerCount.svelte' import Tooltip from '$lib/components/Tooltip.svelte' - import RunPageSchedules from '$lib/components/RunPageSchedules.svelte' + import { createEventDispatcher } from 'svelte' let schedules: Schedule[] | undefined = undefined export let path: string + export let isEditor: boolean + + const dispatch = createEventDispatcher() async function loadSchedules() { if (!path) return @@ -37,28 +40,25 @@ let selectedTab: 'webhooks' | 'mail' | 'schedules' = 'webhooks' - - - - Webhooks - Mail - Schedules - - {#if selectedTab === 'webhooks'} - - {/if} +{#if isEditor} + + + + Webhooks + Mail + + {#if selectedTab === 'webhooks'} + + {/if} - {#if selectedTab === 'mail'} - - {/if} - - {#if selectedTab === 'schedules'} - - {/if} - - - - + {#if selectedTab === 'mail'} + + {/if} + + + + +{/if}
@@ -79,8 +79,12 @@ See default webhooks triggers { - selectedTab = 'webhooks' - drawer?.openDrawer() + if (isEditor) { + selectedTab = 'webhooks' + drawer?.openDrawer() + } else { + dispatch('triggerDetail', 'webhooks') + } }} > @@ -90,8 +94,12 @@ See default mail trigger { - selectedTab = 'mail' - drawer?.openDrawer() + if (isEditor) { + selectedTab = 'mail' + drawer?.openDrawer() + } else { + dispatch('triggerDetail', 'mail') + } }} > @@ -101,8 +109,11 @@ See all schedules { - selectedTab = 'schedules' - drawer?.openDrawer() + if (isEditor) { + dispatch('openSchedules') + } else { + dispatch('triggerDetail', 'schedule') + } }} > diff --git a/frontend/src/routes/(root)/(logged)/flows/get/[...path]/+page.svelte b/frontend/src/routes/(root)/(logged)/flows/get/[...path]/+page.svelte index 15c1be18b4..0571e5b4c9 100644 --- a/frontend/src/routes/(root)/(logged)/flows/get/[...path]/+page.svelte +++ b/frontend/src/routes/(root)/(logged)/flows/get/[...path]/+page.svelte @@ -304,7 +304,7 @@ let token = 'TOKEN_TO_CREATE' let detailSelected = 'saved_inputs' - let triggerSelected: 'webhooks' | 'schedule' | 'cli' = 'webhooks' + let triggerSelected: 'webhooks' | 'schedule' | 'cli' | 'email' = 'webhooks' let flowHistory: FlowHistory | undefined = undefined @@ -443,6 +443,10 @@ stepDetail = undefined } }} + on:triggerDetail={(e) => { + detailSelected = 'details' + triggerSelected = e.detail === 'mail' ? 'email' : e.detail + }} />