diff --git a/virtweb_frontend/src/widgets/forms/CloudInitEditor.tsx b/virtweb_frontend/src/widgets/forms/CloudInitEditor.tsx
index 82f2f88..3f654bc 100644
--- a/virtweb_frontend/src/widgets/forms/CloudInitEditor.tsx
+++ b/virtweb_frontend/src/widgets/forms/CloudInitEditor.tsx
@@ -1,8 +1,10 @@
import Editor from "@monaco-editor/react";
+import BookIcon from "@mui/icons-material/Book";
import RefreshIcon from "@mui/icons-material/Refresh";
import { Grid, IconButton, InputAdornment, Tooltip } from "@mui/material";
import { v4 as uuidv4 } from "uuid";
import { VMInfo } from "../../api/VMApi";
+import { RouterLink } from "../RouterLink";
import { CheckboxInput } from "./CheckboxInput";
import { EditSection } from "./EditSection";
import { SelectInput } from "./SelectInput";
@@ -38,6 +40,10 @@ export function CloudInitEditor(p: CloudInitProps): React.ReactElement {
{...p}
editable={p.editable && p.vm.cloud_init.attach_config}
/>
+
>
);
@@ -108,7 +114,21 @@ function CloudInitMetadata(p: CloudInitProps): React.ReactElement {
function CloudInitRawUserData(p: CloudInitProps): React.ReactElement {
return (
-
+
+
+
+
+
+
+
+ }
+ >
);
}
+
+function CloudInitNetworkConfig(p: CloudInitProps): React.ReactElement {
+ if (!p.editable && !p.vm.cloud_init.network_configuration) return <>>;
+ return (
+
+
+
+
+
+
+
+ }
+ >
+ {
+ if (v && v !== "") p.vm.cloud_init.network_configuration = v;
+ else p.vm.cloud_init.network_configuration = undefined;
+ p.onChange?.();
+ }}
+ />
+
+ );
+}
diff --git a/virtweb_frontend/src/widgets/forms/EditSection.tsx b/virtweb_frontend/src/widgets/forms/EditSection.tsx
index 8974b3f..01a95a4 100644
--- a/virtweb_frontend/src/widgets/forms/EditSection.tsx
+++ b/virtweb_frontend/src/widgets/forms/EditSection.tsx
@@ -19,13 +19,10 @@ export function EditSection(
display: "flex",
justifyContent: "space-between",
alignItems: "center",
+ marginBottom: "15px",
}}
>
- {p.title && (
-
- {p.title}
-
- )}
+ {p.title && {p.title}}
{p.actions}
)}