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 41052268 blocklists in configuration folder
41052268 is described below

commit 4105226861aca50d06da4c25cd1b319308b035b9
Author: Marat Gubaidullin <[email protected]>
AuthorDate: Mon Jul 15 17:02:39 2024 -0400

    blocklists in configuration folder
---
 karavan-app/src/main/webui/src/api/KaravanApi.tsx  | 12 +++++++++++
 .../src/knowledgebase/components/ComponentCard.tsx | 25 ++++++++++++++--------
 .../main/webui/src/main/KnowledgebaseWrapper.tsx   |  4 ++--
 3 files changed, 30 insertions(+), 11 deletions(-)

diff --git a/karavan-app/src/main/webui/src/api/KaravanApi.tsx 
b/karavan-app/src/main/webui/src/api/KaravanApi.tsx
index cc2b1d6b..6b283473 100644
--- a/karavan-app/src/main/webui/src/api/KaravanApi.tsx
+++ b/karavan-app/src/main/webui/src/api/KaravanApi.tsx
@@ -408,6 +408,18 @@ export class KaravanApi {
         });
     }
 
+    static async getConfigurationFiles(after: (files: []) => void) {
+        instance.get('/ui/file/configuration')
+            .then(res => {
+                if (res.status === 200) {
+                    after(res.data);
+                }
+            }).catch(err => {
+            ErrorEventBus.sendApiError(err);
+        });
+    }
+
+
     static async getTemplatesFiles(after: (files: []) => void) {
         instance.get('/ui/file/templates')
             .then(res => {
diff --git 
a/karavan-app/src/main/webui/src/knowledgebase/components/ComponentCard.tsx 
b/karavan-app/src/main/webui/src/knowledgebase/components/ComponentCard.tsx
index 8794ef1e..c9f39d04 100644
--- a/karavan-app/src/main/webui/src/knowledgebase/components/ComponentCard.tsx
+++ b/karavan-app/src/main/webui/src/knowledgebase/components/ComponentCard.tsx
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-import React, { useEffect, useState } from 'react';
+import React, {useEffect, useState} from 'react';
 import {
     CardHeader, Card, CardTitle, CardBody, CardFooter, Badge, Checkbox, Flex
 } from '@patternfly/react-core';
@@ -23,7 +23,7 @@ import {CamelUi} from "../../designer/utils/CamelUi";
 import {Component} from "karavan-core/lib/model/ComponentModels";
 import {useKnowledgebaseStore} from "../KnowledgebaseStore";
 import {shallow} from "zustand/shallow";
-import { ComponentApi } from 'karavan-core/lib/api/ComponentApi';
+import {ComponentApi} from 'karavan-core/lib/api/ComponentApi';
 
 interface Props {
     component: Component,
@@ -39,32 +39,39 @@ export function ComponentCard(props: Props) {
     useEffect(() => {
         setBlockedComponents(ComponentApi.getBlockedComponentNames());
     }, []);
-    
+
 
     function click(event: React.MouseEvent) {
-        const { target } = event;
+        const {target} = event;
         if (!(target as 
HTMLElement).parentElement?.className.includes("block-checkbox")) {
             setComponent(component)
             setModalOpen(true);
         }
     }
+
     function selectComponent(event: React.FormEvent, checked: boolean) {
         props.onChange(component.component.name, checked);
-         setBlockedComponents([...ComponentApi.getBlockedComponentNames()]);
+        setBlockedComponents([...ComponentApi.getBlockedComponentNames()]);
     }
+
     const isBlockedComponent = blockedComponents ? 
blockedComponents.findIndex(r => r === component.component.name) > -1 : false;
-    const isRemote =  component.component.remote;
+    const isRemote = component.component.remote;
     return (
         <Card isCompact key={component.component.name} className="kamelet-card"
               onClick={event => click(event)}
         >
             <CardHeader className="header-labels">
-                <Flex style={{width:'100%'}} gap={{default:'gapSm'}} 
justifyContent={{default: 'justifyContentSpaceBetween'}}>
+                <Flex style={{width: '100%'}} gap={{default: 'gapSm'}} 
justifyContent={{default: 'justifyContentSpaceBetween'}}>
                     <Badge isRead className="support-level 
labels">{component.component.supportLevel}</Badge>
                     <Badge isRead className="version 
labels">{component.component.version}</Badge>
                 </Flex>
-                {showBlockCheckbox && <Checkbox id={component.component.name} 
className="block-checkbox labels"
-                           isChecked={!isBlockedComponent} onChange={(_, 
checked) => selectComponent(_, checked)}/>}
+                {showBlockCheckbox &&
+                    <Checkbox id={component.component.name}
+                              className="block-checkbox labels"
+                              isChecked={!isBlockedComponent}
+                              onChange={(_, checked) => selectComponent(_, 
checked)}
+                    />
+                }
             </CardHeader>
             <CardHeader>
                 {CamelUi.getIconForComponent(component.component.title, 
component.component.label)}
diff --git a/karavan-app/src/main/webui/src/main/KnowledgebaseWrapper.tsx 
b/karavan-app/src/main/webui/src/main/KnowledgebaseWrapper.tsx
index 59dda14a..8224c2ed 100644
--- a/karavan-app/src/main/webui/src/main/KnowledgebaseWrapper.tsx
+++ b/karavan-app/src/main/webui/src/main/KnowledgebaseWrapper.tsx
@@ -30,13 +30,13 @@ export const KnowledgebaseWrapper = (props: Props) => {
     const [blockList, setBlockList] = useState<ProjectFile[]>();
 
     useEffect(() => {
-        KaravanApi.getTemplatesFiles((files:ProjectFile[]) => {
+        KaravanApi.getConfigurationFiles((files:ProjectFile[]) => {
             setBlockList([...(files.filter(f => 
f.name.endsWith('blocklist.txt')))]);
         });
+        ProjectService.reloadKamelets();
     }, []);
 
     const onChangeBlockedList = async (type: string, name: string, checked: 
boolean) => {
-
         let file: ProjectFile | undefined;
         let fileContent = '';
         if (type === "component") {

Reply via email to