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>
     )

Reply via email to