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 2022/11/28 17:35:57 UTC
[camel-karavan] 01/10: Project type filter for projects types
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 45df9b7e1d9c88fac1167efa71aab4a98f70c922
Author: Marat Gubaidullin <ma...@gmail.com>
AuthorDate: Sat Nov 19 12:31:49 2022 -0500
Project type filter for projects types
---
.../src/main/webui/src/projects/CreateFileModal.tsx | 7 +++++--
karavan-app/src/main/webui/src/projects/ProjectPage.tsx | 15 ++++++++++++++-
2 files changed, 19 insertions(+), 3 deletions(-)
diff --git a/karavan-app/src/main/webui/src/projects/CreateFileModal.tsx b/karavan-app/src/main/webui/src/projects/CreateFileModal.tsx
index e2143f3..47d7cda 100644
--- a/karavan-app/src/main/webui/src/projects/CreateFileModal.tsx
+++ b/karavan-app/src/main/webui/src/projects/CreateFileModal.tsx
@@ -17,7 +17,8 @@ import {CamelDefinitionYaml} from "karavan-core/lib/api/CamelDefinitionYaml";
interface Props {
isOpen: boolean,
project: Project,
- onClose: any
+ onClose: any,
+ types: string[]
}
interface State {
@@ -59,6 +60,7 @@ export class CreateFileModal extends React.Component<Props, State> {
render() {
const {fileType} = this.state;
+ const {types} = this.props;
const extension = ProjectFileTypes.filter(value => value.name === fileType)[0].extension;
const filename = (extension !== 'java')
? CamelUi.nameFromTitle(this.state.name)
@@ -77,7 +79,8 @@ export class CreateFileModal extends React.Component<Props, State> {
<Form autoComplete="off" isHorizontal className="create-file-form">
<FormGroup label="Type" fieldId="type" isRequired>
<ToggleGroup aria-label="Type" isCompact>
- {ProjectFileTypes.filter(p => !['PROPERTIES', 'LOG'].includes(p.name)).map(p => {
+ {ProjectFileTypes.filter(p => types.includes(p.name))
+ .map(p => {
const title = p.title + ' (' + p.extension + ')';
return <ToggleGroupItem key={title} text={title} buttonId={p.name}
isSelected={fileType === p.name}
diff --git a/karavan-app/src/main/webui/src/projects/ProjectPage.tsx b/karavan-app/src/main/webui/src/projects/ProjectPage.tsx
index 8b71766..f19e053 100644
--- a/karavan-app/src/main/webui/src/projects/ProjectPage.tsx
+++ b/karavan-app/src/main/webui/src/projects/ProjectPage.tsx
@@ -104,6 +104,14 @@ export class ProjectPage extends React.Component<Props, State> {
return ['kamelets', 'templates'].includes(this.props.project.projectId);
}
+ isKameletsProject():boolean {
+ return this.props.project.projectId === 'kamelets';
+ }
+
+ isTemplatesProject():boolean {
+ return this.props.project.projectId === 'templates';
+ }
+
post = (file: ProjectFile) => {
KaravanApi.postProjectFile(file, res => {
if (res.status === 200) {
@@ -402,6 +410,9 @@ export class ProjectPage extends React.Component<Props, State> {
render() {
const {file, isDeleteModalOpen, fileToDelete, isUploadModalOpen, isCreateModalOpen} = this.state;
const {project} = this.props;
+ const types = this.isBuildIn()
+ ? (this.isKameletsProject() ? ['KAMELET'] : ['JAVA'])
+ : ProjectFileTypes.filter(p => !['PROPERTIES', 'LOG', 'KAMELET'].includes(p.name)).map(p => p.name);
return (
<PageSection className="kamelet-section project-page" padding={{default: 'noPadding'}}>
<PageSection className="tools-section" padding={{default: 'noPadding'}}>
@@ -410,7 +421,9 @@ export class ProjectPage extends React.Component<Props, State> {
{file === undefined && this.getProjectPanel()}
{file !== undefined && this.getFilePanel()}
- <CreateFileModal project={project} isOpen={isCreateModalOpen}
+ <CreateFileModal project={project}
+ isOpen={isCreateModalOpen}
+ types={types}
onClose={this.closeModal}/>
<Modal
title="Confirmation"