diff --git a/frontend/src/lib/components/RunForm.svelte b/frontend/src/lib/components/RunForm.svelte
index e5568d4dbd..a818e0a66b 100644
--- a/frontend/src/lib/components/RunForm.svelte
+++ b/frontend/src/lib/components/RunForm.svelte
@@ -1,16 +1,17 @@
@@ -213,18 +210,4 @@
{buttonText}
{/if}
-
- {#if viewCliRun}
-
-
- {#if SCRIPT_VIEW_SHOW_RUN_FROM_CLI}
-
-
-
-
-
- {/if}
-
-
- {/if}
diff --git a/frontend/src/lib/components/RunFormAdvancedPopup.svelte b/frontend/src/lib/components/RunFormAdvancedPopup.svelte
index 0fbb023bad..ecf4671aba 100644
--- a/frontend/src/lib/components/RunFormAdvancedPopup.svelte
+++ b/frontend/src/lib/components/RunFormAdvancedPopup.svelte
@@ -27,7 +27,6 @@
export let scheduledForStr: string | undefined
export let invisible_to_owner: boolean | undefined
export let overrideTag: string | undefined
-
loadWorkerGroups()
async function loadWorkerGroups() {
diff --git a/frontend/src/lib/components/details/WebhooksPanel.svelte b/frontend/src/lib/components/details/WebhooksPanel.svelte
index a6555de201..3fb8902aff 100644
--- a/frontend/src/lib/components/details/WebhooksPanel.svelte
+++ b/frontend/src/lib/components/details/WebhooksPanel.svelte
@@ -21,7 +21,14 @@
let userSettings: UserSettings
- export let webhooks: {
+ export let token: string
+ export let args: any
+ export let scopes: string[] = []
+ export let isFlow: boolean = false
+ export let hash: string | undefined = undefined
+ export let path: string
+
+ let webhooks: {
async: {
hash?: string
path: string
@@ -32,10 +39,39 @@
get_path?: string
}
}
- export let token: string
- export let args: any
- export let scopes: string[] = []
- export let isFlow: boolean = false
+
+ $: webhooks = isFlow ? computeFlowWebhooks(path) : computeScriptWebhooks(hash, path)
+
+ function computeScriptWebhooks(hash: string | undefined, path: string) {
+ let base = `${$page.url.origin}/api/w/${$workspaceStore}/jobs/`
+ return {
+ async: {
+ hash: `${base}run/h/${hash}`,
+ path: `${base}run/p/${path}`
+ },
+ sync: {
+ hash: `${base}run_wait_result/h/${hash}`,
+ path: `${base}run_wait_result/p/${path}`,
+ get_path: `${base}run_wait_result/p/${path}`
+ }
+ }
+ }
+
+ function computeFlowWebhooks(path: string) {
+ let base = `${$page.url.origin}/api/w/${$workspaceStore}/jobs/`
+
+ let urlAsync = `${base}run/f/${path}`
+ let urlSync = `${base}run_wait_result/f/${path}`
+ return {
+ async: {
+ path: urlAsync
+ },
+ sync: {
+ path: urlSync,
+ get_path: urlSync
+ }
+ }
+ }
let webhookType: 'async' | 'sync' = DEFAULT_WEBHOOK_TYPE
let requestType: 'hash' | 'path' | 'get_path' = isFlow ? 'path' : 'path'
diff --git a/frontend/src/lib/components/runs/JobLoader.svelte b/frontend/src/lib/components/runs/JobLoader.svelte
index f1051ca885..66321a86db 100644
--- a/frontend/src/lib/components/runs/JobLoader.svelte
+++ b/frontend/src/lib/components/runs/JobLoader.svelte
@@ -110,9 +110,8 @@
async function fetchJobs(
startedBefore: string | undefined,
startedAfter: string | undefined,
- startedAfterCompletedJobs: string | undefined,
+ startedAfterCompletedJobs: string | undefined
): Promise {
- console.log('fetching jobs', startedAfter, startedBefore)
return JobService.listJobs({
workspace: $workspaceStore!,
createdOrStartedBefore: startedBefore,
diff --git a/frontend/src/lib/stores.ts b/frontend/src/lib/stores.ts
index 3a5db29f66..94b85ce69a 100644
--- a/frontend/src/lib/stores.ts
+++ b/frontend/src/lib/stores.ts
@@ -33,7 +33,6 @@ export const enterpriseLicense = writable(undefined)
export const workerTags = writable(undefined)
export const usageStore = writable(0)
export const workspaceUsageStore = writable(0)
-export const runFormStore = writable()
export const oauthStore = writable(undefined)
export const userStore = writable(undefined)
export const workspaceStore = writable(
diff --git a/frontend/src/lib/utils.ts b/frontend/src/lib/utils.ts
index ed6cffcaa1..fc5557e189 100644
--- a/frontend/src/lib/utils.ts
+++ b/frontend/src/lib/utils.ts
@@ -49,14 +49,16 @@ export function displayDateOnly(dateString: string | Date | undefined): string {
}
}
-export function subtractDaysFromDateString(dateString: string | undefined, days: number): string | undefined {
+export function subtractDaysFromDateString(
+ dateString: string | undefined,
+ days: number
+): string | undefined {
if (dateString == undefined) {
return undefined
}
let date = new Date(dateString)
date.setDate(date.getDate() - days)
return date.toISOString()
-
}
export function displayDate(
@@ -507,7 +509,7 @@ export function isObject(obj: any) {
export function debounce(func: (...args: any[]) => any, wait: number) {
let timeout: any
- return function(...args: any[]) {
+ return function (...args: any[]) {
// @ts-ignore
const context = this
clearTimeout(timeout)
@@ -517,7 +519,7 @@ export function debounce(func: (...args: any[]) => any, wait: number) {
export function throttle(func: (...args: any[]) => T, wait: number) {
let timeout: any
- return function(...args: any[]) {
+ return function (...args: any[]) {
if (!timeout) {
timeout = setTimeout(() => {
timeout = null
@@ -666,6 +668,17 @@ export function extractCustomProperties(styleStr: string): string {
return customStyleStr
}
+export function computeSharableHash(args: any) {
+ let nargs = {}
+ Object.entries(args).forEach(([k, v]) => {
+ if (v !== undefined) {
+ // if
+ nargs[k] = JSON.stringify(v)
+ }
+ })
+ return new URLSearchParams(nargs).toString()
+}
+
export function toCamel(s: string) {
return s.replace(/([-_][a-z])/gi, ($1) => {
return $1.toUpperCase().replace('-', '').replace('_', '')
@@ -711,7 +724,7 @@ export async function tryEvery({
try {
await tryCode()
break
- } catch (err) { }
+ } catch (err) {}
i++
}
if (i >= times) {
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 c61b364a5a..d25dd664cf 100644
--- a/frontend/src/routes/(root)/(logged)/flows/get/[...path]/+page.svelte
+++ b/frontend/src/routes/(root)/(logged)/flows/get/[...path]/+page.svelte
@@ -9,7 +9,7 @@
import MoveDrawer from '$lib/components/MoveDrawer.svelte'
import RunForm from '$lib/components/RunForm.svelte'
import ShareModal from '$lib/components/ShareModal.svelte'
- import { runFormStore, userStore, workspaceStore } from '$lib/stores'
+ import { userStore, workspaceStore } from '$lib/stores'
import { sendUserToast } from '$lib/toast'
import DeployWorkspaceDrawer from '$lib/components/DeployWorkspaceDrawer.svelte'
import SavedInputs from '$lib/components/SavedInputs.svelte'
@@ -55,9 +55,13 @@
$: cliCommand = `wmill flow run ${flow?.path} -d '${JSON.stringify(args)}'`
+ let previousPath: string | undefined = undefined
$: {
if ($workspaceStore && $userStore && $page.params.path) {
- loadFlow()
+ if (previousPath !== path) {
+ previousPath = path
+ loadFlow()
+ }
}
}
@@ -88,9 +92,6 @@
} catch {}
}
- $: urlAsync = `${$page.url.origin}/api/w/${$workspaceStore}/jobs/run/f/${flow?.path}`
- $: urlSync = `${$page.url.origin}/api/w/${$workspaceStore}/jobs/run_wait_result/f/${flow?.path}`
-
let isValid = true
let loading = false
@@ -113,11 +114,18 @@
await goto('/run/' + run + '?workspace=' + $workspaceStore)
}
- let args = undefined
+ let args: Record | undefined = undefined
- if ($runFormStore) {
- args = $runFormStore
- $runFormStore = undefined
+ let hash = window.location.hash
+ if (hash.length > 1) {
+ console.log(hash)
+ try {
+ let searchParams = new URLSearchParams(hash.slice(1))
+ let params = [...searchParams.entries()].map(([k, v]) => [k, JSON.parse(v)])
+ args = Object.fromEntries(params)
+ } catch (e) {
+ console.error('Was not able to transform hash as args', e)
+ }
}
let moveDrawer: MoveDrawer
@@ -359,7 +367,6 @@
runnable={flow}
runAction={runFlow}
bind:args
- isFlow
bind:this={runForm}
/>
@@ -418,15 +425,7 @@
diff --git a/frontend/src/routes/(root)/(logged)/run/[...run]/+page.svelte b/frontend/src/routes/(root)/(logged)/run/[...run]/+page.svelte
index ef1529bf07..5e7f198f23 100644
--- a/frontend/src/routes/(root)/(logged)/run/[...run]/+page.svelte
+++ b/frontend/src/routes/(root)/(logged)/run/[...run]/+page.svelte
@@ -11,6 +11,7 @@
} from '$lib/gen'
import {
canWrite,
+ computeSharableHash,
copyToClipboard,
displayDate,
emptyString,
@@ -43,7 +44,6 @@
import DisplayResult from '$lib/components/DisplayResult.svelte'
import {
enterpriseLicense,
- runFormStore,
superadmin,
userStore,
userWorkspaces,
@@ -564,8 +564,7 @@
{#if job?.job_kind === 'script' || job?.job_kind === 'flow'}