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 e70e9eb9 Fix #1296 e70e9eb9 is described below commit e70e9eb975bfa400cd5fff0aa345c02ed60d36e8 Author: Marat Gubaidullin <ma...@talismancloud.io> AuthorDate: Fri May 24 18:12:21 2024 -0400 Fix #1296 --- .../main/webui/src/designer/route/DslConnections.tsx | 16 +++++++++------- .../webui/src/designer/route/element/DslElement.tsx | 5 ++--- .../src/designer/route/element/DslElementHeader.tsx | 5 +++-- karavan-designer/public/example/demo.camel.yaml | 19 ++++++++++++++++++- .../src/designer/route/DslConnections.tsx | 16 +++++++++------- .../src/designer/route/element/DslElement.tsx | 5 ++--- .../src/designer/route/element/DslElementHeader.tsx | 5 +++-- karavan-space/src/designer/route/DslConnections.tsx | 16 +++++++++------- .../src/designer/route/element/DslElement.tsx | 5 ++--- .../src/designer/route/element/DslElementHeader.tsx | 5 +++-- 10 files changed, 60 insertions(+), 37 deletions(-) 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 0b5dead4..718f60be 100644 --- a/karavan-app/src/main/webui/src/designer/route/DslConnections.tsx +++ b/karavan-app/src/main/webui/src/designer/route/DslConnections.tsx @@ -285,7 +285,7 @@ export function DslConnections() { } function isSpecial(pos: DslPosition): boolean { - return ['ChoiceDefinition', 'MulticastDefinition', 'TryDefinition', 'RouteConfigurationDefinition'].includes(pos.step.dslName); + return ['ChoiceDefinition', 'MulticastDefinition', 'LoadBalanceDefinition', 'TryDefinition', 'RouteConfigurationDefinition'].includes(pos.step.dslName); } function addArrowToList(list: JSX.Element[], from?: DslPosition, to?: DslPosition, fromHeader?: boolean, toHeader?: boolean): JSX.Element[] { @@ -309,7 +309,7 @@ export function DslConnections() { 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 && ['RouteConfigurationDefinition', 'MulticastDefinition'].includes(pos.parent.dslName)) { + } else if (pos.parent && ['RouteConfigurationDefinition', 'MulticastDefinition', 'LoadBalanceDefinition'].includes(pos.parent.dslName)) { const parent = steps.get(pos.parent.uuid); list.push(...addArrowToList(list, parent, pos, true, false)) if (parent?.nextstep) { @@ -327,7 +327,7 @@ export function DslConnections() { if (pos.position === (pos.inStepsLength - 1) && !isSpecial(pos)) { const nextElement = getNext(pos); const parentDsl1 = getParentDsl(nextElement?.uuid); - if (parentDsl1 && ['RouteConfigurationDefinition', 'MulticastDefinition'].includes(parentDsl1)) { + if (parentDsl1 && ['RouteConfigurationDefinition', 'MulticastDefinition', 'LoadBalanceDefinition'].includes(parentDsl1)) { // do nothing } else if (nextElement) { const next = steps.get(nextElement.uuid); @@ -349,7 +349,7 @@ export function DslConnections() { if (['WhenDefinition', 'OtherwiseDefinition'].includes(pos.step.dslName) && pos.step.hasSteps() && (pos.step as any).steps.length === 0) { const parentDsl = getParentDsl(pos?.nextstep?.uuid); - if (parentDsl && ['RouteConfigurationDefinition', 'MulticastDefinition'].includes(parentDsl)) { + if (parentDsl && ['RouteConfigurationDefinition', 'MulticastDefinition', 'LoadBalanceDefinition'].includes(parentDsl)) { // do nothing } else if (pos.nextstep) { const to = steps.get(pos.nextstep.uuid); @@ -357,7 +357,7 @@ export function DslConnections() { } else { const next = getNext(pos); const parentDsl1 = getParentDsl(next?.uuid); - if (parentDsl1 && ['RouteConfigurationDefinition', 'MulticastDefinition'].includes(parentDsl1)) { + if (parentDsl1 && ['RouteConfigurationDefinition', 'MulticastDefinition', 'LoadBalanceDefinition'].includes(parentDsl1)) { // do nothing } else if (next) { const to = steps.get(next.uuid); @@ -374,7 +374,8 @@ export function DslConnections() { } } - if (!isSpecial(pos) && pos.inSteps && pos.nextstep && pos.parent?.dslName !== 'MulticastDefinition') { + if (!isSpecial(pos) && pos.inSteps && pos.nextstep && (pos.parent?.dslName && + !['MulticastDefinition', 'LoadBalanceDefinition'].includes(pos.parent?.dslName))) { const next = steps.get(pos.nextstep.uuid); if (pos.step.hasSteps() && pos.prevStep) { } else { @@ -382,7 +383,8 @@ export function DslConnections() { } } - if (!isSpecial(pos) && pos.inSteps && pos.nextstep && pos.parent?.dslName !== 'MulticastDefinition') { + if (!isSpecial(pos) && pos.inSteps && pos.nextstep && (pos.parent?.dslName && + !['MulticastDefinition', 'LoadBalanceDefinition'].includes(pos.parent?.dslName))) { const next = steps.get(pos.nextstep.uuid); if (next && !isSpecial(next) && next.inSteps) { // console.log(pos) 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 ae566055..0416f3cb 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 @@ -102,7 +102,6 @@ export function DslElement(props: Props) { if ([ 'FromDefinition', 'TryDefinition', - 'MulticastDefinition', 'CatchDefinition', 'FinallyDefinition', 'ChoiceDefinition', 'SwitchDefinition', 'WhenDefinition', 'OtherwiseDefinition' @@ -117,12 +116,12 @@ export function DslElement(props: Props) { } function isAddStepButtonLeft(): boolean { - return ['MulticastDefinition'] + return ['MulticastDefinition', 'LoadBalanceDefinition'] .includes(props.step.dslName); } function isHorizontal(): boolean { - return ['MulticastDefinition'].includes(props.step.dslName); + return ['MulticastDefinition', 'LoadBalanceDefinition'].includes(props.step.dslName); } 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 c047e846..78e7da52 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 @@ -76,12 +76,13 @@ export function DslElementHeader(props: Props) { } function isWide(): boolean { - return ['RouteConfigurationDefinition', 'RouteDefinition', 'ChoiceDefinition', 'MulticastDefinition', 'TryDefinition', 'CircuitBreakerDefinition'] + return ['RouteConfigurationDefinition', 'RouteDefinition', 'ChoiceDefinition', 'MulticastDefinition', + 'LoadBalanceDefinition', 'TryDefinition', 'CircuitBreakerDefinition'] .includes(props.step.dslName); } function isHorizontal(): boolean { - return ['MulticastDefinition'].includes(props.step.dslName); + return ['MulticastDefinition', 'LoadBalanceDefinition'].includes(props.step.dslName); } function getChildrenInfo(step: CamelElement): [boolean, number, boolean, number, number] { diff --git a/karavan-designer/public/example/demo.camel.yaml b/karavan-designer/public/example/demo.camel.yaml index 0637a088..57f6252a 100644 --- a/karavan-designer/public/example/demo.camel.yaml +++ b/karavan-designer/public/example/demo.camel.yaml @@ -1 +1,18 @@ -[] \ No newline at end of file +- route: + id: route-3d00 + nodePrefixId: route-01c + from: + id: from-4a08 + uri: direct + parameters: + name: adsdasdas + steps: + - loadBalance: + id: loadBalance-55de + steps: + - to: + id: to-87b5 + uri: direct + - to: + id: to-f061 + uri: direct diff --git a/karavan-designer/src/designer/route/DslConnections.tsx b/karavan-designer/src/designer/route/DslConnections.tsx index 0b5dead4..718f60be 100644 --- a/karavan-designer/src/designer/route/DslConnections.tsx +++ b/karavan-designer/src/designer/route/DslConnections.tsx @@ -285,7 +285,7 @@ export function DslConnections() { } function isSpecial(pos: DslPosition): boolean { - return ['ChoiceDefinition', 'MulticastDefinition', 'TryDefinition', 'RouteConfigurationDefinition'].includes(pos.step.dslName); + return ['ChoiceDefinition', 'MulticastDefinition', 'LoadBalanceDefinition', 'TryDefinition', 'RouteConfigurationDefinition'].includes(pos.step.dslName); } function addArrowToList(list: JSX.Element[], from?: DslPosition, to?: DslPosition, fromHeader?: boolean, toHeader?: boolean): JSX.Element[] { @@ -309,7 +309,7 @@ export function DslConnections() { 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 && ['RouteConfigurationDefinition', 'MulticastDefinition'].includes(pos.parent.dslName)) { + } else if (pos.parent && ['RouteConfigurationDefinition', 'MulticastDefinition', 'LoadBalanceDefinition'].includes(pos.parent.dslName)) { const parent = steps.get(pos.parent.uuid); list.push(...addArrowToList(list, parent, pos, true, false)) if (parent?.nextstep) { @@ -327,7 +327,7 @@ export function DslConnections() { if (pos.position === (pos.inStepsLength - 1) && !isSpecial(pos)) { const nextElement = getNext(pos); const parentDsl1 = getParentDsl(nextElement?.uuid); - if (parentDsl1 && ['RouteConfigurationDefinition', 'MulticastDefinition'].includes(parentDsl1)) { + if (parentDsl1 && ['RouteConfigurationDefinition', 'MulticastDefinition', 'LoadBalanceDefinition'].includes(parentDsl1)) { // do nothing } else if (nextElement) { const next = steps.get(nextElement.uuid); @@ -349,7 +349,7 @@ export function DslConnections() { if (['WhenDefinition', 'OtherwiseDefinition'].includes(pos.step.dslName) && pos.step.hasSteps() && (pos.step as any).steps.length === 0) { const parentDsl = getParentDsl(pos?.nextstep?.uuid); - if (parentDsl && ['RouteConfigurationDefinition', 'MulticastDefinition'].includes(parentDsl)) { + if (parentDsl && ['RouteConfigurationDefinition', 'MulticastDefinition', 'LoadBalanceDefinition'].includes(parentDsl)) { // do nothing } else if (pos.nextstep) { const to = steps.get(pos.nextstep.uuid); @@ -357,7 +357,7 @@ export function DslConnections() { } else { const next = getNext(pos); const parentDsl1 = getParentDsl(next?.uuid); - if (parentDsl1 && ['RouteConfigurationDefinition', 'MulticastDefinition'].includes(parentDsl1)) { + if (parentDsl1 && ['RouteConfigurationDefinition', 'MulticastDefinition', 'LoadBalanceDefinition'].includes(parentDsl1)) { // do nothing } else if (next) { const to = steps.get(next.uuid); @@ -374,7 +374,8 @@ export function DslConnections() { } } - if (!isSpecial(pos) && pos.inSteps && pos.nextstep && pos.parent?.dslName !== 'MulticastDefinition') { + if (!isSpecial(pos) && pos.inSteps && pos.nextstep && (pos.parent?.dslName && + !['MulticastDefinition', 'LoadBalanceDefinition'].includes(pos.parent?.dslName))) { const next = steps.get(pos.nextstep.uuid); if (pos.step.hasSteps() && pos.prevStep) { } else { @@ -382,7 +383,8 @@ export function DslConnections() { } } - if (!isSpecial(pos) && pos.inSteps && pos.nextstep && pos.parent?.dslName !== 'MulticastDefinition') { + if (!isSpecial(pos) && pos.inSteps && pos.nextstep && (pos.parent?.dslName && + !['MulticastDefinition', 'LoadBalanceDefinition'].includes(pos.parent?.dslName))) { const next = steps.get(pos.nextstep.uuid); if (next && !isSpecial(next) && next.inSteps) { // console.log(pos) diff --git a/karavan-designer/src/designer/route/element/DslElement.tsx b/karavan-designer/src/designer/route/element/DslElement.tsx index ae566055..0416f3cb 100644 --- a/karavan-designer/src/designer/route/element/DslElement.tsx +++ b/karavan-designer/src/designer/route/element/DslElement.tsx @@ -102,7 +102,6 @@ export function DslElement(props: Props) { if ([ 'FromDefinition', 'TryDefinition', - 'MulticastDefinition', 'CatchDefinition', 'FinallyDefinition', 'ChoiceDefinition', 'SwitchDefinition', 'WhenDefinition', 'OtherwiseDefinition' @@ -117,12 +116,12 @@ export function DslElement(props: Props) { } function isAddStepButtonLeft(): boolean { - return ['MulticastDefinition'] + return ['MulticastDefinition', 'LoadBalanceDefinition'] .includes(props.step.dslName); } function isHorizontal(): boolean { - return ['MulticastDefinition'].includes(props.step.dslName); + return ['MulticastDefinition', 'LoadBalanceDefinition'].includes(props.step.dslName); } diff --git a/karavan-designer/src/designer/route/element/DslElementHeader.tsx b/karavan-designer/src/designer/route/element/DslElementHeader.tsx index c047e846..78e7da52 100644 --- a/karavan-designer/src/designer/route/element/DslElementHeader.tsx +++ b/karavan-designer/src/designer/route/element/DslElementHeader.tsx @@ -76,12 +76,13 @@ export function DslElementHeader(props: Props) { } function isWide(): boolean { - return ['RouteConfigurationDefinition', 'RouteDefinition', 'ChoiceDefinition', 'MulticastDefinition', 'TryDefinition', 'CircuitBreakerDefinition'] + return ['RouteConfigurationDefinition', 'RouteDefinition', 'ChoiceDefinition', 'MulticastDefinition', + 'LoadBalanceDefinition', 'TryDefinition', 'CircuitBreakerDefinition'] .includes(props.step.dslName); } function isHorizontal(): boolean { - return ['MulticastDefinition'].includes(props.step.dslName); + return ['MulticastDefinition', 'LoadBalanceDefinition'].includes(props.step.dslName); } function getChildrenInfo(step: CamelElement): [boolean, number, boolean, number, number] { diff --git a/karavan-space/src/designer/route/DslConnections.tsx b/karavan-space/src/designer/route/DslConnections.tsx index 0b5dead4..718f60be 100644 --- a/karavan-space/src/designer/route/DslConnections.tsx +++ b/karavan-space/src/designer/route/DslConnections.tsx @@ -285,7 +285,7 @@ export function DslConnections() { } function isSpecial(pos: DslPosition): boolean { - return ['ChoiceDefinition', 'MulticastDefinition', 'TryDefinition', 'RouteConfigurationDefinition'].includes(pos.step.dslName); + return ['ChoiceDefinition', 'MulticastDefinition', 'LoadBalanceDefinition', 'TryDefinition', 'RouteConfigurationDefinition'].includes(pos.step.dslName); } function addArrowToList(list: JSX.Element[], from?: DslPosition, to?: DslPosition, fromHeader?: boolean, toHeader?: boolean): JSX.Element[] { @@ -309,7 +309,7 @@ export function DslConnections() { 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 && ['RouteConfigurationDefinition', 'MulticastDefinition'].includes(pos.parent.dslName)) { + } else if (pos.parent && ['RouteConfigurationDefinition', 'MulticastDefinition', 'LoadBalanceDefinition'].includes(pos.parent.dslName)) { const parent = steps.get(pos.parent.uuid); list.push(...addArrowToList(list, parent, pos, true, false)) if (parent?.nextstep) { @@ -327,7 +327,7 @@ export function DslConnections() { if (pos.position === (pos.inStepsLength - 1) && !isSpecial(pos)) { const nextElement = getNext(pos); const parentDsl1 = getParentDsl(nextElement?.uuid); - if (parentDsl1 && ['RouteConfigurationDefinition', 'MulticastDefinition'].includes(parentDsl1)) { + if (parentDsl1 && ['RouteConfigurationDefinition', 'MulticastDefinition', 'LoadBalanceDefinition'].includes(parentDsl1)) { // do nothing } else if (nextElement) { const next = steps.get(nextElement.uuid); @@ -349,7 +349,7 @@ export function DslConnections() { if (['WhenDefinition', 'OtherwiseDefinition'].includes(pos.step.dslName) && pos.step.hasSteps() && (pos.step as any).steps.length === 0) { const parentDsl = getParentDsl(pos?.nextstep?.uuid); - if (parentDsl && ['RouteConfigurationDefinition', 'MulticastDefinition'].includes(parentDsl)) { + if (parentDsl && ['RouteConfigurationDefinition', 'MulticastDefinition', 'LoadBalanceDefinition'].includes(parentDsl)) { // do nothing } else if (pos.nextstep) { const to = steps.get(pos.nextstep.uuid); @@ -357,7 +357,7 @@ export function DslConnections() { } else { const next = getNext(pos); const parentDsl1 = getParentDsl(next?.uuid); - if (parentDsl1 && ['RouteConfigurationDefinition', 'MulticastDefinition'].includes(parentDsl1)) { + if (parentDsl1 && ['RouteConfigurationDefinition', 'MulticastDefinition', 'LoadBalanceDefinition'].includes(parentDsl1)) { // do nothing } else if (next) { const to = steps.get(next.uuid); @@ -374,7 +374,8 @@ export function DslConnections() { } } - if (!isSpecial(pos) && pos.inSteps && pos.nextstep && pos.parent?.dslName !== 'MulticastDefinition') { + if (!isSpecial(pos) && pos.inSteps && pos.nextstep && (pos.parent?.dslName && + !['MulticastDefinition', 'LoadBalanceDefinition'].includes(pos.parent?.dslName))) { const next = steps.get(pos.nextstep.uuid); if (pos.step.hasSteps() && pos.prevStep) { } else { @@ -382,7 +383,8 @@ export function DslConnections() { } } - if (!isSpecial(pos) && pos.inSteps && pos.nextstep && pos.parent?.dslName !== 'MulticastDefinition') { + if (!isSpecial(pos) && pos.inSteps && pos.nextstep && (pos.parent?.dslName && + !['MulticastDefinition', 'LoadBalanceDefinition'].includes(pos.parent?.dslName))) { const next = steps.get(pos.nextstep.uuid); if (next && !isSpecial(next) && next.inSteps) { // console.log(pos) diff --git a/karavan-space/src/designer/route/element/DslElement.tsx b/karavan-space/src/designer/route/element/DslElement.tsx index ae566055..0416f3cb 100644 --- a/karavan-space/src/designer/route/element/DslElement.tsx +++ b/karavan-space/src/designer/route/element/DslElement.tsx @@ -102,7 +102,6 @@ export function DslElement(props: Props) { if ([ 'FromDefinition', 'TryDefinition', - 'MulticastDefinition', 'CatchDefinition', 'FinallyDefinition', 'ChoiceDefinition', 'SwitchDefinition', 'WhenDefinition', 'OtherwiseDefinition' @@ -117,12 +116,12 @@ export function DslElement(props: Props) { } function isAddStepButtonLeft(): boolean { - return ['MulticastDefinition'] + return ['MulticastDefinition', 'LoadBalanceDefinition'] .includes(props.step.dslName); } function isHorizontal(): boolean { - return ['MulticastDefinition'].includes(props.step.dslName); + return ['MulticastDefinition', 'LoadBalanceDefinition'].includes(props.step.dslName); } diff --git a/karavan-space/src/designer/route/element/DslElementHeader.tsx b/karavan-space/src/designer/route/element/DslElementHeader.tsx index c047e846..78e7da52 100644 --- a/karavan-space/src/designer/route/element/DslElementHeader.tsx +++ b/karavan-space/src/designer/route/element/DslElementHeader.tsx @@ -76,12 +76,13 @@ export function DslElementHeader(props: Props) { } function isWide(): boolean { - return ['RouteConfigurationDefinition', 'RouteDefinition', 'ChoiceDefinition', 'MulticastDefinition', 'TryDefinition', 'CircuitBreakerDefinition'] + return ['RouteConfigurationDefinition', 'RouteDefinition', 'ChoiceDefinition', 'MulticastDefinition', + 'LoadBalanceDefinition', 'TryDefinition', 'CircuitBreakerDefinition'] .includes(props.step.dslName); } function isHorizontal(): boolean { - return ['MulticastDefinition'].includes(props.step.dslName); + return ['MulticastDefinition', 'LoadBalanceDefinition'].includes(props.step.dslName); } function getChildrenInfo(step: CamelElement): [boolean, number, boolean, number, number] {