diff --git a/frontend/src/lib/components/ApiConnectForm.svelte b/frontend/src/lib/components/ApiConnectForm.svelte index edc7bfc14e..a008dd2b05 100644 --- a/frontend/src/lib/components/ApiConnectForm.svelte +++ b/frontend/src/lib/components/ApiConnectForm.svelte @@ -32,6 +32,9 @@ viewJsonSchema = false try { schema = resourceTypeInfo.schema as any + + schema.order = schema.order ?? Object.keys(schema.properties).sort() + notFound = false } catch (e) { notFound = true diff --git a/frontend/src/lib/components/apps/components/display/dbtable/AppDbExplorer.svelte b/frontend/src/lib/components/apps/components/display/dbtable/AppDbExplorer.svelte index 4975a254eb..b173a0fc70 100644 --- a/frontend/src/lib/components/apps/components/display/dbtable/AppDbExplorer.svelte +++ b/frontend/src/lib/components/apps/components/display/dbtable/AppDbExplorer.svelte @@ -290,6 +290,11 @@ return } + if (!runnableComponent) { + params.successCallback([], 0) + return + } + runnableComponent?.runComponent(undefined, undefined, undefined, currentParams, { done: (items) => { let lastRow = -1 diff --git a/frontend/src/lib/components/apps/components/display/table/AppAggridInfiniteTable.svelte b/frontend/src/lib/components/apps/components/display/table/AppAggridInfiniteTable.svelte index c4470ed230..292da12613 100644 --- a/frontend/src/lib/components/apps/components/display/table/AppAggridInfiniteTable.svelte +++ b/frontend/src/lib/components/apps/components/display/table/AppAggridInfiniteTable.svelte @@ -90,6 +90,12 @@ if (!runnableComponent && result) { params.successCallback(result, result.length) + return + } + + if (!runnableComponent && !result) { + params.successCallback([], 0) + return } runnableComponent?.runComponent(undefined, undefined, undefined, currentParams, { diff --git a/frontend/src/lib/components/apps/components/helpers/RunnableComponent.svelte b/frontend/src/lib/components/apps/components/helpers/RunnableComponent.svelte index 3b98e1b677..bea9c6dadc 100644 --- a/frontend/src/lib/components/apps/components/helpers/RunnableComponent.svelte +++ b/frontend/src/lib/components/apps/components/helpers/RunnableComponent.svelte @@ -629,6 +629,7 @@ onDestroy(() => { $initialized.initializedComponents = $initialized.initializedComponents.filter((c) => c !== id) delete $errorByComponent[id] + if ($runnableComponents[id]) { $runnableComponents[id] = { ...$runnableComponents[id], diff --git a/frontend/src/lib/components/apps/components/layout/AppDecisionTree.svelte b/frontend/src/lib/components/apps/components/layout/AppDecisionTree.svelte index 5e747ffe03..54a671bbd9 100644 --- a/frontend/src/lib/components/apps/components/layout/AppDecisionTree.svelte +++ b/frontend/src/lib/components/apps/components/layout/AppDecisionTree.svelte @@ -62,58 +62,51 @@ const history: string[] = [] + function updateCurrentNode(node, index) { + currentNodeId = node.next[index].id + history.push(node.id) + selectedConditionIndex = index + 1 + $focusedGrid = { + parentComponentId: id, + subGridIndex: nodes.findIndex((node) => node.id == currentNodeId) + } + } + function next() { const resolvedNodeConditions = resolvedConditions[currentNodeId] + const node = nodes.find((node) => node.id == currentNodeId) - let found: boolean = false + if (!node) { + return + } - resolvedNodeConditions.forEach((condition, index) => { - if (found) return - - const node = nodes.find((node) => node.id == currentNodeId) - - if (condition && node && resolvedNext[node.id] !== false) { - found = true - currentNodeId = node.next[index].id - - history.push(node.id) - - selectedConditionIndex = index + 1 - - $focusedGrid = { - parentComponentId: id, - subGridIndex: nodes.findIndex((node) => node.id == currentNodeId) - } + for (let index = 0; index < resolvedNodeConditions.length; index++) { + const condition = resolvedNodeConditions[index] + if (condition && resolvedNext[node.id] !== false) { + updateCurrentNode(node, index) + return } - }) + } + } + function updateFocusedGrid(nodeId) { + currentNodeId = nodeId + selectedConditionIndex = nodes.findIndex((node) => node.id == currentNodeId) + $focusedGrid = { + parentComponentId: id, + subGridIndex: selectedConditionIndex + } } function prev() { - const previsouNodeId = history.pop() + const previousNodeId = history.pop() - if (previsouNodeId) { - currentNodeId = previsouNodeId - - selectedConditionIndex = nodes.findIndex((next) => next.id == currentNodeId) - - $focusedGrid = { - parentComponentId: id, - subGridIndex: selectedConditionIndex - } + if (previousNodeId) { + updateFocusedGrid(previousNodeId) } else { - // if no history, go to first node - + // if no history, go to the first node const node = getFirstNode(nodes) - if (node) { - currentNodeId = node.id - - selectedConditionIndex = nodes.findIndex((next) => next.id == currentNodeId) - - $focusedGrid = { - parentComponentId: id, - subGridIndex: selectedConditionIndex - } + updateFocusedGrid(node.id) } } } diff --git a/frontend/src/lib/components/apps/editor/settingsPanel/DecisionTreeGraphEditor.svelte b/frontend/src/lib/components/apps/editor/settingsPanel/DecisionTreeGraphEditor.svelte index 38b58e356d..c159990519 100644 --- a/frontend/src/lib/components/apps/editor/settingsPanel/DecisionTreeGraphEditor.svelte +++ b/frontend/src/lib/components/apps/editor/settingsPanel/DecisionTreeGraphEditor.svelte @@ -1,5 +1,5 @@