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 2023/12/14 01:53:52 UTC
(camel-karavan) 02/02: Fix #1028
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 a23d4f39ebbc13c71e85f639964a72583a53efb6
Author: Marat Gubaidullin <ma...@talismancloud.io>
AuthorDate: Wed Dec 13 20:53:42 2023 -0500
Fix #1028
---
.../src/designer/route/element/DslElementHeader.tsx | 5 +++--
.../route/property/ComponentParameterField.tsx | 5 +++--
.../src/designer/route/property/DslPropertyField.tsx | 15 +++++++++++----
.../src/designer/route/useRouteDesignerHook.tsx | 20 +++++++++++++++++++-
.../src/designer/route/property/DslPropertyField.tsx | 12 +++++++++---
5 files changed, 45 insertions(+), 12 deletions(-)
diff --git a/karavan-space/src/designer/route/element/DslElementHeader.tsx b/karavan-space/src/designer/route/element/DslElementHeader.tsx
index d201d105..c850e514 100644
--- a/karavan-space/src/designer/route/element/DslElementHeader.tsx
+++ b/karavan-space/src/designer/route/element/DslElementHeader.tsx
@@ -147,8 +147,9 @@ export function DslElementHeader(props: Props) {
classes.push(isElementSelected() ? 'header-bottom-selected' : 'header-bottom-not-selected')
} else if (step.dslName === 'RouteConfigurationDefinition') {
classes.push('header-route')
- if (hasElements(step)) classes.push('header-bottom-line')
- classes.push(isElementSelected() ? 'header-bottom-selected' : 'header-bottom-not-selected')
+ if (hasElements(step)) {
+ classes.push(isElementSelected() ? 'header-bottom-selected' : 'header-bottom-not-selected')
+ }
} else {
classes.push('header')
}
diff --git a/karavan-space/src/designer/route/property/ComponentParameterField.tsx b/karavan-space/src/designer/route/property/ComponentParameterField.tsx
index f80c3e75..49eb2f6a 100644
--- a/karavan-space/src/designer/route/property/ComponentParameterField.tsx
+++ b/karavan-space/src/designer/route/property/ComponentParameterField.tsx
@@ -297,13 +297,14 @@ export function ComponentParameterField(props: Props) {
}
function getSwitch(property: ComponentProperty, value: any) {
+ const isChecked = value !== undefined ? Boolean(value) : (property.defaultValue !== undefined && ['true', true].includes(property.defaultValue))
return (
<Switch
id={id} name={id}
value={value?.toString()}
aria-label={id}
- isChecked={value !== undefined ? Boolean(value) : property.defaultValue !== undefined && property.defaultValue === 'true'}
- onChange={e => parametersChanged(property.name, !Boolean(value))}/>
+ isChecked={isChecked}
+ onChange={(e, checked) => parametersChanged(property.name, checked)}/>
)
}
diff --git a/karavan-space/src/designer/route/property/DslPropertyField.tsx b/karavan-space/src/designer/route/property/DslPropertyField.tsx
index 77974d13..f72db408 100644
--- a/karavan-space/src/designer/route/property/DslPropertyField.tsx
+++ b/karavan-space/src/designer/route/property/DslPropertyField.tsx
@@ -171,7 +171,8 @@ export function DslPropertyField(props: Props) {
function isUriReadOnly(property: PropertyMeta): boolean {
const dslName: string = props.element?.dslName || '';
- return property.name === 'uri' && !['ToDynamicDefinition', 'WireTapDefinition', 'InterceptFromDefinition'].includes(dslName)
+ return property.name === 'uri'
+ && !['ToDynamicDefinition', 'WireTapDefinition', 'InterceptFromDefinition', 'InterceptSendToEndpointDefinition'].includes(dslName)
}
function selectInfrastructure(value: string) {
@@ -528,7 +529,6 @@ export function DslPropertyField(props: Props) {
}
function getInternalUriSelect(property: PropertyMeta, value: any) {
- console.log("getInternalUriSelect", property, value)
const selectOptions: JSX.Element[] = [];
const urls = CamelUi.getInternalRouteUris(integration, "direct");
urls.push(...CamelUi.getInternalRouteUris(integration, "seda"));
@@ -590,7 +590,8 @@ export function DslPropertyField(props: Props) {
function getMultiObjectFieldProps(property: PropertyMeta, value: any, v: any, index: number, hideLabel: boolean = false) {
return (<>
<div className="object">
- {value && <ObjectField property={property}
+ {v && <ObjectField property={property}
+ value={v}
hideLabel={hideLabel}
onPropertyUpdate={(f, v) => onMultiValueObjectUpdate(index, f, v)}
/>}
@@ -618,7 +619,13 @@ export function DslPropertyField(props: Props) {
</Card>
})}
<Button variant="link" className="add-button"
- onClick={e => propertyChanged(property.name, [...value, CamelDefinitionApi.createStep(property.type, {})])}><AddIcon/>{"Add " + property.displayName}
+ onClick={e => {
+ const valArray = value !== null ? [...value] : [];
+ valArray.push(CamelDefinitionApi.createStep(property.type, {}));
+ propertyChanged(property.name, valArray);
+ }}>
+ <AddIcon/>
+ {"Add " + property.displayName}
</Button>
</div>
)
diff --git a/karavan-space/src/designer/route/useRouteDesignerHook.tsx b/karavan-space/src/designer/route/useRouteDesignerHook.tsx
index 1457adba..51b97e20 100644
--- a/karavan-space/src/designer/route/useRouteDesignerHook.tsx
+++ b/karavan-space/src/designer/route/useRouteDesignerHook.tsx
@@ -18,7 +18,14 @@ import React from 'react';
import '../karavan.css';
import {DslMetaModel} from "../utils/DslMetaModel";
import {CamelUtil} from "karavan-core/lib/api/CamelUtil";
-import {ChoiceDefinition, FromDefinition, LogDefinition, RouteConfigurationDefinition, RouteDefinition} from "karavan-core/lib/model/CamelDefinition";
+import {
+ ChoiceDefinition,
+ FromDefinition, JsonDataFormat,
+ LogDefinition,
+ MarshalDefinition,
+ RouteConfigurationDefinition,
+ RouteDefinition, UnmarshalDefinition
+} from "karavan-core/lib/model/CamelDefinition";
import {CamelElement, MetadataLabels} from "karavan-core/lib/model/IntegrationDefinition";
import {CamelDefinitionApiExt} from "karavan-core/lib/api/CamelDefinitionApiExt";
import {CamelDefinitionApi} from "karavan-core/lib/api/CamelDefinitionApi";
@@ -247,6 +254,7 @@ export function useRouteDesignerHook () {
default:
const step = CamelDefinitionApi.createStep(dsl.dsl, undefined);
const augmentedStep = setDslDefaults(step);
+ console.log(step, augmentedStep)
addStep(augmentedStep, parentId, position)
break;
}
@@ -261,6 +269,16 @@ export function useRouteDesignerHook () {
(step as ChoiceDefinition).when?.push(CamelDefinitionApi.createStep('WhenDefinition', undefined));
(step as ChoiceDefinition).otherwise = CamelDefinitionApi.createStep('OtherwiseDefinition', undefined);
}
+ if (step.dslName === 'MarshalDefinition') {
+ if (CamelDefinitionApiExt.getDataFormat(step) === undefined) {
+ (step as MarshalDefinition).json = new JsonDataFormat()
+ }
+ }
+ if (step.dslName === 'UnmarshalDefinition') {
+ if (CamelDefinitionApiExt.getDataFormat(step) === undefined) {
+ (step as UnmarshalDefinition).json = new JsonDataFormat()
+ }
+ }
return step;
}
diff --git a/karavan-web/karavan-app/src/main/webui/src/designer/route/property/DslPropertyField.tsx b/karavan-web/karavan-app/src/main/webui/src/designer/route/property/DslPropertyField.tsx
index a7feb03c..f72db408 100644
--- a/karavan-web/karavan-app/src/main/webui/src/designer/route/property/DslPropertyField.tsx
+++ b/karavan-web/karavan-app/src/main/webui/src/designer/route/property/DslPropertyField.tsx
@@ -529,7 +529,6 @@ export function DslPropertyField(props: Props) {
}
function getInternalUriSelect(property: PropertyMeta, value: any) {
- console.log("getInternalUriSelect", property, value)
const selectOptions: JSX.Element[] = [];
const urls = CamelUi.getInternalRouteUris(integration, "direct");
urls.push(...CamelUi.getInternalRouteUris(integration, "seda"));
@@ -591,7 +590,8 @@ export function DslPropertyField(props: Props) {
function getMultiObjectFieldProps(property: PropertyMeta, value: any, v: any, index: number, hideLabel: boolean = false) {
return (<>
<div className="object">
- {value && <ObjectField property={property}
+ {v && <ObjectField property={property}
+ value={v}
hideLabel={hideLabel}
onPropertyUpdate={(f, v) => onMultiValueObjectUpdate(index, f, v)}
/>}
@@ -619,7 +619,13 @@ export function DslPropertyField(props: Props) {
</Card>
})}
<Button variant="link" className="add-button"
- onClick={e => propertyChanged(property.name, [...value, CamelDefinitionApi.createStep(property.type, {})])}><AddIcon/>{"Add " + property.displayName}
+ onClick={e => {
+ const valArray = value !== null ? [...value] : [];
+ valArray.push(CamelDefinitionApi.createStep(property.type, {}));
+ propertyChanged(property.name, valArray);
+ }}>
+ <AddIcon/>
+ {"Add " + property.displayName}
</Button>
</div>
)