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 53e30a09 Fix #942 53e30a09 is described below commit 53e30a09de5582aa827d8ad43fcaa5a0a618dd3f Author: Marat Gubaidullin <ma...@talismancloud.io> AuthorDate: Wed Oct 18 12:16:05 2023 -0400 Fix #942 --- karavan-core/src/core/api/CamelUtil.ts | 4 +++- karavan-core/test/checkRequired.spec.ts | 14 +++++++++++++- karavan-designer/src/designer/route/usePropertiesHook.tsx | 4 +++- karavan-vscode/webview/index.css | 6 +++++- .../main/webui/src/designer/route/usePropertiesHook.tsx | 4 +++- 5 files changed, 27 insertions(+), 5 deletions(-) diff --git a/karavan-core/src/core/api/CamelUtil.ts b/karavan-core/src/core/api/CamelUtil.ts index 65579d59..7178150f 100644 --- a/karavan-core/src/core/api/CamelUtil.ts +++ b/karavan-core/src/core/api/CamelUtil.ts @@ -252,7 +252,9 @@ export class CamelUtil { result[0] = allSet; } } - + if (result[1] && result[1].length > 0) { + result[0] = false; + } return result; }; diff --git a/karavan-core/test/checkRequired.spec.ts b/karavan-core/test/checkRequired.spec.ts index cdd7cb67..8c80af9e 100644 --- a/karavan-core/test/checkRequired.spec.ts +++ b/karavan-core/test/checkRequired.spec.ts @@ -21,15 +21,27 @@ import { } from "../src/core/model/CamelDefinition"; import {CamelDefinitionApi} from "../src/core/api/CamelDefinitionApi"; import {CamelUtil} from "../src/core/api/CamelUtil"; +import { SetHeaderDefinition } from '../lib/model/CamelDefinition'; describe('Check required properties', () => { - it('Check DSL', () => { + it('Check Log DSL', () => { const log: LogDefinition = CamelDefinitionApi.createLogDefinition({}); expect(CamelUtil.checkRequired(log)[0]).to.equal(false); log.message = '${body}' expect(CamelUtil.checkRequired(log)[0]).to.equal(true); + }); + + it('Check SetHeader DSL', () => { + const setHeader: SetHeaderDefinition = CamelDefinitionApi.createSetHeaderDefinition({}); + setHeader.expression = new ExpressionDefinition({simple: new SimpleExpression({expression: '${body}'})}) + const check = CamelUtil.checkRequired(setHeader); + expect(check[0]).to.equal(false); + setHeader.name = 'header1' + expect(CamelUtil.checkRequired(setHeader)[0]).to.equal(true); + }); + it('Check Split DSL', () => { const split: SplitDefinition = CamelDefinitionApi.createSplitDefinition({}); expect(CamelUtil.checkRequired(split)[0]).to.equal(false); split.expression = new ExpressionDefinition({simple: new SimpleExpression()}) diff --git a/karavan-designer/src/designer/route/usePropertiesHook.tsx b/karavan-designer/src/designer/route/usePropertiesHook.tsx index eba82bf2..87513b18 100644 --- a/karavan-designer/src/designer/route/usePropertiesHook.tsx +++ b/karavan-designer/src/designer/route/usePropertiesHook.tsx @@ -75,6 +75,7 @@ export function usePropertiesHook (isRouteDesigner: boolean = true) { } function onPropertyChange (fieldId: string, value: string | number | boolean | any, newRoute?: RouteToCreate){ + value = value === '' ? undefined : value; if (selectedStep) { const clone = CamelUtil.cloneStep(selectedStep); (clone as any)[fieldId] = value; @@ -99,7 +100,8 @@ export function usePropertiesHook (isRouteDesigner: boolean = true) { } function onParametersChange (parameter: string, value: string | number | boolean | any, pathParameter?: boolean, newRoute?: RouteToCreate) { - if (selectedStep && selectedStep) { + value = value === '' ? undefined : value; + if (selectedStep) { const clone = (CamelUtil.cloneStep(selectedStep)); const parameters: any = {...(clone as any).parameters}; parameters[parameter] = value; diff --git a/karavan-vscode/webview/index.css b/karavan-vscode/webview/index.css index 163b2573..983a7461 100644 --- a/karavan-vscode/webview/index.css +++ b/karavan-vscode/webview/index.css @@ -168,11 +168,15 @@ body, :root, #root, .karavan { border-color: var(--pf-v5-global--Color--200); } -.vscode-dark .step-element .header .text-bottom { +.vscode-dark .karavan .step-element .header .text-bottom { background-color: rgb(var(--vscode-editor-background), 0.5); color: var(--vscode-editor-foreground); } +.vscode-dark .karavan .step-element .header .header-text-required { + color: var(--pf-v5-global--danger-color--100); +} + .vscode-dark .karavan .step-element .add-button { color: var(--vscode-focusBorder); } diff --git a/karavan-web/karavan-app/src/main/webui/src/designer/route/usePropertiesHook.tsx b/karavan-web/karavan-app/src/main/webui/src/designer/route/usePropertiesHook.tsx index eba82bf2..87513b18 100644 --- a/karavan-web/karavan-app/src/main/webui/src/designer/route/usePropertiesHook.tsx +++ b/karavan-web/karavan-app/src/main/webui/src/designer/route/usePropertiesHook.tsx @@ -75,6 +75,7 @@ export function usePropertiesHook (isRouteDesigner: boolean = true) { } function onPropertyChange (fieldId: string, value: string | number | boolean | any, newRoute?: RouteToCreate){ + value = value === '' ? undefined : value; if (selectedStep) { const clone = CamelUtil.cloneStep(selectedStep); (clone as any)[fieldId] = value; @@ -99,7 +100,8 @@ export function usePropertiesHook (isRouteDesigner: boolean = true) { } function onParametersChange (parameter: string, value: string | number | boolean | any, pathParameter?: boolean, newRoute?: RouteToCreate) { - if (selectedStep && selectedStep) { + value = value === '' ? undefined : value; + if (selectedStep) { const clone = (CamelUtil.cloneStep(selectedStep)); const parameters: any = {...(clone as any).parameters}; parameters[parameter] = value;