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/02/21 22:04:56 UTC

(camel-karavan) branch main updated (99b3f334 -> 7c75dc64)

This is an automated email from the ASF dual-hosted git repository.

marat pushed a change to branch main
in repository https://gitbox.apache.org/repos/asf/camel-karavan.git


    from 99b3f334 Fix #1105
     new bc4649f3 Convert and remove #1136
     new 7c75dc64 fix #1139

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 karavan-designer/public/example/demo.camel.yaml    | 15 ++++++
 .../property/property/DslPropertyField.tsx         | 15 +++++-
 .../designer/property/property/ExpressionField.tsx | 57 ++++++++++++++++------
 .../property/property/DslPropertyField.tsx         | 15 +++++-
 .../designer/property/property/ExpressionField.tsx | 57 ++++++++++++++++------
 .../property/property/DslPropertyField.tsx         | 15 +++++-
 .../designer/property/property/ExpressionField.tsx | 57 ++++++++++++++++------
 7 files changed, 186 insertions(+), 45 deletions(-)


(camel-karavan) 01/02: Convert and remove #1136

Posted by ma...@apache.org.
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

commit bc4649f3a8858138eb22b2e84c5529bb05180c48
Author: Marat Gubaidullin <ma...@talismancloud.io>
AuthorDate: Wed Feb 21 16:31:10 2024 -0500

    Convert and remove #1136
---
 karavan-designer/public/example/demo.camel.yaml          | 15 +++++++++++++++
 .../src/designer/property/property/DslPropertyField.tsx  | 16 +++++++++++++++-
 .../src/designer/property/property/DslPropertyField.tsx  | 16 +++++++++++++++-
 .../src/designer/property/property/DslPropertyField.tsx  | 16 +++++++++++++++-
 4 files changed, 60 insertions(+), 3 deletions(-)

diff --git a/karavan-designer/public/example/demo.camel.yaml b/karavan-designer/public/example/demo.camel.yaml
index f568f58b..b740a018 100644
--- a/karavan-designer/public/example/demo.camel.yaml
+++ b/karavan-designer/public/example/demo.camel.yaml
@@ -70,6 +70,21 @@
       uri: direct
       parameters:
         name: second_direct
+      steps:
+        - setVariable:
+            id: setVariable-75ca
+            name: global:data1
+            expression:
+              simple:
+                id: simple-009e
+        - convertVariableTo:
+            id: convertVariableTo-c0b8
+        - removeVariable:
+            id: removeVariable-2cae
+        - to:
+            id: to-4711
+            uri: metrics
+
 
 #      steps:
 #        - marshal:
diff --git a/karavan-designer/src/designer/property/property/DslPropertyField.tsx b/karavan-designer/src/designer/property/property/DslPropertyField.tsx
index b328cf14..74b55a25 100644
--- a/karavan-designer/src/designer/property/property/DslPropertyField.tsx
+++ b/karavan-designer/src/designer/property/property/DslPropertyField.tsx
@@ -939,11 +939,25 @@ export function DslPropertyField(props: Props) {
         )
     }
 
+    function getIsVariable() {
+        console.log(element?.dslName)
+        if (['variableSend', 'variableReceive'].includes(property.name)) {
+            return true;
+        } else if (property.name === 'name' && element?.dslName === 'SetVariableDefinition') {
+            return true;
+        } else if (property.name === 'name' && element?.dslName === 'RemoveVariableDefinition') {
+            return true
+        } else if (['name', 'toName'].includes(property.name) && element?.dslName === 'ConvertVariableDefinition') {
+            return true;
+        }
+        return false;
+    }
+
     const element = props.element;
     const isKamelet = CamelUtil.isKameletComponent(element);
     const property: PropertyMeta = props.property;
     const value = props.value;
