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/10/18 16:16:14 UTC

[camel-karavan] branch main updated: Fix #942

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;