You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ma...@apache.org on 2024/03/19 22:00:09 UTC
(camel-karavan) branch main updated: Fix incorect Choice/When/Otherwise in multicast and Route COnfigration #1185
This is an automated email from the ASF dual-hosted git repository.
marat pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-karavan.git
The following commit(s) were added to refs/heads/main by this push:
new 37b7cef7 Fix incorect Choice/When/Otherwise in multicast and Route COnfigration #1185
37b7cef7 is described below
commit 37b7cef75aa033d5f030a31d9c7a63cb514afafb
Author: Marat Gubaidullin <ma...@talismancloud.io>
AuthorDate: Tue Mar 19 17:59:58 2024 -0400
Fix incorect Choice/When/Otherwise in multicast and Route COnfigration #1185
---
.../src/main/webui/src/designer/DesignerStore.ts | 6 --
.../main/webui/src/designer/KaravanDesigner.tsx | 6 +-
.../webui/src/designer/route/DslConnections.tsx | 31 ++++--
.../webui/src/designer/route/RouteDesigner.tsx | 4 +-
.../src/designer/route/element/DslElement.tsx | 4 +-
.../designer/route/element/DslElementHeader.tsx | 4 +-
.../src/designer/route/useRouteDesignerHook.tsx | 4 +-
karavan-designer/public/example/demo.camel.yaml | 115 ++++++++++-----------
karavan-designer/src/designer/DesignerStore.ts | 6 --
karavan-designer/src/designer/KaravanDesigner.tsx | 6 +-
.../src/designer/route/DslConnections.tsx | 31 ++++--
.../src/designer/route/RouteDesigner.tsx | 4 +-
.../src/designer/route/element/DslElement.tsx | 4 +-
.../designer/route/element/DslElementHeader.tsx | 4 +-
.../src/designer/route/useRouteDesignerHook.tsx | 4 +-
karavan-space/src/designer/DesignerStore.ts | 6 --
karavan-space/src/designer/KaravanDesigner.tsx | 6 +-
.../src/designer/route/DslConnections.tsx | 31 ++++--
karavan-space/src/designer/route/RouteDesigner.tsx | 4 +-
.../src/designer/route/element/DslElement.tsx | 4 +-
.../designer/route/element/DslElementHeader.tsx | 4 +-
.../src/designer/route/useRouteDesignerHook.tsx | 4 +-
22 files changed, 153 insertions(+), 139 deletions(-)
diff --git a/karavan-app/src/main/webui/src/designer/DesignerStore.ts b/karavan-app/src/main/webui/src/designer/DesignerStore.ts
index c19038ad..40418fb1 100644
--- a/karavan-app/src/main/webui/src/designer/DesignerStore.ts
+++ b/karavan-app/src/main/webui/src/designer/DesignerStore.ts
@@ -199,7 +199,6 @@ type DesignerState = {
dark: boolean;
notificationBadge: boolean;
notificationMessage: [string, string];
- hideLogDSL: boolean;
shiftKeyPressed: boolean;
showDeleteConfirmation: boolean;
showMoveConfirmation: boolean;
@@ -220,7 +219,6 @@ const designerState: DesignerState = {
notificationBadge: false,
notificationMessage: ['', ''],
dark: false,
- hideLogDSL: false,
shiftKeyPressed: false,
showDeleteConfirmation: false,
showMoveConfirmation: false,
@@ -238,7 +236,6 @@ const designerState: DesignerState = {
type DesignerAction = {
setDark: (dark: boolean) => void;
- setHideLogDSL: (hideLogDSL: boolean) => void;
setShiftKeyPressed: (shiftKeyPressed: boolean) => void;
setShowDeleteConfirmation: (showDeleteConfirmation: boolean) => void;
setShowMoveConfirmation: (showMoveConfirmation: boolean) => void;
@@ -259,9 +256,6 @@ export const useDesignerStore = createWithEqualityFn<DesignerState & DesignerAct
setDark: (dark: boolean) => {
set({dark: dark})
},
- setHideLogDSL: (hideLogDSL: boolean) => {
- set({hideLogDSL: hideLogDSL})
- },
setShiftKeyPressed: (shiftKeyPressed: boolean) => {
set({shiftKeyPressed: shiftKeyPressed})
},
diff --git a/karavan-app/src/main/webui/src/designer/KaravanDesigner.tsx b/karavan-app/src/main/webui/src/designer/KaravanDesigner.tsx
index 36b65118..ff76fa19 100644
--- a/karavan-app/src/main/webui/src/designer/KaravanDesigner.tsx
+++ b/karavan-app/src/main/webui/src/designer/KaravanDesigner.tsx
@@ -53,7 +53,6 @@ interface Props {
filename: string
yaml: string
dark: boolean
- hideLogDSL?: boolean
showCodeTab: boolean
tab?: "routes" | "rest" | "beans"
propertyPlaceholders: string[]
@@ -64,9 +63,9 @@ interface Props {
export function KaravanDesigner(props: Props) {
const [tab, setTab] = useState<string>('routes');
- const [setDark, hideLogDSL, setHideLogDSL, setSelectedStep, reset, badge, message, setPropertyPlaceholders, setBeans] =
+ const [setDark, setSelectedStep, reset, badge, message, setPropertyPlaceholders, setBeans] =
useDesignerStore((s) =>
- [s.setDark, s.hideLogDSL, s.setHideLogDSL, s.setSelectedStep, s.reset, s.notificationBadge, s.notificationMessage, s.setPropertyPlaceholders, s.setBeans], shallow)
+ [s.setDark, s.setSelectedStep, s.reset, s.notificationBadge, s.notificationMessage, s.setPropertyPlaceholders, s.setBeans], shallow)
const [integration, setIntegration, resetFiles, setVariables] = useIntegrationStore((s) =>
[s.integration, s.setIntegration, s.resetFiles, s.setVariables], shallow)
@@ -97,7 +96,6 @@ export function KaravanDesigner(props: Props) {
setVariables(VariableUtil.findVariables(props.files))
setBeans(props.beans)
resetFiles(props.files)
- setHideLogDSL(props.hideLogDSL === true);
} catch (e: any) {
console.log(e)
EventBus.sendAlert(' ' + e?.name, '' + e?.message, 'danger');
diff --git a/karavan-app/src/main/webui/src/designer/route/DslConnections.tsx b/karavan-app/src/main/webui/src/designer/route/DslConnections.tsx
index 99339f7c..a711780b 100644
--- a/karavan-app/src/main/webui/src/designer/route/DslConnections.tsx
+++ b/karavan-app/src/main/webui/src/designer/route/DslConnections.tsx
@@ -34,8 +34,8 @@ const overlapGap: number = 40;
export function DslConnections() {
const [integration, files] = useIntegrationStore((s) => [s.integration, s.files], shallow)
- const [width, height, top, left, hideLogDSL] = useDesignerStore((s) =>
- [s.width, s.height, s.top, s.left, s.hideLogDSL], shallow)
+ const [width, height, top, left] = useDesignerStore((s) =>
+ [s.width, s.height, s.top, s.left], shallow)
const [steps, addStep, deleteStep, clearSteps] =
useConnectionsStore((s) => [s.steps, s.addStep, s.deleteStep, s.clearSteps], shallow)
@@ -285,7 +285,7 @@ export function DslConnections() {
}
function isSpecial(pos: DslPosition): boolean {
- return ['ChoiceDefinition', 'MulticastDefinition', 'TryDefinition'].includes(pos.step.dslName);
+ return ['ChoiceDefinition', 'MulticastDefinition', 'TryDefinition', 'RouteConfigurationDefinition'].includes(pos.step.dslName);
}
function addArrowToList(list: JSX.Element[], from?: DslPosition, to?: DslPosition, fromHeader?: boolean, toHeader?: boolean): JSX.Element[] {
@@ -299,13 +299,17 @@ export function DslConnections() {
return result;
}
+ function getParentDsl(uuid?: string): string | undefined {
+ return uuid ? steps.get(uuid)?.parent?.dslName : undefined;
+ }
+
function getArrow(pos: DslPosition): JSX.Element[] {
const list: JSX.Element[] = [];
if (pos.parent && pos.parent.dslName === 'TryDefinition' && pos.position === 0) {
const parent = steps.get(pos.parent.uuid);
list.push(...addArrowToList(list, parent, pos, true, false))
- } else if (pos.parent && pos.parent.dslName === 'MulticastDefinition') {
+ } else if (pos.parent && ['RouteConfigurationDefinition', 'MulticastDefinition'].includes(pos.parent.dslName)) {
const parent = steps.get(pos.parent.uuid);
list.push(...addArrowToList(list, parent, pos, true, false))
if (parent?.nextstep) {
@@ -315,14 +319,17 @@ export function DslConnections() {
} else if (pos.parent && pos.parent.dslName === 'ChoiceDefinition') {
const parent = steps.get(pos.parent.uuid);
list.push(...addArrowToList(list, parent, pos, true, false))
- } else if (pos.parent && ['WhenDefinition', 'OtherwiseDefinition', 'CatchDefinition', 'FinallyDefinition'].includes(pos.parent.dslName)) {
- if (pos.position === 0) {
+ } else if (pos.parent && ['WhenDefinition', 'OtherwiseDefinition', 'CatchDefinition', 'FinallyDefinition', 'TryDefinition'].includes(pos.parent.dslName)) {
+ if (pos.position === 0) {
const parent = steps.get(pos.parent.uuid);
list.push(...addArrowToList(list, parent, pos, true, false))
}
if (pos.position === (pos.inStepsLength - 1) && !isSpecial(pos)) {
const nextElement = getNext(pos);
- if (nextElement) {
+ const parentDsl1 = getParentDsl(nextElement?.uuid);
+ if (parentDsl1 && ['RouteConfigurationDefinition', 'MulticastDefinition'].includes(parentDsl1)) {
+ // do nothing
+ } else if (nextElement) {
const next = steps.get(nextElement.uuid);
list.push(...addArrowToList(list, pos, next, true, true))
}
@@ -341,12 +348,18 @@ export function DslConnections() {
}
if (['WhenDefinition', 'OtherwiseDefinition'].includes(pos.step.dslName) && pos.step.hasSteps() && (pos.step as any).steps.length === 0) {
- if (pos.nextstep) {
+ const parentDsl = getParentDsl(pos?.nextstep?.uuid);
+ if (parentDsl && ['RouteConfigurationDefinition', 'MulticastDefinition'].includes(parentDsl)) {
+ // do nothing
+ } else if (pos.nextstep) {
const to = steps.get(pos.nextstep.uuid);
list.push(...addArrowToList(list, pos, to, true, true))
} else {
const next = getNext(pos);
- if (next) {
+ const parentDsl1 = getParentDsl(next?.uuid);
+ if (parentDsl1 && ['RouteConfigurationDefinition', 'MulticastDefinition'].includes(parentDsl1)) {
+ // do nothing
+ } else if (next) {
const to = steps.get(next.uuid);
list.push(...addArrowToList(list, pos, to, true, true))
}
diff --git a/karavan-app/src/main/webui/src/designer/route/RouteDesigner.tsx b/karavan-app/src/main/webui/src/designer/route/RouteDesigner.tsx
index 9ef5e827..39c14fda 100644
--- a/karavan-app/src/main/webui/src/designer/route/RouteDesigner.tsx
+++ b/karavan-app/src/main/webui/src/designer/route/RouteDesigner.tsx
@@ -44,9 +44,9 @@ export function RouteDesigner() {
isSourceKamelet, isActionKamelet, isKamelet, isSinkKamelet} = useRouteDesignerHook();
const [integration] = useIntegrationStore((state) => [state.integration], shallow)
- const [showDeleteConfirmation, setPosition, width, height, top, left, hideLogDSL, showMoveConfirmation, setShowMoveConfirmation] =
+ const [showDeleteConfirmation, setPosition, width, height, top, left, showMoveConfirmation, setShowMoveConfirmation] =
useDesignerStore((s) =>
- [s.showDeleteConfirmation, s.setPosition, s.width, s.height, s.top, s.left, s.hideLogDSL, s.showMoveConfirmation, s.setShowMoveConfirmation], shallow)
+ [s.showDeleteConfirmation, s.setPosition, s.width, s.height, s.top, s.left, s.showMoveConfirmation, s.setShowMoveConfirmation], shallow)
const [showSelector] = useSelectorStore((s) => [s.showSelector], shallow)
diff --git a/karavan-app/src/main/webui/src/designer/route/element/DslElement.tsx b/karavan-app/src/main/webui/src/designer/route/element/DslElement.tsx
index 6f5ab5b5..70befc33 100644
--- a/karavan-app/src/main/webui/src/designer/route/element/DslElement.tsx
+++ b/karavan-app/src/main/webui/src/designer/route/element/DslElement.tsx
@@ -53,9 +53,9 @@ export function DslElement(props: Props) {
const [integration] = useIntegrationStore((s) => [s.integration, s.setIntegration], shallow)
- const [selectedUuids, selectedStep, showMoveConfirmation, setShowMoveConfirmation, hideLogDSL, setMoveElements] =
+ const [selectedUuids, selectedStep, showMoveConfirmation, setShowMoveConfirmation, setMoveElements] =
useDesignerStore((s) =>
- [s.selectedUuids, s.selectedStep, s.showMoveConfirmation, s.setShowMoveConfirmation, s.hideLogDSL, s.setMoveElements], shallow)
+ [s.selectedUuids, s.selectedStep, s.showMoveConfirmation, s.setShowMoveConfirmation, s.setMoveElements], shallow)
const [isDragging, setIsDragging] = useState<boolean>(false);
const [isDraggedOver, setIsDraggedOver] = useState<boolean>(false);
diff --git a/karavan-app/src/main/webui/src/designer/route/element/DslElementHeader.tsx b/karavan-app/src/main/webui/src/designer/route/element/DslElementHeader.tsx
index 1b5dbe5b..5ec041d2 100644
--- a/karavan-app/src/main/webui/src/designer/route/element/DslElementHeader.tsx
+++ b/karavan-app/src/main/webui/src/designer/route/element/DslElementHeader.tsx
@@ -53,9 +53,9 @@ export function DslElementHeader(props: Props) {
isActionKamelet
} = useRouteDesignerHook();
- const [selectedUuids, selectedStep, showMoveConfirmation, setShowMoveConfirmation, hideLogDSL, setMoveElements] =
+ const [selectedUuids, selectedStep, showMoveConfirmation, setShowMoveConfirmation, setMoveElements] =
useDesignerStore((s) =>
- [s.selectedUuids, s.selectedStep, s.showMoveConfirmation, s.setShowMoveConfirmation, s.hideLogDSL, s.setMoveElements], shallow)
+ [s.selectedUuids, s.selectedStep, s.showMoveConfirmation, s.setShowMoveConfirmation, s.setMoveElements], shallow)
function onOpenSelector(evt: React.MouseEvent, showSteps: boolean = true, isInsert: boolean = false) {
evt.stopPropagation();
diff --git a/karavan-app/src/main/webui/src/designer/route/useRouteDesignerHook.tsx b/karavan-app/src/main/webui/src/designer/route/useRouteDesignerHook.tsx
index 0f9b7236..6589853a 100644
--- a/karavan-app/src/main/webui/src/designer/route/useRouteDesignerHook.tsx
+++ b/karavan-app/src/main/webui/src/designer/route/useRouteDesignerHook.tsx
@@ -41,10 +41,10 @@ export function useRouteDesignerHook () {
const [integration, setIntegration] = useIntegrationStore((state) => [state.integration, state.setIntegration], shallow)
const [selectedUuids,clipboardSteps,shiftKeyPressed,
setShowDeleteConfirmation, setDeleteMessage, setSelectedStep, setSelectedUuids, setClipboardSteps, setShiftKeyPressed,
- width, height, dark, hideLogDSL] = useDesignerStore((s) =>
+ width, height, dark] = useDesignerStore((s) =>
[s.selectedUuids,s.clipboardSteps, s.shiftKeyPressed,
s.setShowDeleteConfirmation, s.setDeleteMessage, s.setSelectedStep, s.setSelectedUuids, s.setClipboardSteps, s.setShiftKeyPressed,
- s.width, s.height, s.dark, s.hideLogDSL], shallow)
+ s.width, s.height, s.dark], shallow)
const [setParentId, setShowSelector, setSelectorTabIndex, setParentDsl, setShowSteps, setSelectedPosition] = useSelectorStore((s) =>
[s.setParentId, s.setShowSelector, s.setSelectorTabIndex, s.setParentDsl, s.setShowSteps, s.setSelectedPosition], shallow)
diff --git a/karavan-designer/public/example/demo.camel.yaml b/karavan-designer/public/example/demo.camel.yaml
index b751e86b..cd4a1dd4 100644
--- a/karavan-designer/public/example/demo.camel.yaml
+++ b/karavan-designer/public/example/demo.camel.yaml
@@ -1,61 +1,60 @@
- route:
- id: route-fc08
+ id: route-5676
+ nodePrefixId: route-a26
from:
- id: from-4fb2
- uri: timer
- parameters:
- period: '5000'
- timerName: beers
+ id: from-e7d6
+ uri: aws2-s3
steps:
- - to:
- id: to-2b12
- variableReceive: beer1
- uri: https
- parameters:
- httpUri: random-data-api.com/api/v2/beers
- - to:
- id: to-cd9b
- variableReceive: beer2
- uri: https
- parameters:
- httpUri: random-data-api.com/api/v2/beers
- - setVariable:
- id: setVariable-439c
- name: alc1
- expression:
- java:
- id: java-6ac5
- expression: .alcohol | rtrimstr("%")
- - setVariable:
- id: setVariable-14bc
- name: alc2
- expression:
- jq:
- id: jq-73b5
- expression: .alcohol | rtrimstr("%")
- source: beer2
- resultType: float
- - choice:
- id: choice-3fc5
- when:
- - id: choice
- expression:
- simple:
- id: simple-699c
- expression: ${variable.alc1} > ${variable.alc2}
- steps:
- - log:
- id: log-6ecf
- message: >-
- Beer battle: ${jq(variable:beer1,.name)}
- (${variable.alc1}%) is stronger than
- ${jq(variable:beer2,.name)} (${variable.alc2}%)
- otherwise:
- id: otherwise-03ac
- steps:
- - log:
- id: log-2477
- message: >-
- Beer battle: ${jq(variable:beer1,.name)}
- (${variable.alc1}%) is weaker than
- ${jq(variable:beer2,.name)} (${variable.alc2}%)
+ - multicast:
+ id: multicast-1032
+ steps:
+ - choice:
+ id: choice-56ab
+ when:
+ - id: when-ff6fa
+ expression:
+ simple:
+ id: simple-25f4
+ steps:
+ - log:
+ id: log-34d4
+ message: ${body}
+ - loop:
+ id: loop-f32d
+ expression:
+ simple:
+ id: simple-2811
+ otherwise:
+ id: otherwise-987b
+ steps:
+ - log:
+ id: log-802d
+ message: ${body}
+ - circuitBreaker:
+ id: circuitBreaker-64e5
+ steps:
+ - loop:
+ id: loop-4062
+ expression:
+ simple:
+ id: simple-041b
+ steps:
+ - multicast:
+ id: multicast-70ae
+ - convertBodyTo:
+ id: convertBodyTo-854c
+ - filter:
+ id: filter-297b
+ expression:
+ simple:
+ id: simple-90b6
+
+- routeConfiguration:
+ intercept:
+ - intercept:
+ id: intercept-5ede
+ - intercept:
+ id: intercept-93ca
+ interceptFrom:
+ - interceptFrom:
+ id: interceptFrom-14ca
diff --git a/karavan-designer/src/designer/DesignerStore.ts b/karavan-designer/src/designer/DesignerStore.ts
index c19038ad..40418fb1 100644
--- a/karavan-designer/src/designer/DesignerStore.ts
+++ b/karavan-designer/src/designer/DesignerStore.ts
@@ -199,7 +199,6 @@ type DesignerState = {
dark: boolean;
notificationBadge: boolean;
notificationMessage: [string, string];
- hideLogDSL: boolean;
shiftKeyPressed: boolean;
showDeleteConfirmation: boolean;
showMoveConfirmation: boolean;
@@ -220,7 +219,6 @@ const designerState: DesignerState = {
notificationBadge: false,
notificationMessage: ['', ''],
dark: false,
- hideLogDSL: false,
shiftKeyPressed: false,
showDeleteConfirmation: false,
showMoveConfirmation: false,
@@ -238,7 +236,6 @@ const designerState: DesignerState = {
type DesignerAction = {
setDark: (dark: boolean) => void;
- setHideLogDSL: (hideLogDSL: boolean) => void;
setShiftKeyPressed: (shiftKeyPressed: boolean) => void;
setShowDeleteConfirmation: (showDeleteConfirmation: boolean) => void;
setShowMoveConfirmation: (showMoveConfirmation: boolean) => void;
@@ -259,9 +256,6 @@ export const useDesignerStore = createWithEqualityFn<DesignerState & DesignerAct
setDark: (dark: boolean) => {
set({dark: dark})
},
- setHideLogDSL: (hideLogDSL: boolean) => {
- set({hideLogDSL: hideLogDSL})
- },
setShiftKeyPressed: (shiftKeyPressed: boolean) => {
set({shiftKeyPressed: shiftKeyPressed})
},
diff --git a/karavan-designer/src/designer/KaravanDesigner.tsx b/karavan-designer/src/designer/KaravanDesigner.tsx
index 36b65118..ff76fa19 100644
--- a/karavan-designer/src/designer/KaravanDesigner.tsx
+++ b/karavan-designer/src/designer/KaravanDesigner.tsx
@@ -53,7 +53,6 @@ interface Props {
filename: string
yaml: string
dark: boolean
- hideLogDSL?: boolean
showCodeTab: boolean
tab?: "routes" | "rest" | "beans"
propertyPlaceholders: string[]
@@ -64,9 +63,9 @@ interface Props {
export function KaravanDesigner(props: Props) {
const [tab, setTab] = useState<string>('routes');
- const [setDark, hideLogDSL, setHideLogDSL, setSelectedStep, reset, badge, message, setPropertyPlaceholders, setBeans] =
+ const [setDark, setSelectedStep, reset, badge, message, setPropertyPlaceholders, setBeans] =
useDesignerStore((s) =>
- [s.setDark, s.hideLogDSL, s.setHideLogDSL, s.setSelectedStep, s.reset, s.notificationBadge, s.notificationMessage, s.setPropertyPlaceholders, s.setBeans], shallow)
+ [s.setDark, s.setSelectedStep, s.reset, s.notificationBadge, s.notificationMessage, s.setPropertyPlaceholders, s.setBeans], shallow)
const [integration, setIntegration, resetFiles, setVariables] = useIntegrationStore((s) =>
[s.integration, s.setIntegration, s.resetFiles, s.setVariables], shallow)
@@ -97,7 +96,6 @@ export function KaravanDesigner(props: Props) {
setVariables(VariableUtil.findVariables(props.files))
setBeans(props.beans)
resetFiles(props.files)
- setHideLogDSL(props.hideLogDSL === true);
} catch (e: any) {
console.log(e)
EventBus.sendAlert(' ' + e?.name, '' + e?.message, 'danger');
diff --git a/karavan-designer/src/designer/route/DslConnections.tsx b/karavan-designer/src/designer/route/DslConnections.tsx
index 99339f7c..a711780b 100644
--- a/karavan-designer/src/designer/route/DslConnections.tsx
+++ b/karavan-designer/src/designer/route/DslConnections.tsx
@@ -34,8 +34,8 @@ const overlapGap: number = 40;
export function DslConnections() {
const [integration, files] = useIntegrationStore((s) => [s.integration, s.files], shallow)
- const [width, height, top, left, hideLogDSL] = useDesignerStore((s) =>
- [s.width, s.height, s.top, s.left, s.hideLogDSL], shallow)
+ const [width, height, top, left] = useDesignerStore((s) =>
+ [s.width, s.height, s.top, s.left], shallow)
const [steps, addStep, deleteStep, clearSteps] =
useConnectionsStore((s) => [s.steps, s.addStep, s.deleteStep, s.clearSteps], shallow)
@@ -285,7 +285,7 @@ export function DslConnections() {
}
function isSpecial(pos: DslPosition): boolean {
- return ['ChoiceDefinition', 'MulticastDefinition', 'TryDefinition'].includes(pos.step.dslName);
+ return ['ChoiceDefinition', 'MulticastDefinition', 'TryDefinition', 'RouteConfigurationDefinition'].includes(pos.step.dslName);
}
function addArrowToList(list: JSX.Element[], from?: DslPosition, to?: DslPosition, fromHeader?: boolean, toHeader?: boolean): JSX.Element[] {
@@ -299,13 +299,17 @@ export function DslConnections() {
return result;
}
+ function getParentDsl(uuid?: string): string | undefined {
+ return uuid ? steps.get(uuid)?.parent?.dslName : undefined;
+ }
+
function getArrow(pos: DslPosition): JSX.Element[] {
const list: JSX.Element[] = [];
if (pos.parent && pos.parent.dslName === 'TryDefinition' && pos.position === 0) {
const parent = steps.get(pos.parent.uuid);
list.push(...addArrowToList(list, parent, pos, true, false))
- } else if (pos.parent && pos.parent.dslName === 'MulticastDefinition') {
+ } else if (pos.parent && ['RouteConfigurationDefinition', 'MulticastDefinition'].includes(pos.parent.dslName)) {
const parent = steps.get(pos.parent.uuid);
list.push(...addArrowToList(list, parent, pos, true, false))
if (parent?.nextstep) {
@@ -315,14 +319,17 @@ export function DslConnections() {
} else if (pos.parent && pos.parent.dslName === 'ChoiceDefinition') {
const parent = steps.get(pos.parent.uuid);
list.push(...addArrowToList(list, parent, pos, true, false))
- } else if (pos.parent && ['WhenDefinition', 'OtherwiseDefinition', 'CatchDefinition', 'FinallyDefinition'].includes(pos.parent.dslName)) {
- if (pos.position === 0) {
+ } else if (pos.parent && ['WhenDefinition', 'OtherwiseDefinition', 'CatchDefinition', 'FinallyDefinition', 'TryDefinition'].includes(pos.parent.dslName)) {
+ if (pos.position === 0) {
const parent = steps.get(pos.parent.uuid);
list.push(...addArrowToList(list, parent, pos, true, false))
}
if (pos.position === (pos.inStepsLength - 1) && !isSpecial(pos)) {
const nextElement = getNext(pos);
- if (nextElement) {
+ const parentDsl1 = getParentDsl(nextElement?.uuid);
+ if (parentDsl1 && ['RouteConfigurationDefinition', 'MulticastDefinition'].includes(parentDsl1)) {
+ // do nothing
+ } else if (nextElement) {
const next = steps.get(nextElement.uuid);
list.push(...addArrowToList(list, pos, next, true, true))
}
@@ -341,12 +348,18 @@ export function DslConnections() {
}
if (['WhenDefinition', 'OtherwiseDefinition'].includes(pos.step.dslName) && pos.step.hasSteps() && (pos.step as any).steps.length === 0) {
- if (pos.nextstep) {
+ const parentDsl = getParentDsl(pos?.nextstep?.uuid);
+ if (parentDsl && ['RouteConfigurationDefinition', 'MulticastDefinition'].includes(parentDsl)) {
+ // do nothing
+ } else if (pos.nextstep) {
const to = steps.get(pos.nextstep.uuid);
list.push(...addArrowToList(list, pos, to, true, true))
} else {
const next = getNext(pos);
- if (next) {
+ const parentDsl1 = getParentDsl(next?.uuid);
+ if (parentDsl1 && ['RouteConfigurationDefinition', 'MulticastDefinition'].includes(parentDsl1)) {
+ // do nothing
+ } else if (next) {
const to = steps.get(next.uuid);
list.push(...addArrowToList(list, pos, to, true, true))
}
diff --git a/karavan-designer/src/designer/route/RouteDesigner.tsx b/karavan-designer/src/designer/route/RouteDesigner.tsx
index 9ef5e827..39c14fda 100644
--- a/karavan-designer/src/designer/route/RouteDesigner.tsx
+++ b/karavan-designer/src/designer/route/RouteDesigner.tsx
@@ -44,9 +44,9 @@ export function RouteDesigner() {
isSourceKamelet, isActionKamelet, isKamelet, isSinkKamelet} = useRouteDesignerHook();
const [integration] = useIntegrationStore((state) => [state.integration], shallow)
- const [showDeleteConfirmation, setPosition, width, height, top, left, hideLogDSL, showMoveConfirmation, setShowMoveConfirmation] =
+ const [showDeleteConfirmation, setPosition, width, height, top, left, showMoveConfirmation, setShowMoveConfirmation] =
useDesignerStore((s) =>
- [s.showDeleteConfirmation, s.setPosition, s.width, s.height, s.top, s.left, s.hideLogDSL, s.showMoveConfirmation, s.setShowMoveConfirmation], shallow)
+ [s.showDeleteConfirmation, s.setPosition, s.width, s.height, s.top, s.left, s.showMoveConfirmation, s.setShowMoveConfirmation], shallow)
const [showSelector] = useSelectorStore((s) => [s.showSelector], shallow)
diff --git a/karavan-designer/src/designer/route/element/DslElement.tsx b/karavan-designer/src/designer/route/element/DslElement.tsx
index 6f5ab5b5..70befc33 100644
--- a/karavan-designer/src/designer/route/element/DslElement.tsx
+++ b/karavan-designer/src/designer/route/element/DslElement.tsx
@@ -53,9 +53,9 @@ export function DslElement(props: Props) {
const [integration] = useIntegrationStore((s) => [s.integration, s.setIntegration], shallow)
- const [selectedUuids, selectedStep, showMoveConfirmation, setShowMoveConfirmation, hideLogDSL, setMoveElements] =
+ const [selectedUuids, selectedStep, showMoveConfirmation, setShowMoveConfirmation, setMoveElements] =
useDesignerStore((s) =>
- [s.selectedUuids, s.selectedStep, s.showMoveConfirmation, s.setShowMoveConfirmation, s.hideLogDSL, s.setMoveElements], shallow)
+ [s.selectedUuids, s.selectedStep, s.showMoveConfirmation, s.setShowMoveConfirmation, s.setMoveElements], shallow)
const [isDragging, setIsDragging] = useState<boolean>(false);
const [isDraggedOver, setIsDraggedOver] = useState<boolean>(false);
diff --git a/karavan-designer/src/designer/route/element/DslElementHeader.tsx b/karavan-designer/src/designer/route/element/DslElementHeader.tsx
index 1b5dbe5b..5ec041d2 100644
--- a/karavan-designer/src/designer/route/element/DslElementHeader.tsx
+++ b/karavan-designer/src/designer/route/element/DslElementHeader.tsx
@@ -53,9 +53,9 @@ export function DslElementHeader(props: Props) {
isActionKamelet
} = useRouteDesignerHook();
- const [selectedUuids, selectedStep, showMoveConfirmation, setShowMoveConfirmation, hideLogDSL, setMoveElements] =
+ const [selectedUuids, selectedStep, showMoveConfirmation, setShowMoveConfirmation, setMoveElements] =
useDesignerStore((s) =>
- [s.selectedUuids, s.selectedStep, s.showMoveConfirmation, s.setShowMoveConfirmation, s.hideLogDSL, s.setMoveElements], shallow)
+ [s.selectedUuids, s.selectedStep, s.showMoveConfirmation, s.setShowMoveConfirmation, s.setMoveElements], shallow)
function onOpenSelector(evt: React.MouseEvent, showSteps: boolean = true, isInsert: boolean = false) {
evt.stopPropagation();
diff --git a/karavan-designer/src/designer/route/useRouteDesignerHook.tsx b/karavan-designer/src/designer/route/useRouteDesignerHook.tsx
index 0f9b7236..6589853a 100644
--- a/karavan-designer/src/designer/route/useRouteDesignerHook.tsx
+++ b/karavan-designer/src/designer/route/useRouteDesignerHook.tsx
@@ -41,10 +41,10 @@ export function useRouteDesignerHook () {
const [integration, setIntegration] = useIntegrationStore((state) => [state.integration, state.setIntegration], shallow)
const [selectedUuids,clipboardSteps,shiftKeyPressed,
setShowDeleteConfirmation, setDeleteMessage, setSelectedStep, setSelectedUuids, setClipboardSteps, setShiftKeyPressed,
- width, height, dark, hideLogDSL] = useDesignerStore((s) =>
+ width, height, dark] = useDesignerStore((s) =>
[s.selectedUuids,s.clipboardSteps, s.shiftKeyPressed,
s.setShowDeleteConfirmation, s.setDeleteMessage, s.setSelectedStep, s.setSelectedUuids, s.setClipboardSteps, s.setShiftKeyPressed,
- s.width, s.height, s.dark, s.hideLogDSL], shallow)
+ s.width, s.height, s.dark], shallow)
const [setParentId, setShowSelector, setSelectorTabIndex, setParentDsl, setShowSteps, setSelectedPosition] = useSelectorStore((s) =>
[s.setParentId, s.setShowSelector, s.setSelectorTabIndex, s.setParentDsl, s.setShowSteps, s.setSelectedPosition], shallow)
diff --git a/karavan-space/src/designer/DesignerStore.ts b/karavan-space/src/designer/DesignerStore.ts
index c19038ad..40418fb1 100644
--- a/karavan-space/src/designer/DesignerStore.ts
+++ b/karavan-space/src/designer/DesignerStore.ts
@@ -199,7 +199,6 @@ type DesignerState = {
dark: boolean;
notificationBadge: boolean;
notificationMessage: [string, string];
- hideLogDSL: boolean;
shiftKeyPressed: boolean;
showDeleteConfirmation: boolean;
showMoveConfirmation: boolean;
@@ -220,7 +219,6 @@ const designerState: DesignerState = {
notificationBadge: false,
notificationMessage: ['', ''],
dark: false,
- hideLogDSL: false,
shiftKeyPressed: false,
showDeleteConfirmation: false,
showMoveConfirmation: false,
@@ -238,7 +236,6 @@ const designerState: DesignerState = {
type DesignerAction = {
setDark: (dark: boolean) => void;
- setHideLogDSL: (hideLogDSL: boolean) => void;
setShiftKeyPressed: (shiftKeyPressed: boolean) => void;
setShowDeleteConfirmation: (showDeleteConfirmation: boolean) => void;
setShowMoveConfirmation: (showMoveConfirmation: boolean) => void;
@@ -259,9 +256,6 @@ export const useDesignerStore = createWithEqualityFn<DesignerState & DesignerAct
setDark: (dark: boolean) => {
set({dark: dark})
},
- setHideLogDSL: (hideLogDSL: boolean) => {
- set({hideLogDSL: hideLogDSL})
- },
setShiftKeyPressed: (shiftKeyPressed: boolean) => {
set({shiftKeyPressed: shiftKeyPressed})
},
diff --git a/karavan-space/src/designer/KaravanDesigner.tsx b/karavan-space/src/designer/KaravanDesigner.tsx
index 36b65118..ff76fa19 100644
--- a/karavan-space/src/designer/KaravanDesigner.tsx
+++ b/karavan-space/src/designer/KaravanDesigner.tsx
@@ -53,7 +53,6 @@ interface Props {
filename: string
yaml: string
dark: boolean
- hideLogDSL?: boolean
showCodeTab: boolean
tab?: "routes" | "rest" | "beans"
propertyPlaceholders: string[]
@@ -64,9 +63,9 @@ interface Props {
export function KaravanDesigner(props: Props) {
const [tab, setTab] = useState<string>('routes');
- const [setDark, hideLogDSL, setHideLogDSL, setSelectedStep, reset, badge, message, setPropertyPlaceholders, setBeans] =
+ const [setDark, setSelectedStep, reset, badge, message, setPropertyPlaceholders, setBeans] =
useDesignerStore((s) =>
- [s.setDark, s.hideLogDSL, s.setHideLogDSL, s.setSelectedStep, s.reset, s.notificationBadge, s.notificationMessage, s.setPropertyPlaceholders, s.setBeans], shallow)
+ [s.setDark, s.setSelectedStep, s.reset, s.notificationBadge, s.notificationMessage, s.setPropertyPlaceholders, s.setBeans], shallow)
const [integration, setIntegration, resetFiles, setVariables] = useIntegrationStore((s) =>
[s.integration, s.setIntegration, s.resetFiles, s.setVariables], shallow)
@@ -97,7 +96,6 @@ export function KaravanDesigner(props: Props) {
setVariables(VariableUtil.findVariables(props.files))
setBeans(props.beans)
resetFiles(props.files)
- setHideLogDSL(props.hideLogDSL === true);
} catch (e: any) {
console.log(e)
EventBus.sendAlert(' ' + e?.name, '' + e?.message, 'danger');
diff --git a/karavan-space/src/designer/route/DslConnections.tsx b/karavan-space/src/designer/route/DslConnections.tsx
index 99339f7c..a711780b 100644
--- a/karavan-space/src/designer/route/DslConnections.tsx
+++ b/karavan-space/src/designer/route/DslConnections.tsx
@@ -34,8 +34,8 @@ const overlapGap: number = 40;
export function DslConnections() {
const [integration, files] = useIntegrationStore((s) => [s.integration, s.files], shallow)
- const [width, height, top, left, hideLogDSL] = useDesignerStore((s) =>
- [s.width, s.height, s.top, s.left, s.hideLogDSL], shallow)
+ const [width, height, top, left] = useDesignerStore((s) =>
+ [s.width, s.height, s.top, s.left], shallow)
const [steps, addStep, deleteStep, clearSteps] =
useConnectionsStore((s) => [s.steps, s.addStep, s.deleteStep, s.clearSteps], shallow)
@@ -285,7 +285,7 @@ export function DslConnections() {
}
function isSpecial(pos: DslPosition): boolean {
- return ['ChoiceDefinition', 'MulticastDefinition', 'TryDefinition'].includes(pos.step.dslName);
+ return ['ChoiceDefinition', 'MulticastDefinition', 'TryDefinition', 'RouteConfigurationDefinition'].includes(pos.step.dslName);
}
function addArrowToList(list: JSX.Element[], from?: DslPosition, to?: DslPosition, fromHeader?: boolean, toHeader?: boolean): JSX.Element[] {
@@ -299,13 +299,17 @@ export function DslConnections() {
return result;
}
+ function getParentDsl(uuid?: string): string | undefined {
+ return uuid ? steps.get(uuid)?.parent?.dslName : undefined;
+ }
+
function getArrow(pos: DslPosition): JSX.Element[] {
const list: JSX.Element[] = [];
if (pos.parent && pos.parent.dslName === 'TryDefinition' && pos.position === 0) {
const parent = steps.get(pos.parent.uuid);
list.push(...addArrowToList(list, parent, pos, true, false))
- } else if (pos.parent && pos.parent.dslName === 'MulticastDefinition') {
+ } else if (pos.parent && ['RouteConfigurationDefinition', 'MulticastDefinition'].includes(pos.parent.dslName)) {
const parent = steps.get(pos.parent.uuid);
list.push(...addArrowToList(list, parent, pos, true, false))
if (parent?.nextstep) {
@@ -315,14 +319,17 @@ export function DslConnections() {
} else if (pos.parent && pos.parent.dslName === 'ChoiceDefinition') {
const parent = steps.get(pos.parent.uuid);
list.push(...addArrowToList(list, parent, pos, true, false))
- } else if (pos.parent && ['WhenDefinition', 'OtherwiseDefinition', 'CatchDefinition', 'FinallyDefinition'].includes(pos.parent.dslName)) {
- if (pos.position === 0) {
+ } else if (pos.parent && ['WhenDefinition', 'OtherwiseDefinition', 'CatchDefinition', 'FinallyDefinition', 'TryDefinition'].includes(pos.parent.dslName)) {
+ if (pos.position === 0) {
const parent = steps.get(pos.parent.uuid);
list.push(...addArrowToList(list, parent, pos, true, false))
}
if (pos.position === (pos.inStepsLength - 1) && !isSpecial(pos)) {
const nextElement = getNext(pos);
- if (nextElement) {
+ const parentDsl1 = getParentDsl(nextElement?.uuid);
+ if (parentDsl1 && ['RouteConfigurationDefinition', 'MulticastDefinition'].includes(parentDsl1)) {
+ // do nothing
+ } else if (nextElement) {
const next = steps.get(nextElement.uuid);
list.push(...addArrowToList(list, pos, next, true, true))
}
@@ -341,12 +348,18 @@ export function DslConnections() {
}
if (['WhenDefinition', 'OtherwiseDefinition'].includes(pos.step.dslName) && pos.step.hasSteps() && (pos.step as any).steps.length === 0) {
- if (pos.nextstep) {
+ const parentDsl = getParentDsl(pos?.nextstep?.uuid);
+ if (parentDsl && ['RouteConfigurationDefinition', 'MulticastDefinition'].includes(parentDsl)) {
+ // do nothing
+ } else if (pos.nextstep) {
const to = steps.get(pos.nextstep.uuid);
list.push(...addArrowToList(list, pos, to, true, true))
} else {
const next = getNext(pos);
- if (next) {
+ const parentDsl1 = getParentDsl(next?.uuid);
+ if (parentDsl1 && ['RouteConfigurationDefinition', 'MulticastDefinition'].includes(parentDsl1)) {
+ // do nothing
+ } else if (next) {
const to = steps.get(next.uuid);
list.push(...addArrowToList(list, pos, to, true, true))
}
diff --git a/karavan-space/src/designer/route/RouteDesigner.tsx b/karavan-space/src/designer/route/RouteDesigner.tsx
index 9ef5e827..39c14fda 100644
--- a/karavan-space/src/designer/route/RouteDesigner.tsx
+++ b/karavan-space/src/designer/route/RouteDesigner.tsx
@@ -44,9 +44,9 @@ export function RouteDesigner() {
isSourceKamelet, isActionKamelet, isKamelet, isSinkKamelet} = useRouteDesignerHook();
const [integration] = useIntegrationStore((state) => [state.integration], shallow)
- const [showDeleteConfirmation, setPosition, width, height, top, left, hideLogDSL, showMoveConfirmation, setShowMoveConfirmation] =
+ const [showDeleteConfirmation, setPosition, width, height, top, left, showMoveConfirmation, setShowMoveConfirmation] =
useDesignerStore((s) =>
- [s.showDeleteConfirmation, s.setPosition, s.width, s.height, s.top, s.left, s.hideLogDSL, s.showMoveConfirmation, s.setShowMoveConfirmation], shallow)
+ [s.showDeleteConfirmation, s.setPosition, s.width, s.height, s.top, s.left, s.showMoveConfirmation, s.setShowMoveConfirmation], shallow)
const [showSelector] = useSelectorStore((s) => [s.showSelector], shallow)
diff --git a/karavan-space/src/designer/route/element/DslElement.tsx b/karavan-space/src/designer/route/element/DslElement.tsx
index 6f5ab5b5..70befc33 100644
--- a/karavan-space/src/designer/route/element/DslElement.tsx
+++ b/karavan-space/src/designer/route/element/DslElement.tsx
@@ -53,9 +53,9 @@ export function DslElement(props: Props) {
const [integration] = useIntegrationStore((s) => [s.integration, s.setIntegration], shallow)
- const [selectedUuids, selectedStep, showMoveConfirmation, setShowMoveConfirmation, hideLogDSL, setMoveElements] =
+ const [selectedUuids, selectedStep, showMoveConfirmation, setShowMoveConfirmation, setMoveElements] =
useDesignerStore((s) =>
- [s.selectedUuids, s.selectedStep, s.showMoveConfirmation, s.setShowMoveConfirmation, s.hideLogDSL, s.setMoveElements], shallow)
+ [s.selectedUuids, s.selectedStep, s.showMoveConfirmation, s.setShowMoveConfirmation, s.setMoveElements], shallow)
const [isDragging, setIsDragging] = useState<boolean>(false);
const [isDraggedOver, setIsDraggedOver] = useState<boolean>(false);
diff --git a/karavan-space/src/designer/route/element/DslElementHeader.tsx b/karavan-space/src/designer/route/element/DslElementHeader.tsx
index 1b5dbe5b..5ec041d2 100644
--- a/karavan-space/src/designer/route/element/DslElementHeader.tsx
+++ b/karavan-space/src/designer/route/element/DslElementHeader.tsx
@@ -53,9 +53,9 @@ export function DslElementHeader(props: Props) {
isActionKamelet
} = useRouteDesignerHook();
- const [selectedUuids, selectedStep, showMoveConfirmation, setShowMoveConfirmation, hideLogDSL, setMoveElements] =
+ const [selectedUuids, selectedStep, showMoveConfirmation, setShowMoveConfirmation, setMoveElements] =
useDesignerStore((s) =>
- [s.selectedUuids, s.selectedStep, s.showMoveConfirmation, s.setShowMoveConfirmation, s.hideLogDSL, s.setMoveElements], shallow)
+ [s.selectedUuids, s.selectedStep, s.showMoveConfirmation, s.setShowMoveConfirmation, s.setMoveElements], shallow)
function onOpenSelector(evt: React.MouseEvent, showSteps: boolean = true, isInsert: boolean = false) {
evt.stopPropagation();
diff --git a/karavan-space/src/designer/route/useRouteDesignerHook.tsx b/karavan-space/src/designer/route/useRouteDesignerHook.tsx
index 0f9b7236..6589853a 100644
--- a/karavan-space/src/designer/route/useRouteDesignerHook.tsx
+++ b/karavan-space/src/designer/route/useRouteDesignerHook.tsx
@@ -41,10 +41,10 @@ export function useRouteDesignerHook () {
const [integration, setIntegration] = useIntegrationStore((state) => [state.integration, state.setIntegration], shallow)
const [selectedUuids,clipboardSteps,shiftKeyPressed,
setShowDeleteConfirmation, setDeleteMessage, setSelectedStep, setSelectedUuids, setClipboardSteps, setShiftKeyPressed,
- width, height, dark, hideLogDSL] = useDesignerStore((s) =>
+ width, height, dark] = useDesignerStore((s) =>
[s.selectedUuids,s.clipboardSteps, s.shiftKeyPressed,
s.setShowDeleteConfirmation, s.setDeleteMessage, s.setSelectedStep, s.setSelectedUuids, s.setClipboardSteps, s.setShiftKeyPressed,
- s.width, s.height, s.dark, s.hideLogDSL], shallow)
+ s.width, s.height, s.dark], shallow)
const [setParentId, setShowSelector, setSelectorTabIndex, setParentDsl, setShowSteps, setSelectedPosition] = useSelectorStore((s) =>
[s.setParentId, s.setShowSelector, s.setSelectorTabIndex, s.setParentDsl, s.setShowSteps, s.setSelectedPosition], shallow)