-    const isVariable = ['variableSend', 'variableReceive'].includes(property.name)
+    const isVariable = getIsVariable();
     const beanConstructors = element?.dslName === 'RegistryBeanDefinition' && property.name === 'constructors'
     const beanProperties = element?.dslName === 'RegistryBeanDefinition' && property.name === 'properties'
     return (
diff --git a/karavan-space/src/designer/property/property/DslPropertyField.tsx b/karavan-space/src/designer/property/property/DslPropertyField.tsx
index b328cf14..74b55a25 100644
--- a/karavan-space/src/designer/property/property/DslPropertyField.tsx
+++ b/karavan-space/src/designer/property/property/DslPropertyField.tsx
@@ -939,11 +939,25 @@ export function DslPropertyField(props: Props) {
         )
     }
 
+    function getIsVariable() {
+        console.log(element?.dslName)
+        if (['variableSend', 'variableReceive'].includes(property.name)) {
+            return true;
+        } else if (property.name === 'name' && element?.dslName === 'SetVariableDefinition') {
+            return true;
+        } else if (property.name === 'name' && element?.dslName === 'RemoveVariableDefinition') {
+            return true
+        } else if (['name', 'toName'].includes(property.name) && element?.dslName === 'ConvertVariableDefinition') {
+            return true;
+        }
+        return false;
+    }
+
     const element = props.element;
     const isKamelet = CamelUtil.isKameletComponent(element);
     const property: PropertyMeta = props.property;
     const value = props.value;
-    const isVariable = ['variableSend', 'variableReceive'].includes(property.name)
+    const isVariable = getIsVariable();
     const beanConstructors = element?.dslName === 'RegistryBeanDefinition' && property.name === 'constructors'
     const beanProperties = element?.dslName === 'RegistryBeanDefinition' && property.name === 'properties'
     return (
diff --git a/karavan-web/karavan-app/src/main/webui/src/designer/property/property/DslPropertyField.tsx b/karavan-web/karavan-app/src/main/webui/src/designer/property/property/DslPropertyField.tsx
index b328cf14..74b55a25 100644
--- a/karavan-web/karavan-app/src/main/webui/src/designer/property/property/DslPropertyField.tsx
+++ b/karavan-web/karavan-app/src/main/webui/src/designer/property/property/DslPropertyField.tsx
@@ -939,11 +939,25 @@ export function DslPropertyField(props: Props) {
         )
     }
 
+    function getIsVariable() {
+        console.log(element?.dslName)
+        if (['variableSend', 'variableReceive'].includes(property.name)) {
+            return true;
+        } else if (property.name === 'name' && element?.dslName === 'SetVariableDefinition') {
+            return true;
+        } else if (property.name === 'name' && element?.dslName === 'RemoveVariableDefinition') {
+            return true
+        } else if (['name', 'toName'].includes(property.name) && element?.dslName === 'ConvertVariableDefinition') {
+            return true;
+        }
+        return false;
+    }
+
     const element = props.element;
     const isKamelet = CamelUtil.isKameletComponent(element);
     const property: PropertyMeta = props.property;
     const value = props.value;
