windmill-components 1.352.9 → 1.362.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package/assets/app.css +8 -45
- package/package/components/ApiConnectForm.svelte +1 -0
- package/package/components/ArgInput.svelte +5 -1
- package/package/components/ChangeInstanceUsername.svelte +20 -12
- package/package/components/ContentSearchInner.svelte +359 -0
- package/package/components/{ContentSearch.svelte.d.ts → ContentSearchInner.svelte.d.ts} +9 -5
- package/package/components/CustomPopover.svelte +73 -0
- package/package/components/CustomPopover.svelte.d.ts +29 -0
- package/package/components/DateTimeInput.svelte +29 -3
- package/package/components/DateTimeInput.svelte.d.ts +4 -0
- package/package/components/Dev.svelte +8 -3
- package/package/components/DurationMs.svelte +2 -2
- package/package/components/FlowBuilder.svelte +122 -24
- package/package/components/FlowBuilder.svelte.d.ts +1 -0
- package/package/components/FlowGraphViewerStep.svelte +2 -2
- package/package/components/FlowJobResult.svelte +5 -3
- package/package/components/FlowStatusViewer.svelte +4 -3
- package/package/components/FlowStatusViewerInner.svelte +265 -160
- package/package/components/FlowStatusViewerInner.svelte.d.ts +15 -2
- package/package/components/HighlightTheme.svelte +75 -77
- package/package/components/InputTransformForm.svelte +2 -0
- package/package/components/JobArgs.svelte +59 -44
- package/package/components/JobArgs.svelte.d.ts +2 -0
- package/package/components/LightweightArgInput.svelte +27 -2
- package/package/components/Path.svelte +3 -8
- package/package/components/Popover.svelte +1 -1
- package/package/components/ResourceEditor.svelte +3 -2
- package/package/components/ResourceEditorDrawer.svelte +4 -1
- package/package/components/ResourcePicker.svelte +1 -0
- package/package/components/RunChart.svelte +6 -3
- package/package/components/RunChart.svelte.d.ts +1 -0
- package/package/components/RunForm.svelte +24 -23
- package/package/components/RunForm.svelte.d.ts +0 -2
- package/package/components/SavedInputs.svelte +50 -39
- package/package/components/ScheduleEditorInner.svelte +26 -4
- package/package/components/ScriptBuilder.svelte +47 -22
- package/package/components/ScriptBuilder.svelte.d.ts +1 -0
- package/package/components/SearchItems.svelte +5 -4
- package/package/components/Summary.svelte +74 -0
- package/package/components/Summary.svelte.d.ts +16 -0
- package/package/components/apps/components/display/AppMarkdown.svelte +3 -2
- package/package/components/apps/components/display/AppMenu.svelte +2 -2
- package/package/components/apps/components/display/AppNavbar.svelte +94 -0
- package/package/components/apps/components/display/AppNavbar.svelte.d.ts +24 -0
- package/package/components/apps/components/display/AppNavbarItem.svelte +146 -0
- package/package/components/apps/components/display/AppNavbarItem.svelte.d.ts +27 -0
- package/package/components/apps/components/display/ResolveNavbarItemPath.svelte +21 -0
- package/package/components/apps/components/display/ResolveNavbarItemPath.svelte.d.ts +20 -0
- package/package/components/apps/components/display/dbtable/AppDbExplorer.svelte +16 -0
- package/package/components/apps/components/display/table/AppAggridExplorerTable.svelte +12 -16
- package/package/components/apps/components/display/table/AppAggridExplorerTable.svelte.d.ts +1 -0
- package/package/components/apps/components/display/table/AppAggridInfiniteTable.svelte +5 -0
- package/package/components/apps/components/display/table/AppAggridTable.svelte +28 -6
- package/package/components/apps/components/display/table/AppAggridTableActions.svelte +68 -43
- package/package/components/apps/components/inputs/AppDateSelect.svelte +284 -0
- package/package/components/apps/components/inputs/AppDateSelect.svelte.d.ts +21 -0
- package/package/components/apps/components/inputs/AppDateTimeInput.svelte +2 -0
- package/package/components/apps/components/inputs/AppFileInput.svelte +22 -27
- package/package/components/apps/components/inputs/AppFileInput.svelte.d.ts +1 -0
- package/package/components/apps/components/inputs/AppTextInput.svelte +1 -1
- package/package/components/apps/components/layout/AppDecisionTree.svelte +32 -30
- package/package/components/apps/components/layout/AppModal.svelte +17 -6
- package/package/components/apps/editor/AppDeploymentHistory.svelte +2 -3
- package/package/components/apps/editor/AppDeploymentHistory.svelte.d.ts +3 -2
- package/package/components/apps/editor/AppEditor.svelte +9 -2
- package/package/components/apps/editor/AppEditorHeader.svelte +7 -10
- package/package/components/apps/editor/AppPreview.svelte +12 -3
- package/package/components/apps/editor/AppPreview.svelte.d.ts +2 -0
- package/package/components/apps/editor/DecisionTreeDebug.svelte +92 -68
- package/package/components/apps/editor/DeploymentHistory.svelte +0 -2
- package/package/components/apps/editor/appUtils.d.ts +1 -0
- package/package/components/apps/editor/appUtils.js +17 -0
- package/package/components/apps/editor/component/Component.svelte +23 -0
- package/package/components/apps/editor/component/components.d.ts +205 -3
- package/package/components/apps/editor/component/components.js +160 -1
- package/package/components/apps/editor/component/default-codes.js +13 -13
- package/package/components/apps/editor/component/sets.js +4 -2
- package/package/components/apps/editor/componentsPanel/ComponentList.svelte +12 -12
- package/package/components/apps/editor/componentsPanel/cssUtils.js +39 -3
- package/package/components/apps/editor/componentsPanel/quickStyleProperties.js +6 -0
- package/package/components/apps/editor/contextPanel/ComponentOutput.svelte +2 -2
- package/package/components/apps/editor/contextPanel/ContextPanel.svelte +6 -0
- package/package/components/apps/editor/contextPanel/components/OutputHeader.svelte +11 -0
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanelList.svelte +4 -0
- package/package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte +21 -8
- package/package/components/apps/editor/settingsPanel/ComponentPanel.svelte +64 -20
- package/package/components/apps/editor/settingsPanel/ContextVariables.svelte +48 -15
- package/package/components/apps/editor/settingsPanel/ContextVariables.svelte.d.ts +1 -0
- package/package/components/apps/editor/settingsPanel/DecisionTreeGraphEditor.svelte +25 -5
- package/package/components/apps/editor/settingsPanel/DecisionTreeGraphNode.svelte +2 -1
- package/package/components/apps/editor/settingsPanel/DecisionTreeGraphNode.svelte.d.ts +1 -0
- package/package/components/apps/editor/settingsPanel/DocLink.svelte +33 -0
- package/package/components/apps/editor/settingsPanel/DocLink.svelte.d.ts +19 -0
- package/package/components/apps/editor/settingsPanel/GridNavbar.svelte +192 -0
- package/package/components/apps/editor/settingsPanel/GridNavbar.svelte.d.ts +18 -0
- package/package/components/apps/editor/settingsPanel/GridTab.svelte +2 -2
- package/package/components/apps/editor/settingsPanel/RefreshDatabaseStudioTable.svelte +17 -0
- package/package/components/apps/editor/settingsPanel/RefreshDatabaseStudioTable.svelte.d.ts +16 -0
- package/package/components/apps/editor/settingsPanel/TableActions.svelte +81 -38
- package/package/components/apps/editor/settingsPanel/decisionTree/DecisionTreePreview.svelte +12 -5
- package/package/components/apps/editor/settingsPanel/inputEditor/IconSelectInput.svelte +11 -12
- package/package/components/apps/editor/settingsPanel/inputEditor/IconSelectInput.svelte.d.ts +4 -2
- package/package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte +4 -1
- package/package/components/apps/editor/settingsPanel/secondaryMenu/SecondaryMenu.svelte +7 -1
- package/package/components/apps/inputType.d.ts +2 -2
- package/package/components/apps/svelte-select/lib/Select.svelte +2 -3
- package/package/components/apps/types.d.ts +3 -0
- package/package/components/auditLogs/AuditLogsTable.svelte +2 -2
- package/package/components/common/CloseButton.svelte +10 -10
- package/package/components/common/CloseButton.svelte.d.ts +6 -14
- package/package/components/common/calendarPicker/CalendarPicker.svelte +5 -0
- package/package/components/common/calendarPicker/CalendarPicker.svelte.d.ts +2 -0
- package/package/components/common/confirmationModal/UnsavedConfirmationModal.svelte +7 -1
- package/package/components/common/fileInput/FileInput.svelte +2 -0
- package/package/components/common/fileInput/FileInput.svelte.d.ts +1 -0
- package/package/components/common/popup/Popup.svelte +4 -3
- package/package/components/common/popup/Popup.svelte.d.ts +1 -0
- package/package/components/common/table/AppRow.svelte +3 -10
- package/package/components/common/table/FlowRow.svelte +12 -1
- package/package/components/copilot/IteratorGen.svelte +1 -1
- package/package/components/copilot/PredicateGen.svelte +1 -1
- package/package/components/copilot/StepInputGen.svelte +8 -3
- package/package/components/copilot/StepInputsGen.svelte +5 -2
- package/package/components/details/WebhooksPanel.svelte +32 -1
- package/package/components/details/WebhooksPanel.svelte.d.ts +2 -11
- package/package/components/flows/FlowHistory.svelte +208 -0
- package/package/components/flows/FlowHistory.svelte.d.ts +21 -0
- package/package/components/flows/content/FlowBranchesAllWrapper.svelte +1 -1
- package/package/components/flows/content/FlowBranchesOneWrapper.svelte +1 -1
- package/package/components/flows/content/FlowEditorPanel.svelte +1 -1
- package/package/components/flows/content/FlowLoop.svelte +23 -26
- package/package/components/flows/content/FlowModuleComponent.svelte +2 -18
- package/package/components/flows/content/FlowModuleEarlyStop.svelte +10 -4
- package/package/components/flows/content/FlowModuleHeader.svelte +3 -4
- package/package/components/flows/content/FlowModuleScript.svelte +1 -1
- package/package/components/flows/content/FlowModuleSleep.svelte +1 -0
- package/package/components/flows/content/FlowModuleSuspend.svelte +1 -1
- package/package/components/flows/content/SuspendDrawer.svelte +7 -7
- package/package/components/flows/flowStateUtils.js +2 -1
- package/package/components/flows/flowStore.js +1 -1
- package/package/components/flows/header/FlowImportExportMenu.svelte +3 -16
- package/package/components/flows/header/FlowImportExportMenu.svelte.d.ts +4 -1
- package/package/components/flows/map/FlowJobsMenu.svelte +69 -0
- package/package/components/flows/map/FlowJobsMenu.svelte.d.ts +22 -0
- package/package/components/flows/map/FlowModuleSchemaItem.svelte +7 -4
- package/package/components/flows/map/FlowModuleSchemaItem.svelte.d.ts +1 -0
- package/package/components/flows/map/MapItem.svelte +20 -0
- package/package/components/flows/map/MapItem.svelte.d.ts +9 -0
- package/package/components/flows/map/VirtualItem.svelte +4 -2
- package/package/components/flows/map/VirtualItem.svelte.d.ts +1 -0
- package/package/components/flows/previousResults.d.ts +9 -0
- package/package/components/flows/previousResults.js +42 -8
- package/package/components/flows/propPicker/PropPickerWrapper.svelte +2 -0
- package/package/components/flows/propPicker/PropPickerWrapper.svelte.d.ts +1 -0
- package/package/components/flows/types.d.ts +1 -1
- package/package/components/graph/FlowGraph.svelte +80 -42
- package/package/components/graph/FlowGraph.svelte.d.ts +1 -0
- package/package/components/graph/model.d.ts +6 -1
- package/package/components/graph/svelvet/container/controllers/middleware.js +4 -4
- package/package/components/graph/svelvet/container/views/GraphView.svelte +2 -0
- package/package/components/graph/svelvet/edges/views/Edges/EdgeText.svelte +24 -25
- package/package/components/graph/util.d.ts +1 -1
- package/package/components/graph/util.js +1 -2
- package/package/components/home/ItemsList.svelte +22 -19
- package/package/components/jobs/JobPreview.svelte +11 -2
- package/package/components/propertyPicker/PropPicker.svelte +30 -0
- package/package/components/propertyPicker/PropPickerResult.svelte +14 -1
- package/package/components/propertyPicker/PropPickerResult.svelte.d.ts +1 -0
- package/package/components/runs/JobLoader.svelte +21 -8
- package/package/components/runs/JobLoader.svelte.d.ts +2 -0
- package/package/components/runs/JobPreview.svelte +5 -1
- package/package/components/runs/RunRow.svelte +12 -8
- package/package/components/runs/RunsFilter.svelte +2 -4
- package/package/components/runs/RunsFilter.svelte.d.ts +0 -1
- package/package/components/runs/RunsTable.svelte +63 -29
- package/package/components/runs/RunsTable.svelte.d.ts +1 -0
- package/package/components/schema/EditableSchemaWrapper.svelte +9 -1
- package/package/components/schema/PropertyEditor.svelte +1 -1
- package/package/components/search/GlobalSearchModal.svelte +559 -0
- package/package/components/search/GlobalSearchModal.svelte.d.ts +17 -0
- package/package/components/search/QuickMenuItem.svelte +76 -0
- package/package/components/search/QuickMenuItem.svelte.d.ts +27 -0
- package/package/components/sidebar/MenuButton.svelte +11 -0
- package/package/components/sidebar/MenuButton.svelte.d.ts +4 -0
- package/package/components/sidebar/changelogs.js +35 -0
- package/package/components/wizards/AppPicker.svelte +68 -0
- package/package/components/wizards/AppPicker.svelte.d.ts +17 -0
- package/package/components/wizards/NavbarWizard.svelte +131 -0
- package/package/components/wizards/NavbarWizard.svelte.d.ts +19 -0
- package/package/defaults.d.ts +1 -1
- package/package/defaults.js +1 -1
- package/package/es6.d.ts.txt +370 -1
- package/package/gen/core/OpenAPI.js +1 -1
- package/package/gen/schemas.gen.d.ts +42 -3
- package/package/gen/schemas.gen.js +42 -3
- package/package/gen/services.gen.d.ts +80 -5
- package/package/gen/services.gen.js +149 -8
- package/package/gen/types.gen.d.ts +265 -11
- package/package/inferArgSig.js +4 -0
- package/package/script_helpers.d.ts +3 -3
- package/package/script_helpers.js +46 -22
- package/package/stores.d.ts +1 -1
- package/package/stores.js +1 -1
- package/package/utils.d.ts +7 -23
- package/package/utils.js +54 -33
- package/package/windmill_fetch.d.ts.txt +6 -6
- package/package.json +3 -11
- package/package/components/ContentSearch.svelte +0 -355
|
@@ -24,7 +24,6 @@ let { flowStateStore, retryStatus, suspendStatus } = getContext('FlowStatusViewe
|
|
|
24
24
|
export let jobId;
|
|
25
25
|
export let workspaceId = undefined;
|
|
26
26
|
export let flowJobIds = undefined;
|
|
27
|
-
export let job = undefined;
|
|
28
27
|
//only useful when forloops are optimized and the job doesn't contain the mod id anymore
|
|
29
28
|
export let innerModule = undefined;
|
|
30
29
|
export let render = true;
|
|
@@ -32,29 +31,33 @@ export let isOwner = false;
|
|
|
32
31
|
export let selectedNode = undefined;
|
|
33
32
|
export let globalModuleStates;
|
|
34
33
|
export let globalDurationStatuses;
|
|
34
|
+
export let globalRefreshes = {};
|
|
35
35
|
export let childFlow = false;
|
|
36
36
|
export let reducedPolling = false;
|
|
37
37
|
export let wideResults = false;
|
|
38
|
-
let jobResults = [];
|
|
39
|
-
let jobFailures = [];
|
|
40
|
-
let forloop_selected = '';
|
|
38
|
+
let jobResults = flowJobIds?.flowJobs?.map((x, id) => `iter #${id + 1} not loaded by frontend yet`) ?? [];
|
|
41
39
|
let retry_selected = '';
|
|
42
40
|
let timeout;
|
|
43
41
|
let localModuleStates = writable({});
|
|
44
42
|
let localDurationStatuses = writable({});
|
|
45
|
-
let
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
43
|
+
export let job = undefined;
|
|
44
|
+
// let lastSize = 0
|
|
45
|
+
// $: {
|
|
46
|
+
// let len = (flowJobIds?.flowJobs ?? []).length
|
|
47
|
+
// if (len != lastSize) {
|
|
48
|
+
// updateForloop(len)
|
|
49
|
+
// }
|
|
50
|
+
// }
|
|
51
|
+
function setModuleState(key, value, force, keepType) {
|
|
52
|
+
let newValue = { ...($localModuleStates[key] ?? {}), ...value };
|
|
53
|
+
if (!deepEqual($localModuleStates[key], value) || force) {
|
|
54
|
+
;
|
|
55
|
+
[localModuleStates, ...globalModuleStates].forEach((s) => {
|
|
56
56
|
s.update((x) => {
|
|
57
|
-
x[key]
|
|
57
|
+
if (keepType && (x[key]?.type == 'Success' || x[key]?.type == 'Failure')) {
|
|
58
|
+
newValue.type = x[key].type;
|
|
59
|
+
}
|
|
60
|
+
x[key] = newValue;
|
|
58
61
|
return x;
|
|
59
62
|
});
|
|
60
63
|
});
|
|
@@ -83,10 +86,6 @@ function initializeByJob(modId) {
|
|
|
83
86
|
return x;
|
|
84
87
|
}));
|
|
85
88
|
}
|
|
86
|
-
function updateForloop(len) {
|
|
87
|
-
forloop_selected = flowJobIds?.flowJobs[len - 1] ?? '';
|
|
88
|
-
lastSize = len;
|
|
89
|
-
}
|
|
90
89
|
let innerModules = [];
|
|
91
90
|
function updateStatus(status) {
|
|
92
91
|
innerModules =
|
|
@@ -131,17 +130,59 @@ function updateInnerModules() {
|
|
|
131
130
|
parent_module: mod['parent_module'],
|
|
132
131
|
args: job?.args
|
|
133
132
|
};
|
|
134
|
-
|
|
135
|
-
setModuleState(mod.id ?? '', newState);
|
|
136
|
-
}
|
|
133
|
+
setModuleState(mod.id ?? '', newState);
|
|
137
134
|
})
|
|
138
135
|
.catch((e) => {
|
|
139
136
|
console.error(`Could not load inner module for job ${mod.job}`, e);
|
|
140
137
|
});
|
|
141
138
|
}
|
|
139
|
+
else if (mod.flow_jobs &&
|
|
140
|
+
(mod.type == 'Success' || mod.type == 'Failure') &&
|
|
141
|
+
!['Success', 'Failure'].includes($localModuleStates?.[mod.id ?? '']?.type)) {
|
|
142
|
+
// console.log(mod.id, 'FOO')
|
|
143
|
+
setModuleState(mod.id ?? '', {
|
|
144
|
+
type: mod.type
|
|
145
|
+
}, true);
|
|
146
|
+
}
|
|
147
|
+
if (mod.branch_chosen) {
|
|
148
|
+
setModuleState(mod.id ?? '', {
|
|
149
|
+
branchChosen: mod.branch_chosen.type == 'default' ? 0 : (mod.branch_chosen.branch ?? 0) + 1
|
|
150
|
+
}, true);
|
|
151
|
+
}
|
|
142
152
|
});
|
|
143
153
|
}
|
|
144
154
|
}
|
|
155
|
+
let recursiveRefresh = {};
|
|
156
|
+
export async function refresh(root, loopJob) {
|
|
157
|
+
let modId = flowJobIds?.moduleId;
|
|
158
|
+
if (!loopJob) {
|
|
159
|
+
loopJob = {
|
|
160
|
+
index: $localModuleStates[modId ?? '']?.selectedForloopIndex ?? 0,
|
|
161
|
+
job: $localModuleStates[modId ?? '']?.selectedForloop ?? ''
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
let last = root ? undefined : flowJobIds?.flowJobs?.[flowJobIds?.flowJobs.length - 1];
|
|
165
|
+
Object.entries(recursiveRefresh).forEach(([key, v]) => {
|
|
166
|
+
if (modId) {
|
|
167
|
+
if ((root && key == loopJob?.job) || key == last) {
|
|
168
|
+
v(false);
|
|
169
|
+
}
|
|
170
|
+
else {
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
else {
|
|
174
|
+
v(false);
|
|
175
|
+
}
|
|
176
|
+
});
|
|
177
|
+
let njob = flowJobIds
|
|
178
|
+
? root && modId
|
|
179
|
+
? storedListJobs?.[loopJob.job]
|
|
180
|
+
: storedListJobs[flowJobIds.length - 1]
|
|
181
|
+
: job;
|
|
182
|
+
if (njob) {
|
|
183
|
+
dispatch('jobsLoaded', { job: njob, force: true });
|
|
184
|
+
}
|
|
185
|
+
}
|
|
145
186
|
let errorCount = 0;
|
|
146
187
|
let notAnonynmous = false;
|
|
147
188
|
async function loadJobInProgress() {
|
|
@@ -156,7 +197,7 @@ async function loadJobInProgress() {
|
|
|
156
197
|
if (!deepEqual(job, newJob)) {
|
|
157
198
|
job = newJob;
|
|
158
199
|
job?.flow_status && updateStatus(job?.flow_status);
|
|
159
|
-
dispatch('jobsLoaded', job);
|
|
200
|
+
dispatch('jobsLoaded', { job, force: false });
|
|
160
201
|
}
|
|
161
202
|
errorCount = 0;
|
|
162
203
|
notAnonynmous = false;
|
|
@@ -188,8 +229,9 @@ async function updateJobId() {
|
|
|
188
229
|
if (flowJobIds) {
|
|
189
230
|
let modId = flowJobIds?.moduleId ?? '';
|
|
190
231
|
let common = {
|
|
191
|
-
iteration_from:
|
|
192
|
-
|
|
232
|
+
iteration_from:
|
|
233
|
+
// $localDurationStatuses?.[modId]?.iteration_from ??
|
|
234
|
+
Math.max(flowJobIds.flowJobs.length - 20, 0),
|
|
193
235
|
iteration_total: $localDurationStatuses?.[modId]?.iteration_total ?? flowJobIds?.length
|
|
194
236
|
};
|
|
195
237
|
$localDurationStatuses[modId] = {
|
|
@@ -210,6 +252,18 @@ async function updateJobId() {
|
|
|
210
252
|
}
|
|
211
253
|
$: jobId && updateJobId();
|
|
212
254
|
$: isListJob = flowJobIds != undefined && Array.isArray(flowJobIds?.flowJobs);
|
|
255
|
+
$: flowJobIds?.moduleId && onFlowJobFlowStatus();
|
|
256
|
+
function onFlowJobFlowStatus() {
|
|
257
|
+
if (globalRefreshes) {
|
|
258
|
+
let modId = flowJobIds?.moduleId;
|
|
259
|
+
if (modId) {
|
|
260
|
+
globalRefreshes[modId] = async (loopJob) => {
|
|
261
|
+
setIteration(loopJob.index, loopJob.job, false, modId ?? '');
|
|
262
|
+
refresh(true, loopJob);
|
|
263
|
+
};
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
}
|
|
213
267
|
onDestroy(() => {
|
|
214
268
|
destroyed = true;
|
|
215
269
|
timeout && clearTimeout(timeout);
|
|
@@ -223,7 +277,7 @@ function isSuccess(arg) {
|
|
|
223
277
|
return arg == true;
|
|
224
278
|
}
|
|
225
279
|
}
|
|
226
|
-
function onJobsLoaded(mod, job) {
|
|
280
|
+
function onJobsLoaded(mod, job, force) {
|
|
227
281
|
if (mod.id && (mod.flow_jobs ?? []).length == 0) {
|
|
228
282
|
if (!childFlow) {
|
|
229
283
|
if ($flowStateStore?.[mod.id]) {
|
|
@@ -244,7 +298,7 @@ function onJobsLoaded(mod, job) {
|
|
|
244
298
|
args: job.args,
|
|
245
299
|
started_at,
|
|
246
300
|
parent_module: mod['parent_module']
|
|
247
|
-
});
|
|
301
|
+
}, force);
|
|
248
302
|
setDurationStatusByJob(mod.id, job.id, {
|
|
249
303
|
created_at: job.created_at ? new Date(job.created_at).getTime() : undefined,
|
|
250
304
|
started_at
|
|
@@ -260,11 +314,12 @@ function onJobsLoaded(mod, job) {
|
|
|
260
314
|
parent_module: mod['parent_module'],
|
|
261
315
|
duration_ms: job['duration_ms'],
|
|
262
316
|
started_at: started_at,
|
|
263
|
-
|
|
317
|
+
flow_jobs: mod.flow_jobs,
|
|
318
|
+
flow_jobs_success: mod.flow_jobs_success,
|
|
264
319
|
iteration_total: mod.iterator?.itered?.length,
|
|
265
320
|
retries: mod?.failed_retries?.length
|
|
266
321
|
// retries: $flowStateStore?.raw_flow
|
|
267
|
-
});
|
|
322
|
+
}, force);
|
|
268
323
|
setDurationStatusByJob(mod.id, job.id, {
|
|
269
324
|
created_at: job.created_at ? new Date(job.created_at).getTime() : undefined,
|
|
270
325
|
started_at,
|
|
@@ -273,12 +328,39 @@ function onJobsLoaded(mod, job) {
|
|
|
273
328
|
}
|
|
274
329
|
}
|
|
275
330
|
}
|
|
276
|
-
function
|
|
331
|
+
function setIteration(j, id, clicked, modId) {
|
|
332
|
+
if (modId) {
|
|
333
|
+
if (!$localModuleStates?.[modId]) {
|
|
334
|
+
$localModuleStates[modId] = {
|
|
335
|
+
type: 'InProgress',
|
|
336
|
+
args: undefined
|
|
337
|
+
};
|
|
338
|
+
}
|
|
339
|
+
let state = $localModuleStates?.[modId];
|
|
340
|
+
if (state) {
|
|
341
|
+
if (state.selectedForloop == id && clicked) {
|
|
342
|
+
setModuleState(modId, {
|
|
343
|
+
selectedForloop: undefined,
|
|
344
|
+
selectedForloopIndex: -1
|
|
345
|
+
}, false, true);
|
|
346
|
+
}
|
|
347
|
+
else {
|
|
348
|
+
setModuleState(modId, {
|
|
349
|
+
selectedForloop: id,
|
|
350
|
+
selectedForloopIndex: j
|
|
351
|
+
}, false, true);
|
|
352
|
+
clicked && refresh(true, undefined);
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
function innerJobLoaded(jobLoaded, j, clicked, force) {
|
|
277
358
|
let modId = flowJobIds?.moduleId;
|
|
278
359
|
if (modId) {
|
|
360
|
+
setIteration(j, jobLoaded.id, clicked, modId);
|
|
279
361
|
if ($flowStateStore && $flowStateStore?.[modId] == undefined) {
|
|
280
362
|
$flowStateStore[modId] = {
|
|
281
|
-
|
|
363
|
+
...($flowStateStore[modId] ?? {}),
|
|
282
364
|
previewResult: jobLoaded.args
|
|
283
365
|
};
|
|
284
366
|
}
|
|
@@ -293,10 +375,9 @@ function innerJobLoaded(jobLoaded, j) {
|
|
|
293
375
|
if (jobLoaded.type == 'QueuedJob') {
|
|
294
376
|
jobResults[j] = 'Job in progress ...';
|
|
295
377
|
}
|
|
296
|
-
else {
|
|
378
|
+
else if (jobLoaded.type == 'CompletedJob') {
|
|
297
379
|
$flowStateStore[modId].previewResult[j] = jobLoaded.result;
|
|
298
380
|
jobResults[j] = jobLoaded.result;
|
|
299
|
-
jobFailures[j] = jobLoaded.success === false;
|
|
300
381
|
}
|
|
301
382
|
}
|
|
302
383
|
let started_at = jobLoaded.started_at ? new Date(jobLoaded.started_at).getTime() : undefined;
|
|
@@ -304,34 +385,38 @@ function innerJobLoaded(jobLoaded, j) {
|
|
|
304
385
|
let job_id = jobLoaded.id;
|
|
305
386
|
initializeByJob(modId);
|
|
306
387
|
if (jobLoaded.type == 'QueuedJob') {
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
388
|
+
if ($localModuleStates[modId]?.selectedForloopIndex == j) {
|
|
389
|
+
setModuleState(modId, {
|
|
390
|
+
started_at,
|
|
391
|
+
logs: jobLoaded.logs,
|
|
392
|
+
job_id,
|
|
393
|
+
args: jobLoaded.args,
|
|
394
|
+
flow_jobs: flowJobIds?.flowJobs,
|
|
395
|
+
flow_jobs_success: flowJobIds?.flowJobsSuccess,
|
|
396
|
+
iteration_total: flowJobIds?.length,
|
|
397
|
+
duration_ms: undefined
|
|
398
|
+
}, force, true);
|
|
399
|
+
}
|
|
317
400
|
setDurationStatusByJob(modId, job_id, {
|
|
318
401
|
created_at,
|
|
319
402
|
started_at
|
|
320
403
|
});
|
|
321
404
|
}
|
|
322
|
-
else {
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
405
|
+
else if (jobLoaded.type == 'CompletedJob') {
|
|
406
|
+
if ($localModuleStates[modId]?.selectedForloopIndex == j) {
|
|
407
|
+
setModuleState(modId, {
|
|
408
|
+
started_at,
|
|
409
|
+
args: jobLoaded.args,
|
|
410
|
+
result: jobLoaded.result,
|
|
411
|
+
flow_jobs_results: jobResults,
|
|
412
|
+
job_id,
|
|
413
|
+
flow_jobs: flowJobIds?.flowJobs,
|
|
414
|
+
flow_jobs_success: flowJobIds?.flowJobsSuccess,
|
|
415
|
+
iteration_total: flowJobIds?.length,
|
|
416
|
+
duration_ms: undefined,
|
|
417
|
+
isListJob: true
|
|
418
|
+
}, force, true);
|
|
419
|
+
}
|
|
335
420
|
setDurationStatusByJob(modId, job_id, {
|
|
336
421
|
created_at,
|
|
337
422
|
started_at,
|
|
@@ -340,34 +425,17 @@ function innerJobLoaded(jobLoaded, j) {
|
|
|
340
425
|
}
|
|
341
426
|
if (jobLoaded.job_kind == 'script' || jobLoaded.job_kind == 'preview') {
|
|
342
427
|
let id = undefined;
|
|
343
|
-
if (innerModule?.type == 'forloopflow') {
|
|
428
|
+
if (innerModule?.type == 'forloopflow' && innerModule.modules.length == 1) {
|
|
344
429
|
id = innerModule?.modules?.[0]?.id;
|
|
345
430
|
}
|
|
346
431
|
if (id) {
|
|
347
|
-
|
|
348
|
-
...($localModuleStates[modId] ?? {}),
|
|
349
|
-
iteration: undefined,
|
|
350
|
-
isListJob: false,
|
|
351
|
-
iteration_total: undefined
|
|
352
|
-
});
|
|
353
|
-
initializeByJob(id);
|
|
354
|
-
setDurationStatusByJob(id, job_id, $localDurationStatuses[modId].byJob[job_id]);
|
|
432
|
+
onJobsLoaded({ id }, jobLoaded);
|
|
355
433
|
}
|
|
356
434
|
}
|
|
357
435
|
}
|
|
358
436
|
}
|
|
359
437
|
let flowTimeline;
|
|
360
438
|
let rightColumnSelect = 'timeline';
|
|
361
|
-
let slicedListJobIds = [];
|
|
362
|
-
$: flowJobIds && !deepEqual(flowJobIds, lastFlowJobIds) && updateSlicedListJobIds();
|
|
363
|
-
let lastFlowJobIds = undefined;
|
|
364
|
-
function updateSlicedListJobIds() {
|
|
365
|
-
lastFlowJobIds = flowJobIds;
|
|
366
|
-
slicedListJobIds =
|
|
367
|
-
(flowJobIds?.flowJobs.length ?? 0) > 20
|
|
368
|
-
? flowJobIds?.flowJobs?.slice($localDurationStatuses[flowJobIds?.moduleId ?? '']?.iteration_from ?? 0) ?? []
|
|
369
|
-
: flowJobIds?.flowJobs ?? [];
|
|
370
|
-
}
|
|
371
439
|
function loadPreviousIters(lenToAdd) {
|
|
372
440
|
let r = $localDurationStatuses[flowJobIds?.moduleId ?? ''];
|
|
373
441
|
if (r.iteration_from) {
|
|
@@ -375,10 +443,14 @@ function loadPreviousIters(lenToAdd) {
|
|
|
375
443
|
$localDurationStatuses = $localDurationStatuses;
|
|
376
444
|
globalDurationStatuses.forEach((x) => x.update((x) => x));
|
|
377
445
|
}
|
|
378
|
-
jobResults = [
|
|
379
|
-
|
|
446
|
+
jobResults = [
|
|
447
|
+
...[...new Array(lenToAdd).keys()].map((x) => 'not computed or loaded yet'),
|
|
448
|
+
...jobResults
|
|
449
|
+
];
|
|
450
|
+
// updateSlicedListJobIds()
|
|
380
451
|
}
|
|
381
452
|
let stepDetail = undefined;
|
|
453
|
+
let storedListJobs = {};
|
|
382
454
|
</script>
|
|
383
455
|
|
|
384
456
|
{#if notAnonynmous}
|
|
@@ -393,13 +465,11 @@ let stepDetail = undefined;
|
|
|
393
465
|
<div class="h-8" />
|
|
394
466
|
{/if} -->
|
|
395
467
|
{#if isListJob}
|
|
396
|
-
{@const
|
|
397
|
-
|
|
398
|
-
$localDurationStatuses[flowJobIds?.moduleId ?? '']?.iteration_from ?? 0
|
|
399
|
-
)}
|
|
468
|
+
{@const sliceFrom = $localDurationStatuses[flowJobIds?.moduleId ?? '']?.iteration_from ?? 0}
|
|
469
|
+
{@const lenToAdd = Math.min(20, sliceFrom)}
|
|
400
470
|
|
|
401
471
|
{#if (flowJobIds?.flowJobs.length ?? 0) > 20 && lenToAdd > 0}
|
|
402
|
-
{@const allToAdd = (flowJobIds?.length ?? 0) -
|
|
472
|
+
{@const allToAdd = (flowJobIds?.length ?? 0) - sliceFrom}
|
|
403
473
|
<p class="text-tertiary italic text-xs">
|
|
404
474
|
For performance reasons, only the last 20 items are shown by default <button
|
|
405
475
|
class="text-primary underline ml-4"
|
|
@@ -408,7 +478,8 @@ let stepDetail = undefined;
|
|
|
408
478
|
}}
|
|
409
479
|
>Load {lenToAdd} prior
|
|
410
480
|
</button>
|
|
411
|
-
{#if allToAdd > 0}
|
|
481
|
+
{#if allToAdd > 0 && allToAdd > lenToAdd}
|
|
482
|
+
{sliceFrom}
|
|
412
483
|
<button
|
|
413
484
|
class="text-primary underline ml-4"
|
|
414
485
|
on:click={() => {
|
|
@@ -499,79 +570,70 @@ let stepDetail = undefined;
|
|
|
499
570
|
{/if}
|
|
500
571
|
<div class="{selected != 'sequence' ? 'hidden' : ''} max-w-7xl mx-auto">
|
|
501
572
|
{#if isListJob}
|
|
502
|
-
{@const
|
|
503
|
-
|
|
504
|
-
$
|
|
505
|
-
)}
|
|
573
|
+
{@const sliceFrom = $localDurationStatuses[flowJobIds?.moduleId ?? '']?.iteration_from ?? 0}
|
|
574
|
+
{@const forloop_selected =
|
|
575
|
+
$localModuleStates?.[flowJobIds?.moduleId ?? '']?.selectedForloop}
|
|
506
576
|
<h3 class="text-md leading-6 font-bold text-tertiary border-b mb-4">
|
|
507
|
-
|
|
577
|
+
Subflows ({flowJobIds?.flowJobs.length})
|
|
508
578
|
</h3>
|
|
509
|
-
|
|
510
|
-
{
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
579
|
+
<div class="overflow-auto max-h-1/2">
|
|
580
|
+
{forloop_selected}
|
|
581
|
+
{#each flowJobIds?.flowJobs ?? [] as loopJobId, j (loopJobId)}
|
|
582
|
+
{#if render}
|
|
583
|
+
<Button
|
|
584
|
+
variant={forloop_selected === loopJobId ? 'contained' : 'border'}
|
|
585
|
+
color={flowJobIds?.flowJobsSuccess?.[j] === false
|
|
586
|
+
? 'red'
|
|
587
|
+
: forloop_selected === loopJobId
|
|
588
|
+
? 'dark'
|
|
589
|
+
: 'light'}
|
|
590
|
+
btnClasses="w-full flex justify-start"
|
|
591
|
+
on:click={async () => {
|
|
592
|
+
let storedJob = storedListJobs[j]
|
|
593
|
+
if (!storedJob) {
|
|
594
|
+
storedJob = await JobService.getJob({
|
|
595
|
+
workspace: workspaceId ?? $workspaceStore ?? '',
|
|
596
|
+
id: loopJobId,
|
|
597
|
+
noLogs: true
|
|
598
|
+
})
|
|
599
|
+
storedListJobs[j] = storedJob
|
|
600
|
+
}
|
|
601
|
+
innerJobLoaded(storedJob, j, true, false)
|
|
602
|
+
}}
|
|
603
|
+
endIcon={{
|
|
604
|
+
icon: ChevronDown,
|
|
605
|
+
classes: forloop_selected == loopJobId ? '!rotate-180' : ''
|
|
525
606
|
}}
|
|
526
|
-
|
|
527
|
-
|
|
607
|
+
>
|
|
608
|
+
<span class="truncate font-mono">
|
|
609
|
+
#{j + 1}: {loopJobId}
|
|
610
|
+
</span>
|
|
611
|
+
</Button>
|
|
528
612
|
{/if}
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
<span class="truncate font-mono">
|
|
554
|
-
#{($localDurationStatuses[flowJobIds?.moduleId ?? '']?.iteration_from ?? 0) +
|
|
555
|
-
j +
|
|
556
|
-
1}: {loopJobId}
|
|
557
|
-
</span>
|
|
558
|
-
</Button>
|
|
559
|
-
{/if}
|
|
560
|
-
|
|
561
|
-
<!-- <LogId id={loopJobId} /> -->
|
|
562
|
-
<div class="border p-6" class:hidden={forloop_selected != loopJobId}>
|
|
563
|
-
<svelte:self
|
|
564
|
-
{childFlow}
|
|
565
|
-
globalModuleStates={[localModuleStates, ...globalModuleStates]}
|
|
566
|
-
globalDurationStatuses={[localDurationStatuses, ...globalDurationStatuses]}
|
|
567
|
-
render={forloop_selected == loopJobId && selected == 'sequence' && render}
|
|
568
|
-
reducedPolling={flowJobIds?.flowJobs.length && flowJobIds?.flowJobs.length > 20}
|
|
569
|
-
{workspaceId}
|
|
570
|
-
jobId={loopJobId}
|
|
571
|
-
on:jobsLoaded={(e) => innerJobLoaded(e.detail, j)}
|
|
572
|
-
/>
|
|
573
|
-
</div>
|
|
574
|
-
{/each}
|
|
613
|
+
{#if j >= sliceFrom || forloop_selected == loopJobId}
|
|
614
|
+
<!-- <LogId id={loopJobId} /> -->
|
|
615
|
+
<div class="border p-6" class:hidden={forloop_selected != loopJobId}>
|
|
616
|
+
<svelte:self
|
|
617
|
+
bind:refresh={recursiveRefresh[loopJobId]}
|
|
618
|
+
{globalRefreshes}
|
|
619
|
+
{childFlow}
|
|
620
|
+
job={storedListJobs[j]}
|
|
621
|
+
globalModuleStates={[localModuleStates, ...globalModuleStates]}
|
|
622
|
+
globalDurationStatuses={[localDurationStatuses, ...globalDurationStatuses]}
|
|
623
|
+
render={forloop_selected == loopJobId && selected == 'sequence' && render}
|
|
624
|
+
reducedPolling={flowJobIds?.flowJobs.length && flowJobIds?.flowJobs.length > 20}
|
|
625
|
+
{workspaceId}
|
|
626
|
+
jobId={loopJobId}
|
|
627
|
+
on:jobsLoaded={(e) => {
|
|
628
|
+
let { job, force } = e.detail
|
|
629
|
+
storedListJobs[j] = job
|
|
630
|
+
innerJobLoaded(job, j, false, force)
|
|
631
|
+
}}
|
|
632
|
+
/>
|
|
633
|
+
</div>
|
|
634
|
+
{/if}
|
|
635
|
+
{/each}
|
|
636
|
+
</div>
|
|
575
637
|
{:else if innerModules.length > 0}
|
|
576
638
|
<ul class="w-full">
|
|
577
639
|
<h3 class="text-md leading-6 font-bold text-primary border-b mb-4 py-2">
|
|
@@ -627,6 +689,8 @@ let stepDetail = undefined;
|
|
|
627
689
|
<!-- <LogId id={loopJobId} /> -->
|
|
628
690
|
<div class="border p-6" class:hidden={retry_selected != failedRetry}>
|
|
629
691
|
<svelte:self
|
|
692
|
+
{globalRefreshes}
|
|
693
|
+
bind:refresh={recursiveRefresh[failedRetry]}
|
|
630
694
|
{childFlow}
|
|
631
695
|
globalModuleStates={[localModuleStates, ...globalModuleStates]}
|
|
632
696
|
globalDurationStatuses={[localDurationStatuses, ...globalDurationStatuses]}
|
|
@@ -641,6 +705,8 @@ let stepDetail = undefined;
|
|
|
641
705
|
{#if ['InProgress', 'Success', 'Failure'].includes(mod.type)}
|
|
642
706
|
{#if job.raw_flow?.modules[i]?.value.type == 'flow'}
|
|
643
707
|
<svelte:self
|
|
708
|
+
{globalRefreshes}
|
|
709
|
+
bind:refresh={recursiveRefresh[mod.job ?? '']}
|
|
644
710
|
globalModuleStates={[]}
|
|
645
711
|
globalDurationStatuses={[]}
|
|
646
712
|
render={selected == 'sequence' && render}
|
|
@@ -648,11 +714,16 @@ let stepDetail = undefined;
|
|
|
648
714
|
jobId={mod.job}
|
|
649
715
|
childFlow
|
|
650
716
|
on:jobsLoaded={(e) => {
|
|
651
|
-
|
|
717
|
+
let { force, job } = e.detail
|
|
718
|
+
onJobsLoaded(mod, job, force)
|
|
652
719
|
}}
|
|
653
720
|
/>
|
|
721
|
+
{:else if mod.flow_jobs?.length == 0 && mod.job == '00000000-0000-0000-0000-000000000000'}
|
|
722
|
+
<div class="text-secondary">no subflow (empty loop?)</div>
|
|
654
723
|
{:else}
|
|
655
724
|
<svelte:self
|
|
725
|
+
{globalRefreshes}
|
|
726
|
+
bind:refresh={recursiveRefresh[mod.job ?? '']}
|
|
656
727
|
{childFlow}
|
|
657
728
|
globalModuleStates={[localModuleStates, ...globalModuleStates]}
|
|
658
729
|
globalDurationStatuses={[localDurationStatuses, ...globalDurationStatuses]}
|
|
@@ -664,10 +735,14 @@ let stepDetail = undefined;
|
|
|
664
735
|
? {
|
|
665
736
|
moduleId: mod.id,
|
|
666
737
|
flowJobs: mod.flow_jobs,
|
|
738
|
+
flowJobsSuccess: mod.flow_jobs_success,
|
|
667
739
|
length: mod.iterator?.itered?.length ?? mod.flow_jobs.length
|
|
668
740
|
}
|
|
669
741
|
: undefined}
|
|
670
|
-
on:jobsLoaded={(e) =>
|
|
742
|
+
on:jobsLoaded={(e) => {
|
|
743
|
+
let { job, force } = e.detail
|
|
744
|
+
onJobsLoaded(mod, job, force)
|
|
745
|
+
}}
|
|
671
746
|
/>
|
|
672
747
|
{/if}
|
|
673
748
|
{:else}
|
|
@@ -728,12 +803,20 @@ let stepDetail = undefined;
|
|
|
728
803
|
selectedNode = e.detail.id
|
|
729
804
|
}
|
|
730
805
|
}}
|
|
806
|
+
on:selectedIteration={(e) => {
|
|
807
|
+
let detail = e.detail
|
|
808
|
+
setModuleState(detail.moduleId, {
|
|
809
|
+
selectedForloop: detail.id,
|
|
810
|
+
selectedForloopIndex: detail.index
|
|
811
|
+
})
|
|
812
|
+
globalRefreshes[detail.moduleId]?.({ job: detail.id, index: detail.index })
|
|
813
|
+
}}
|
|
731
814
|
modules={job.raw_flow?.modules ?? []}
|
|
732
815
|
failureModule={job.raw_flow?.failure_module}
|
|
733
816
|
/>
|
|
734
817
|
</div>
|
|
735
818
|
<div
|
|
736
|
-
class="border-l border-tertiary-inverse pt-1 overflow-auto min-h-[700px] flex flex-col z-0"
|
|
819
|
+
class="border-l border-tertiary-inverse pt-1 overflow-auto min-h-[700px] flex flex-col z-0 h-full"
|
|
737
820
|
>
|
|
738
821
|
<Tabs bind:selected={rightColumnSelect}>
|
|
739
822
|
<Tab value="timeline"><span class="font-semibold text-md">Timeline</span></Tab>
|
|
@@ -753,7 +836,7 @@ let stepDetail = undefined;
|
|
|
753
836
|
durationStatuses={localDurationStatuses}
|
|
754
837
|
/>
|
|
755
838
|
{:else if rightColumnSelect == 'node_status'}
|
|
756
|
-
<div class="pt-2 max-h-[80vh]">
|
|
839
|
+
<div class="pt-2 max-h-[80vh] grow flex flex-col">
|
|
757
840
|
{#if selectedNode}
|
|
758
841
|
{@const node = $localModuleStates[selectedNode]}
|
|
759
842
|
|
|
@@ -772,13 +855,31 @@ let stepDetail = undefined;
|
|
|
772
855
|
{:else if selectedNode == 'start'}
|
|
773
856
|
{#if job.args}
|
|
774
857
|
<div class="p-2">
|
|
775
|
-
<JobArgs
|
|
858
|
+
<JobArgs
|
|
859
|
+
id={job.id}
|
|
860
|
+
workspace={job.workspace_id ?? $workspaceStore ?? 'no_w'}
|
|
861
|
+
args={job.args}
|
|
862
|
+
/>
|
|
776
863
|
</div>
|
|
777
864
|
{:else}
|
|
778
865
|
<p class="p-2 text-secondary">No arguments</p>
|
|
779
866
|
{/if}
|
|
780
867
|
{:else if node}
|
|
781
|
-
|
|
868
|
+
{#if node.flow_jobs_results}
|
|
869
|
+
<span class="pl-1 text-tertiary"
|
|
870
|
+
>Result of step as collection of all subflows</span
|
|
871
|
+
>
|
|
872
|
+
<div class="p-2">
|
|
873
|
+
<div class="overflow-auto max-h-[200px]">
|
|
874
|
+
<DisplayResult
|
|
875
|
+
workspaceId={job?.workspace_id}
|
|
876
|
+
result={node.flow_jobs_results}
|
|
877
|
+
/>
|
|
878
|
+
</div>
|
|
879
|
+
</div>
|
|
880
|
+
<span class="pl-1 text-tertiary text-lg pt-4">Selected subflow</span>
|
|
881
|
+
{/if}
|
|
882
|
+
<div class="px-2 flex gap-2 min-w-0 w-full">
|
|
782
883
|
<ModuleStatus type={node.type} scheduled_for={node.scheduled_for} />
|
|
783
884
|
{#if node.duration_ms}
|
|
784
885
|
<Badge>
|
|
@@ -801,7 +902,11 @@ let stepDetail = undefined;
|
|
|
801
902
|
</div>
|
|
802
903
|
{#if !node.isListJob}
|
|
803
904
|
<div class="px-1 py-1">
|
|
804
|
-
<JobArgs
|
|
905
|
+
<JobArgs
|
|
906
|
+
id={node.job_id}
|
|
907
|
+
workspace={job.workspace_id ?? $workspaceStore ?? 'no_w'}
|
|
908
|
+
args={node.args}
|
|
909
|
+
/>
|
|
805
910
|
</div>
|
|
806
911
|
{/if}
|
|
807
912
|
<FlowJobResult
|