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/06/14 17:27:34 UTC
[camel-karavan] branch main updated: Saas fix4 (#368)
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 99a8616 Saas fix4 (#368)
99a8616 is described below
commit 99a8616db947c70e5f23565ea73e37e5357efd57
Author: Marat Gubaidullin <ma...@gmail.com>
AuthorDate: Tue Jun 14 13:27:29 2022 -0400
Saas fix4 (#368)
* Readonly properties
* Improvements
---
.../org/apache/camel/karavan/model/Project.java | 4 ++--
.../camel/karavan/service/InfinispanService.java | 3 +++
karavan-app/src/main/webapp/src/Main.tsx | 2 +-
.../main/webapp/src/builder/PropertiesTable.tsx | 18 +++++++--------
karavan-app/src/main/webapp/src/index.css | 8 +++++++
.../src/main/webapp/src/projects/ProjectsPage.tsx | 4 +---
karavan-designer/src/builder/PropertiesTable.tsx | 26 ++++++++++++----------
karavan-docker/Dockerfile | 1 -
8 files changed, 38 insertions(+), 28 deletions(-)
diff --git a/karavan-app/src/main/java/org/apache/camel/karavan/model/Project.java b/karavan-app/src/main/java/org/apache/camel/karavan/model/Project.java
index 97d77fd..6a13009 100644
--- a/karavan-app/src/main/java/org/apache/camel/karavan/model/Project.java
+++ b/karavan-app/src/main/java/org/apache/camel/karavan/model/Project.java
@@ -46,12 +46,12 @@ public class Project {
this.runtime = runtime;
}
- private String toFolder(String artifactId, String version){
+ public static String toFolder(String artifactId, String version){
String folder = (artifactId+version).replaceAll("[^A-Za-z0-9 ]", "_");
return CaseFormat.UPPER_UNDERSCORE.to(CaseFormat.LOWER_CAMEL, folder);
}
- private String toKey(String groupId, String artifactId, String version){
+ public static String toKey(String groupId, String artifactId, String version){
return groupId + ":" + artifactId + ":" + version;
}
diff --git a/karavan-app/src/main/java/org/apache/camel/karavan/service/InfinispanService.java b/karavan-app/src/main/java/org/apache/camel/karavan/service/InfinispanService.java
index b90fbca..a6f5e1c 100644
--- a/karavan-app/src/main/java/org/apache/camel/karavan/service/InfinispanService.java
+++ b/karavan-app/src/main/java/org/apache/camel/karavan/service/InfinispanService.java
@@ -107,6 +107,9 @@ public class InfinispanService {
public void saveProject(Project project) {
GroupedKey key = GroupedKey.create(project.getKey(), project.getKey());
boolean isNew = !projects.containsKey(key);
+ if (project.getFolder() == null || project.getFolder().trim().length() == 0) {
+ project.setFolder(Project.toFolder(project.getArtifactId(), project.getVersion()));
+ }
projects.put(key, project);
if (isNew){
String filename = "application.properties";
diff --git a/karavan-app/src/main/webapp/src/Main.tsx b/karavan-app/src/main/webapp/src/Main.tsx
index 3e306e2..edc2b16 100644
--- a/karavan-app/src/main/webapp/src/Main.tsx
+++ b/karavan-app/src/main/webapp/src/Main.tsx
@@ -136,7 +136,7 @@ export class Main extends React.Component<Props, State> {
]
return (<Flex className="nav-buttons" direction={{default: "column"}} style={{height:"100%"}} spaceItems={{default:"spaceItemsNone"}}>
<FlexItem alignSelf={{default:"alignSelfCenter"}}>
- <Tooltip content={"Apache Camel Karavan " + this.state.config.version} position={"right"}>
+ <Tooltip className="logo-tooltip" content={"Apache Camel Karavan " + this.state.config.version} position={"right"}>
{Icon()}
</Tooltip>
</FlexItem>
diff --git a/karavan-app/src/main/webapp/src/builder/PropertiesTable.tsx b/karavan-app/src/main/webapp/src/builder/PropertiesTable.tsx
index ab05991..27d5a88 100644
--- a/karavan-app/src/main/webapp/src/builder/PropertiesTable.tsx
+++ b/karavan-app/src/main/webapp/src/builder/PropertiesTable.tsx
@@ -102,15 +102,15 @@ export class PropertiesTable extends React.Component<Props, State> {
{properties.map((property, idx: number) => {
const readOnly = ["camel.jbang.gav", "camel.jbang.runtime"].includes(property.key);
return (
- <Tr key={property.id}>
- <Td noPadding width={20} dataLabel="key">{this.getTextInputField(property, "key", readOnly)}</Td>
- <Td noPadding width={10} dataLabel="value">{this.getTextInputField(property, "value", readOnly)}</Td>
- <Td noPadding isActionCell dataLabel="delete">
- {!readOnly && <Button variant={"plain"} icon={<DeleteIcon/>} className={"delete-button"}
- onClick={event => this.startDelete(property.id)}/>}
- </Td>
- </Tr>
- )})}
+ <Tr key={property.id}>
+ <Td noPadding width={20} dataLabel="key">{this.getTextInputField(property, "key", readOnly)}</Td>
+ <Td noPadding width={10} dataLabel="value">{this.getTextInputField(property, "value", readOnly)}</Td>
+ <Td noPadding isActionCell dataLabel="delete">
+ {!readOnly && <Button variant={"plain"} icon={<DeleteIcon/>} className={"delete-button"}
+ onClick={event => this.startDelete(property.id)}/>}
+ </Td>
+ </Tr>
+ )})}
</Tbody>
</TableComposable>}
<Panel>
diff --git a/karavan-app/src/main/webapp/src/index.css b/karavan-app/src/main/webapp/src/index.css
index 15db8ba..b2a580b 100644
--- a/karavan-app/src/main/webapp/src/index.css
+++ b/karavan-app/src/main/webapp/src/index.css
@@ -104,6 +104,14 @@
padding: 0;
}
+.karavan .runtime-badge {
+ width: 75px;
+}
+
.create-file-form .pf-c-form__group {
grid-template-columns: 80px 1fr !important;
+}
+
+.logo-tooltip {
+ margin-left: 16px;
}
\ No newline at end of file
diff --git a/karavan-app/src/main/webapp/src/projects/ProjectsPage.tsx b/karavan-app/src/main/webapp/src/projects/ProjectsPage.tsx
index 66f2a93..c1bc9c3 100644
--- a/karavan-app/src/main/webapp/src/projects/ProjectsPage.tsx
+++ b/karavan-app/src/main/webapp/src/projects/ProjectsPage.tsx
@@ -183,9 +183,7 @@ export class ProjectsPage extends React.Component<Props, State> {
{projects.map(project => (
<Tr key={project.artifactId}>
<Td modifier={"fitContent"}>
- <Tooltip content={project.runtime} position={"left"}>
- <Badge>{project.runtime.charAt(0)}</Badge>
- </Tooltip>
+ <Badge className="runtime-badge">{project.runtime}</Badge>
</Td>
<Td>{project.groupId}</Td>
<Td>
diff --git a/karavan-designer/src/builder/PropertiesTable.tsx b/karavan-designer/src/builder/PropertiesTable.tsx
index 9ea6569..27d5a88 100644
--- a/karavan-designer/src/builder/PropertiesTable.tsx
+++ b/karavan-designer/src/builder/PropertiesTable.tsx
@@ -78,8 +78,8 @@ export class PropertiesTable extends React.Component<Props, State> {
</Modal>)
}
- getTextInputField(property: ProjectProperty, field: "key" | "value") {
- return (<TextInput isRequired={true} className="text-field" type={"text"} id={"key"} name={"key"}
+ getTextInputField(property: ProjectProperty, field: "key" | "value", readOnly: boolean) {
+ return (<TextInput isDisabled={readOnly} isRequired={true} className="text-field" type={"text"} id={"key"} name={"key"}
value={field === "key" ? property.key : property.value}
onChange={val => this.changeProperty(property, field, val)}/>)
}
@@ -99,16 +99,18 @@ export class PropertiesTable extends React.Component<Props, State> {
</Tr>
</Thead>
<Tbody>
- {properties.map((property, idx: number) => (
- <Tr key={property.id}>
- <Td noPadding width={20} dataLabel="key">{this.getTextInputField(property, "key")}</Td>
- <Td noPadding width={10} dataLabel="value">{this.getTextInputField(property, "value")}</Td>
- <Td noPadding isActionCell dataLabel="delete">
- <Button variant={"plain"} icon={<DeleteIcon/>} className={"delete-button"}
- onClick={event => this.startDelete(property.id)}/>
- </Td>
- </Tr>
- ))}
+ {properties.map((property, idx: number) => {
+ const readOnly = ["camel.jbang.gav", "camel.jbang.runtime"].includes(property.key);
+ return (
+ <Tr key={property.id}>
+ <Td noPadding width={20} dataLabel="key">{this.getTextInputField(property, "key", readOnly)}</Td>
+ <Td noPadding width={10} dataLabel="value">{this.getTextInputField(property, "value", readOnly)}</Td>
+ <Td noPadding isActionCell dataLabel="delete">
+ {!readOnly && <Button variant={"plain"} icon={<DeleteIcon/>} className={"delete-button"}
+ onClick={event => this.startDelete(property.id)}/>}
+ </Td>
+ </Tr>
+ )})}
</Tbody>
</TableComposable>}
<Panel>
diff --git a/karavan-docker/Dockerfile b/karavan-docker/Dockerfile
index 912a86c..ff7357c 100644
--- a/karavan-docker/Dockerfile
+++ b/karavan-docker/Dockerfile
@@ -18,6 +18,5 @@ ENV JBANG_DIR="/jbang/.jbang"
RUN jbang trust add -o --fresh --quiet https://github.com/apache/camel/blob/HEAD/dsl/camel-jbang/camel-jbang-main/dist/CamelJBang.java && \
jbang -Dcamel.jbang.version=3.18.0-SNAPSHOT camel@apache/camel --version
-
WORKDIR /ws
ENTRYPOINT ["/jbang-0.95.0/bin/jbang"]
\ No newline at end of file