mirror of
https://github.com/windmill-labs/windmill.git
synced 2026-08-20 16:02:19 +00:00
feat: prop picker functional for pull flows
This commit is contained in:
@@ -54,7 +54,7 @@
|
||||
}
|
||||
|
||||
flowStore.subscribe((flow: Flow) => {
|
||||
//setQueryWithoutLoad($page.url, 'state', btoa(JSON.stringify(flowToMode(flow, mode))))
|
||||
setQueryWithoutLoad($page.url, 'state', btoa(JSON.stringify(flowToMode(flow, mode))))
|
||||
})
|
||||
|
||||
onMount(() => {
|
||||
|
||||
@@ -37,6 +37,16 @@
|
||||
$: extraLib = buildExtraLib(
|
||||
i === 0 ? schemaToTsType($flowStore?.schema) : objectToTsType($previewResults[i])
|
||||
)
|
||||
|
||||
function toResults(jobs: any) {
|
||||
return jobs.map((x) => {
|
||||
if (x.result) {
|
||||
return x.result
|
||||
} else if (x.length) {
|
||||
return toResults(x)
|
||||
}
|
||||
})
|
||||
}
|
||||
</script>
|
||||
|
||||
<li class="flex flex-row flex-shrink max-w-full mx-auto mt-16">
|
||||
@@ -125,8 +135,7 @@
|
||||
{mode}
|
||||
schemas={$schemasStore}
|
||||
on:change={(e) => {
|
||||
const results = e.detail.map((x) => x.result)
|
||||
previewResults.set(results)
|
||||
previewResults.set(toResults(e.detail))
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
|
||||
@@ -174,21 +174,38 @@ export function getPickableProperties(
|
||||
) {
|
||||
const flowInputAsObject = schemaToObject(schema, args)
|
||||
const flowInput =
|
||||
mode === 'pull'
|
||||
? Object.assign(
|
||||
mode === 'pull' && i >= 1
|
||||
? Object.assign(Object.assign(
|
||||
{
|
||||
_value: 'The current value of the iteration.',
|
||||
_index: 'The current index of the iteration.'
|
||||
},
|
||||
flowInputAsObject
|
||||
)
|
||||
flowInputAsObject), previewResults[0])
|
||||
|
||||
: flowInputAsObject
|
||||
|
||||
console.log(previewResults)
|
||||
|
||||
let previous_result
|
||||
if (i === 0 || (i == 1 && mode == 'pull')) {
|
||||
previous_result = flowInput
|
||||
} else if (mode == 'pull') {
|
||||
previous_result = previewResults[1] ? previewResults[1][i - 2] : undefined
|
||||
} else {
|
||||
previous_result = previewResults[i - 1]
|
||||
}
|
||||
|
||||
let step
|
||||
if (i >= 1 && mode == 'push') {
|
||||
step = Object.values(previewResults).slice(0, i)
|
||||
} else if (i >= 2 && mode == 'pull') {
|
||||
step = Object.values(previewResults[1] ?? {}).slice(0, i - 1)
|
||||
} else {
|
||||
step = []
|
||||
}
|
||||
const pickableProperties = {
|
||||
flow_input: flowInput,
|
||||
previous_result: i === 0 ? flowInput : previewResults[i - 1],
|
||||
step: i >= 1 ? Object.values(previewResults).slice(0, i) : []
|
||||
previous_result,
|
||||
step
|
||||
}
|
||||
|
||||
return pickableProperties
|
||||
|
||||
Reference in New Issue
Block a user