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 49a41295bd64b493c17f96cdcdbbba45d2cbcf50
Author: Marat Gubaidullin <marat.gubaidul...@gmail.com>
AuthorDate: Fri Nov 18 17:33:07 2022 -0500

    Align Look and feel
---
 karavan-app/src/main/webui/src/index.css           |   4 +-
 .../src/main/webui/src/projects/ProjectInfo.tsx    |   2 +-
 .../src/main/webui/src/projects/ProjectModels.ts   |   4 +-
 .../src/main/webui/src/projects/ProjectPage.tsx    | 162 ++++++++++++---------
 4 files changed, 95 insertions(+), 77 deletions(-)

diff --git a/karavan-app/src/main/webui/src/index.css 
b/karavan-app/src/main/webui/src/index.css
index efa6238..c9a66fb 100644
--- a/karavan-app/src/main/webui/src/index.css
+++ b/karavan-app/src/main/webui/src/index.css
@@ -133,8 +133,8 @@
   font-size: 15px;
 }
 
-.karavan .project-page .table {
-  margin-top: 16px;
+.karavan .project-page .project-info {
+  margin-bottom: 16px;
 }
 
 .karavan .project-page .project-button {
diff --git a/karavan-app/src/main/webui/src/projects/ProjectInfo.tsx 
b/karavan-app/src/main/webui/src/projects/ProjectInfo.tsx
index f8525e5..79df4ca 100644
--- a/karavan-app/src/main/webui/src/projects/ProjectInfo.tsx
+++ b/karavan-app/src/main/webui/src/projects/ProjectInfo.tsx
@@ -415,7 +415,7 @@ export class ProjectInfo extends React.Component<Props, 
State> {
 
     render() {
         return (
-            <Card>
+            <Card className="project-info">
                 <CardBody>
                     <Flex direction={{default: "row"}}
                           style={{height: "200px"}}
diff --git a/karavan-app/src/main/webui/src/projects/ProjectModels.ts 
b/karavan-app/src/main/webui/src/projects/ProjectModels.ts
index 6ceb51b..9e8e522 100644
--- a/karavan-app/src/main/webui/src/projects/ProjectModels.ts
+++ b/karavan-app/src/main/webui/src/projects/ProjectModels.ts
@@ -100,7 +100,7 @@ export const ProjectFileTypes: ProjectFileType[] = [
     new ProjectFileType("INTEGRATION", "Integration", "camel.yaml"),
     new ProjectFileType("CODE", "Code", "java"),
     new ProjectFileType("PROPERTIES", "Properties", "properties"),
-    new ProjectFileType("OPENAPI_JSON", "OpenAPI YAML", "json"),
-    new ProjectFileType("OPENAPI_YAML", "OpenAPI JSON", "yaml"),
+    new ProjectFileType("OPENAPI_JSON", "OpenAPI JSON", "json"),
+    new ProjectFileType("OPENAPI_YAML", "OpenAPI YAML", "yaml"),
     new ProjectFileType("LOG", "Log", "log"),
 ];
\ No newline at end of file
diff --git a/karavan-app/src/main/webui/src/projects/ProjectPage.tsx 
b/karavan-app/src/main/webui/src/projects/ProjectPage.tsx
index e1edd56..387d875 100644
--- a/karavan-app/src/main/webui/src/projects/ProjectPage.tsx
+++ b/karavan-app/src/main/webui/src/projects/ProjectPage.tsx
@@ -94,9 +94,7 @@ export class ProjectPage extends React.Component<Props, 
State> {
     onRefresh = () => {
         if (this.props.project) {
             KaravanApi.getProject(this.props.project.projectId, (project: 
Project) => {
-                this.setState({
-                    project: project
-                })
+                this.setState({project: project})
             });
             KaravanApi.getFiles(this.props.project.projectId, (files: []) => {
                 this.setState({files: files})
@@ -154,7 +152,7 @@ export class ProjectPage extends React.Component<Props, 
State> {
 
     addProperty() {
         const file = this.state.file;
-        if (file){
+        if (file) {
             const project = file ? 
ProjectModelApi.propertiesToProject(file?.code) : ProjectModel.createNew();
             const props = project.properties;
             props.push(ProjectProperty.createNew("", ""))
@@ -165,19 +163,19 @@ export class ProjectPage extends React.Component<Props, 
State> {
 
     tools = () => {
         return <ProjectPageToolbar
-                project={this.props.project}
-                file={this.state.file}
-                mode={this.state.mode}
-                isTemplates={this.props.isTemplates}
-                config={this.props.config}
-                addProperty={() => this.addProperty()}
-                download={() => this.download()}
-                downloadImage={() => this.downloadImage()}
-                editAdvancedProperties={this.state.editAdvancedProperties}
-                setEditAdvancedProperties={checked => 
this.setState({editAdvancedProperties: checked})}
-                setMode={mode => this.setState({mode: mode})}
-                setCreateModalOpen={() => this.setState({isCreateModalOpen: 
true})}
-                setUploadModalOpen={() => this.setState({isUploadModalOpen: 
true})}
+            project={this.props.project}
+            file={this.state.file}
+            mode={this.state.mode}
+            isTemplates={this.props.isTemplates}
+            config={this.props.config}
+            addProperty={() => this.addProperty()}
+            download={() => this.download()}
+            downloadImage={() => this.downloadImage()}
+            editAdvancedProperties={this.state.editAdvancedProperties}
+            setEditAdvancedProperties={checked => 
this.setState({editAdvancedProperties: checked})}
+            setMode={mode => this.setState({mode: mode})}
+            setCreateModalOpen={() => this.setState({isCreateModalOpen: true})}
+            setUploadModalOpen={() => this.setState({isUploadModalOpen: true})}
         />
     }
 
@@ -334,12 +332,12 @@ export class ProjectPage extends React.Component<Props, 
State> {
         const filename = name + ".log";
         const code = '';
         this.setState({file: new ProjectFile(filename, 
this.props.project.projectId, code)});
-        if (type === 'pipeline'){
+        if (type === 'pipeline') {
             KaravanApi.getPipelineLog(environment, name, (res: any) => {
                 if (Array.isArray(res) && Array.from(res).length > 0)
                     this.setState({file: new ProjectFile(filename, 
this.props.project.projectId, res.at(0).log)});
             });
-        } else if (type === 'container'){
+        } else if (type === 'container') {
             KaravanApi.getContainerLog(environment, name, (res: any) => {
                 this.setState({file: new ProjectFile(filename, 
this.props.project.projectId, res)});
             });
@@ -349,15 +347,17 @@ export class ProjectPage extends React.Component<Props, 
State> {
 
     deleteEntity = (type: 'pod' | 'deployment', name: string, environment: 
string) => {
         switch (type) {
-            case "deployment": KaravanApi.deleteDeployment(environment, name, 
(res: any) => {
-                if (Array.isArray(res) && Array.from(res).length > 0)
-                    this.onRefresh();
-            });
+            case "deployment":
+                KaravanApi.deleteDeployment(environment, name, (res: any) => {
+                    if (Array.isArray(res) && Array.from(res).length > 0)
+                        this.onRefresh();
+                });
                 break;
-            case "pod": KaravanApi.deletePod(environment, name, (res: any) => {
-                if (Array.isArray(res) && Array.from(res).length > 0)
-                    this.onRefresh();
-            });
+            case "pod":
+                KaravanApi.deletePod(environment, name, (res: any) => {
+                    if (Array.isArray(res) && Array.from(res).length > 0)
+                        this.onRefresh();
+                });
                 break;
         }
     }
@@ -367,22 +367,22 @@ export class ProjectPage extends React.Component<Props, 
State> {
         return (
             <div style={{overflow: "auto"}}>
                 {file !== undefined && file.code.length !== 0 &&
-                    <CodeBlock style={{width:"90%"}}>
+                    <CodeBlock style={{width: "90%"}}>
                         <CodeBlockCode 
id="code-content">{file.code}</CodeBlockCode>
                     </CodeBlock>}
                 {(file === undefined || file.code.length === 0) &&
                     <div>
-                        <Skeleton width="25%" screenreaderText="Loading 
contents" />
-                        <br />
-                        <Skeleton width="33%" />
-                        <br />
-                        <Skeleton width="50%" />
-                        <br />
-                        <Skeleton width="66%" />
-                        <br />
-                        <Skeleton width="75%" />
-                        <br />
-                        <Skeleton />
+                        <Skeleton width="25%" screenreaderText="Loading 
contents"/>
+                        <br/>
+                        <Skeleton width="33%"/>
+                        <br/>
+                        <Skeleton width="50%"/>
+                        <br/>
+                        <Skeleton width="66%"/>
+                        <br/>
+                        <Skeleton width="75%"/>
+                        <br/>
+                        <Skeleton/>
                     </div>}
             </div>
         )
@@ -393,16 +393,44 @@ export class ProjectPage extends React.Component<Props, 
State> {
         return (
             file !== undefined &&
             <PropertiesEditor key={this.state.key}
-                editAdvanced={this.state.editAdvancedProperties}
-                file={file}
-                onSave={(name, code) => this.save(name, code)}
+                              editAdvanced={this.state.editAdvancedProperties}
+                              file={file}
+                              onSave={(name, code) => this.save(name, code)}
             />
         )
     }
 
-    render() {
-        const {isTemplates} = this.props;
-        const {file, mode, tab} = this.state;
+    getTemplatePanel() {
+        return (
+            <PageSection isFilled className="kamelets-page 
project-page-section" padding={{default: 'padding'}}>
+                {this.getProjectFiles()}
+            </PageSection>
+        )
+    }
+
+    getProjectPanel() {
+        const {tab} = this.state;
+        return (
+            <Flex direction={{default: "column"}} spaceItems={{default: 
"spaceItemsNone"}}>
+                <FlexItem className="project-tabs">
+                    <Tabs activeKey={tab} onSelect={(event, tabIndex) => 
this.setState({tab: tabIndex})}>
+                        <Tab eventKey="development" title="Development"/>
+                        <Tab eventKey="operations" title="Operations"/>
+                    </Tabs>
+                </FlexItem>
+                <FlexItem>
+                    <PageSection padding={{default: "padding"}}>
+                        {tab === 'development' && <ProjectInfo 
project={this.props.project} config={this.props.config} 
deleteEntity={this.deleteEntity} showLog={this.showLogs}/>}
+                        {tab === 'development' && this.getProjectFiles()}
+                        {tab === 'operations' && <ProjectOperations 
environments={this.state.environments} project={this.props.project} 
config={this.props.config}/>}
+                    </PageSection>
+                </FlexItem>
+            </Flex>
+        )
+    }
+
+    getFilePanel() {
+        const {file, mode} = this.state;
         const isYaml = file !== undefined && file.name.endsWith("yaml");
         const isIntegration = isYaml && file?.code && 
CamelDefinitionYaml.yamlIsIntegration(file.code);
         const isProperties = file !== undefined && 
file.name.endsWith("properties");
@@ -411,37 +439,27 @@ export class ProjectPage extends React.Component<Props, 
State> {
         const showDesigner = isYaml && isIntegration && mode === 'design';
         const showEditor = isCode || (isYaml && !isIntegration) || (isYaml && 
mode === 'code');
         return (
-            <PageSection className="kamelet-section project-page" 
padding={{default: 'noPadding'}}>
-                <PageSection className="tools-section" padding={{default: 
'noPadding'}}>
-                    <MainToolbar title={this.title()} tools={this.tools()}/>
-                </PageSection>
-                {file === undefined &&
-                    <PageSection isFilled className="kamelets-page 
project-page-section"
-                                 padding={{default: file !== undefined ? 
'noPadding' : 'noPadding'}}>
-                        <Flex direction={{default: "column"}} 
spaceItems={{default: "spaceItemsNone"}}>
-                            {!isTemplates &&
-                                <FlexItem className="project-tabs">
-                                    <Tabs activeKey={tab} onSelect={(event, 
tabIndex) => this.setState({tab: tabIndex})}>
-                                        <Tab eventKey="development" 
title="Development"/>
-                                        <Tab eventKey="operations" 
title="Operations"/>
-                                    </Tabs>
-                                </FlexItem>
-                            }
-                            {!isTemplates &&
-                                <FlexItem>
-                                    <PageSection padding={{default: 
"padding"}}>
-                                        {tab === 'development' && <ProjectInfo 
project={this.props.project} config={this.props.config} 
deleteEntity={this.deleteEntity} showLog={this.showLogs}/>}
-                                        {tab === 'development' && 
this.getProjectFiles()}
-                                        {tab === 'operations' && 
<ProjectOperations environments={this.state.environments} 
project={this.props.project} config={this.props.config}/>}
-                                    </PageSection>
-                                </FlexItem>
-                            }
-                        </Flex>
-                    </PageSection>}
+            <>
                 {showDesigner && this.getDesigner()}
                 {showEditor && this.getEditor()}
                 {isLog && this.getLogView()}
                 {isProperties && this.getPropertiesEditor()}
+            </>
+        )
+    }
+
+    render() {
+        const {isTemplates} = this.props;
+        const {file} = this.state;
+        return (
+            <PageSection className="kamelet-section project-page" 
padding={{default: 'noPadding'}}>
+                <PageSection className="tools-section" padding={{default: 
'noPadding'}}>
+                    <MainToolbar title={this.title()} tools={this.tools()}/>
+                </PageSection>
+                {file === undefined && isTemplates && this.getTemplatePanel()}
+                {file === undefined && !isTemplates && this.getProjectPanel()}
+                {file !== undefined && this.getFilePanel()}
+
                 <CreateFileModal project={this.props.project} 
isOpen={this.state.isCreateModalOpen}
                                  onClose={this.closeModal}/>
                 <Modal

Reply via email to