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