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