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 <[email protected]> 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"