-    const isVariable = ['variableSend', 'variableReceive'].includes(property.name)
+    const isVariable = getIsVariable();
     const beanConstructors = element?.dslName === 'RegistryBeanDefinition' && property.name === 'constructors'
     const beanProperties = element?.dslName === 'RegistryBeanDefinition' && property.name === 'properties'
     return (


(camel-karavan) 02/02: fix #1139

Posted by ma...@apache.org.
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

commit 7c75dc646d6d9f908a5ee3d2e04b1f0ba5a7f836
Author: Marat Gubaidullin <ma...@talismancloud.io>
AuthorDate: Wed Feb 21 17:04:47 2024 -0500

    fix #1139
---
 .../property/property/DslPropertyField.tsx         |  1 -
 .../designer/property/property/ExpressionField.tsx | 57 ++++++++++++++++------
 .../property/property/DslPropertyField.tsx         |  1 -
 .../designer/property/property/ExpressionField.tsx | 57 ++++++++++++++++------
 .../property/property/DslPropertyField.tsx         |  1 -
 .../designer/property/property/ExpressionField.tsx | 57 ++++++++++++++++------
 6 files changed, 129 insertions(+), 45 deletions(-)

diff --git a/karavan-designer/src/designer/property/property/DslPropertyField.tsx b/karavan-designer/src/designer/property/property/DslPropertyField.tsx
index 74b55a25..a52cf266 100644
--- a/karavan-designer/src/designer/property/property/DslPropertyField.tsx
+++ b/karavan-designer/src/designer/property/property/DslPropertyField.tsx
@@ -940,7 +940,6 @@ export function DslPropertyField(props: Props) {
     }
 
     function getIsVariable() {
-        console.log(element?.dslName)
         if (['variableSend', 'variableReceive'].includes(property.name)) {
             return true;
         } else if (property.name === 'name' && element?.dslName === 'SetVariableDefinition') {
diff --git a/karavan-designer/src/designer/property/property/ExpressionField.tsx b/karavan-designer/src/designer/property/property/ExpressionField.tsx
index 0aaf81c1..dac658ce 100644
--- a/karavan-designer/src/designer/property/property/ExpressionField.tsx
+++ b/karavan-designer/src/designer/property/property/ExpressionField.tsx
@@ -16,8 +16,9 @@
  */
 import React, {useState} from 'react';
 import {
-	FormGroup,
-	Popover
+    ExpandableSection,
+    FormGroup,
+    Popover
 } from '@patternfly/react-core';
 import {
 	Select,
@@ -45,6 +46,7 @@ interface Props {
 export function ExpressionField(props: Props) {
 
     const [selectIsOpen, setSelectIsOpen] = useState<boolean>(false);
+    const [propsAreOpen, setPropsAreOpen] = useState<boolean>(false);
 
     function openSelect (isExpanded: boolean) {
         setSelectIsOpen(isExpanded);
@@ -91,9 +93,15 @@ export function ExpressionField(props: Props) {
         const dslName = getValueClassName();
         return CamelDefinitionApiExt.getElementProperties(dslName)
             .filter(p => p.name !== 'id')
+            .filter(p => p.name !== 'expression')
             .filter(p => !p.isObject || (p.isObject && !CamelUi.dslHasSteps(p.type)) || (dslName === 'CatchDefinition' && p.name === 'onWhen'));
     }
 
+    function getExpressionProps (): PropertyMeta | undefined {
+        const dslName = getValueClassName();
+        return CamelDefinitionApiExt.getElementProperties(dslName).filter(p => p.name === 'expression').at(0);
+    }
+
     const property: PropertyMeta = props.property;
     const value = getExpressionValue();
     const dslLanguage = Languages.find((l: [string, string, string]) => l[0] === getValueLanguage());
@@ -102,6 +110,7 @@ export function ExpressionField(props: Props) {
         const s = <SelectOption key={lang[0]} value={lang[0]} description={lang[2]}/>;
         selectOptions.push(s);
     })
+    const exp = getExpressionProps();
     return (
         <div>
             <label className="pf-v5-c-form__label" htmlFor="expression">
@@ -137,21 +146,41 @@ export function ExpressionField(props: Props) {
                             e.stopPropagation();
                         }}
                                 className="pf-v5-c-form__group-label-help">
-                            <HelpIcon />
+                            <HelpIcon/>
                         </button>
                     </Popover> : <div></div>
                 }>
-                {value && getProps().map((property: PropertyMeta) =>
-                    <DslPropertyField key={property.name + props.value?.uuid}
-                                      property={property}
-                                      value={value ? (value as any)[property.name] : undefined}
-                                      dslLanguage={dslLanguage}
-                                      onExpressionChange={exp => {}}
-                                      onParameterChange={parameter => {}}
-                                      onDataFormatChange={dataFormat => {}}
-                                      onPropertyChange={propertyChanged}
-                    />
-                )}
+                {exp && <DslPropertyField key={exp.name + props.value?.uuid}
+                                          property={exp}
+                                          value={value ? (value as any)[exp.name] : undefined}
+                                          dslLanguage={dslLanguage}
+                                          onExpressionChange={exp => {
+                                          }}
+                                          onParameterChange={parameter => {
+                                          }}
+                                          onDataFormatChange={dataFormat => {
+                                          }}
+                                          onPropertyChange={propertyChanged}
+                />}
+                <ExpandableSection
+                    toggleText={'Expression properties'}
+                    onToggle={(_event, isExpanded) => setPropsAreOpen(isExpanded)}
+                    isExpanded={propsAreOpen}>
+                    {value && getProps().map((property: PropertyMeta) =>
+                        <DslPropertyField key={property.name + props.value?.uuid}
+                                          property={property}
+                                          value={value ? (value as any)[property.name] : undefined}
+                                          dslLanguage={dslLanguage}
+                                          onExpressionChange={exp => {
+                                          }}
+                                          onParameterChange={parameter => {
+                                          }}
+                                          onDataFormatChange={dataFormat => {
+                                          }}
+                                          onPropertyChange={propertyChanged}
+                        />
+                    )}
+                </ExpandableSection>
             </FormGroup>
         </div>
     )
diff --git a/karavan-space/src/designer/property/property/DslPropertyField.tsx b/karavan-space/src/designer/property/property/DslPropertyField.tsx
index 74b55a25..a52cf266 100644
--- a/karavan-space/src/designer/property/property/DslPropertyField.tsx
+++ b/karavan-space/src/designer/property/property/DslPropertyField.tsx
@@ -940,7 +940,6 @@ export function DslPropertyField(props: Props) {
     }
 
     function getIsVariable() {
-        console.log(element?.dslName)
         if (['variableSend', 'variableReceive'].includes(property.name)) {
             return true;
         } else if (property.name === 'name' && element?.dslName === 'SetVariableDefinition') {
diff --git a/karavan-space/src/designer/property/property/ExpressionField.tsx b/karavan-space/src/designer/property/property/ExpressionField.tsx
index 0aaf81c1..dac658ce 100644
--- a/karavan-space/src/designer/property/property/ExpressionField.tsx
+++ b/karavan-space/src/designer/property/property/ExpressionField.tsx
@@ -16,8 +16,9 @@
  */
 import React, {useState} from 'react';
 import {
-	FormGroup,
-	Popover
+    ExpandableSection,
+    FormGroup,
+    Popover
 } from '@patternfly/react-core';
 import {
 	Select,
@@ -45,6 +46,7 @@ interface Props {
 export function ExpressionField(props: Props) {
 
     const [selectIsOpen, setSelectIsOpen] = useState<boolean>(false);
+    const [propsAreOpen, setPropsAreOpen] = useState<boolean>(false);
 
     function openSelect (isExpanded: boolean) {
         setSelectIsOpen(isExpanded);
@@ -91,9 +93,15 @@ export function ExpressionField(props: Props) {
         const dslName = getValueClassName();
         return CamelDefinitionApiExt.getElementProperties(dslName)
             .filter(p => p.name !== 'id')
+            .filter(p => p.name !== 'expression')
             .filter(p => !p.isObject || (p.isObject && !CamelUi.dslHasSteps(p.type)) || (dslName === 'CatchDefinition' && p.name === 'onWhen'));
     }
 
+    function getExpressionProps (): PropertyMeta | undefined {
+        const dslName = getValueClassName();
+        return CamelDefinitionApiExt.getElementProperties(dslName).filter(p => p.name === 'expression').at(0);
+    }
+
     const property: PropertyMeta = props.property;
     const value = getExpressionValue();
     const dslLanguage = Languages.find((l: [string, string, string]) => l[0] === getValueLanguage());
@@ -102,6 +110,7 @@ export function ExpressionField(props: Props) {
         const s = <SelectOption key={lang[0]} value={lang[0]} description={lang[2]}/>;
         selectOptions.push(s);
     })
+    const exp = getExpressionProps();
     return (
         <div>
             <label className="pf-v5-c-form__label" htmlFor="expression">
@@ -137,21 +146,41 @@ export function ExpressionField(props: Props) {
                             e.stopPropagation();
                         }}
                                 className="pf-v5-c-form__group-label-help">
-                            <HelpIcon />
+                            <HelpIcon/>
                         </button>
                     </Popover> : <div></div>
                 }>
-                {value && getProps().map((property: PropertyMeta) =>
-                    <DslPropertyField key={property.name + props.value?.uuid}
-                                      property={property}
-                                      value={value ? (value as any)[property.name] : undefined}
-                                      dslLanguage={dslLanguage}
-                                      onExpressionChange={exp => {}}
-                                      onParameterChange={parameter => {}}
-                                      onDataFormatChange={dataFormat => {}}
-                                      onPropertyChange={propertyChanged}
-                    />
-                )}
+                {exp && <DslPropertyField key={exp.name + props.value?.uuid}
+                                          property={exp}
+                                          value={value ? (value as any)[exp.name] : undefined}
+                                          dslLanguage={dslLanguage}
+                                          onExpressionChange={exp => {
+                                          }}
+                                          onParameterChange={parameter => {
+                                          }}
+                                          onDataFormatChange={dataFormat => {
+                                          }}
+                                          onPropertyChange={propertyChanged}
+                />}
+                <ExpandableSection
+                    toggleText={'Expression properties'}
+                    onToggle={(_event, isExpanded) => setPropsAreOpen(isExpanded)}
+                    isExpanded={propsAreOpen}>
+                    {value && getProps().map((property: PropertyMeta) =>
+                        <DslPropertyField key={property.name + props.value?.uuid}
+                                          property={property}
+                                          value={value ? (value as any)[property.name] : undefined}
+                                          dslLanguage={dslLanguage}
+                                          onExpressionChange={exp => {
+                                          }}
+                                          onParameterChange={parameter => {
+                                          }}
+                                          onDataFormatChange={dataFormat => {
+                                          }}
+                                          onPropertyChange={propertyChanged}
+                        />
+                    )}
+                </ExpandableSection>
             </FormGroup>
         </div>
     )
diff --git a/karavan-web/karavan-app/src/main/webui/src/designer/property/property/DslPropertyField.tsx b/karavan-web/karavan-app/src/main/webui/src/designer/property/property/DslPropertyField.tsx
index 74b55a25..a52cf266 100644
--- a/karavan-web/karavan-app/src/main/webui/src/designer/property/property/DslPropertyField.tsx
+++ b/karavan-web/karavan-app/src/main/webui/src/designer/property/property/DslPropertyField.tsx
@@ -940,7 +940,6 @@ export function DslPropertyField(props: Props) {
     }
 
     function getIsVariable() {
-        console.log(element?.dslName)
         if (['variableSend', 'variableReceive'].includes(property.name)) {
             return true;
         } else if (property.name === 'name' && element?.dslName === 'SetVariableDefinition') {
diff --git a/karavan-web/karavan-app/src/main/webui/src/designer/property/property/ExpressionField.tsx b/karavan-web/karavan-app/src/main/webui/src/designer/property/property/ExpressionField.tsx
index 0aaf81c1..dac658ce 100644
--- a/karavan-web/karavan-app/src/main/webui/src/designer/property/property/ExpressionField.tsx
+++ b/karavan-web/karavan-app/src/main/webui/src/designer/property/property/ExpressionField.tsx
@@ -16,8 +16,9 @@
  */
 import React, {useState} from 'react';
 import {
-	FormGroup,
-	Popover
+    ExpandableSection,
+    FormGroup,
+    Popover
 } from '@patternfly/react-core';
 import {
 	Select,
@@ -45,6 +46,7 @@ interface Props {
 export function ExpressionField(props: Props) {
 
     const [selectIsOpen, setSelectIsOpen] = useState<boolean>(false);
+    const [propsAreOpen, setPropsAreOpen] = useState<boolean>(false);
 
     function openSelect (isExpanded: boolean) {
         setSelectIsOpen(isExpanded);
@@ -91,9 +93,15 @@ export function ExpressionField(props: Props) {
         const dslName = getValueClassName();
         return CamelDefinitionApiExt.getElementProperties(dslName)
             .filter(p => p.name !== 'id')
+            .filter(p => p.name !== 'expression')
             .filter(p => !p.isObject || (p.isObject && !CamelUi.dslHasSteps(p.type)) || (dslName === 'CatchDefinition' && p.name === 'onWhen'));
     }
 
+    function getExpressionProps (): PropertyMeta | undefined {
+        const dslName = getValueClassName();
+        return CamelDefinitionApiExt.getElementProperties(dslName).filter(p => p.name === 'expression').at(0);
+    }
+
     const property: PropertyMeta = props.property;
     const value = getExpressionValue();
     const dslLanguage = Languages.find((l: [string, string, string]) => l[0] === getValueLanguage());
@@ -102,6 +110,7 @@ export function ExpressionField(props: Props) {
         const s = <SelectOption key={lang[0]} value={lang[0]} description={lang[2]}/>;
         selectOptions.push(s);
     })
+    const exp = getExpressionProps();
     return (
         <div>
             <label className="pf-v5-c-form__label" htmlFor="expression">
@@ -137,21 +146,41 @@ export function ExpressionField(props: Props) {
                             e.stopPropagation();
                         }}
                                 className="pf-v5-c-form__group-label-help">
-                            <HelpIcon />
+                            <HelpIcon/>
                         </button>
                     </Popover> : <div></div>
                 }>
-                {value && getProps().map((property: PropertyMeta) =>
-                    <DslPropertyField key={property.name + props.value?.uuid}
-                                      property={property}
-                                      value={value ? (value as any)[property.name] : undefined}
-                                      dslLanguage={dslLanguage}
-                                      onExpressionChange={exp => {}}
-                                      onParameterChange={parameter => {}}
-                                      onDataFormatChange={dataFormat => {}}
-                                      onPropertyChange={propertyChanged}
-                    />
-                )}
+                {exp && <DslPropertyField key={exp.name + props.value?.uuid}
+                                          property={exp}
+                                          value={value ? (value as any)[exp.name] : undefined}
+                                          dslLanguage={dslLanguage}
+                                          onExpressionChange={exp => {
+                                          }}
+                                          onParameterChange={parameter => {
+                                          }}
+                                          onDataFormatChange={dataFormat => {
+                                          }}
+                                          onPropertyChange={propertyChanged}
+                />}
+                <ExpandableSection
+                    toggleText={'Expression properties'}
+                    onToggle={(_event, isExpanded) => setPropsAreOpen(isExpanded)}
+                    isExpanded={propsAreOpen}>
+                    {value && getProps().map((property: PropertyMeta) =>
+                        <DslPropertyField key={property.name + props.value?.uuid}
+                                          property={property}
+                                          value={value ? (value as any)[property.name] : undefined}
+                                          dslLanguage={dslLanguage}
+                                          onExpressionChange={exp => {
+                                          }}
+                                          onParameterChange={parameter => {
+                                          }}
+                                          onDataFormatChange={dataFormat => {
+                                          }}
+                                          onPropertyChange={propertyChanged}
+                        />
+                    )}
+                </ExpandableSection>
             </FormGroup>
         </div>
     )