From 693f24763f674fe3b5e634118bc2e6ae26f4b481 Mon Sep 17 00:00:00 2001 From: mbecker20 Date: Sat, 1 Jun 2024 20:33:38 -0700 Subject: [PATCH] new deployment / repo from server page --- .../src/components/resources/build/config.tsx | 1 + .../src/components/resources/build/index.tsx | 49 +++++++------------ frontend/src/components/resources/common.tsx | 23 +++++++-- .../components/resources/deployment/index.tsx | 4 +- .../components/resources/deployment/log.tsx | 4 +- .../src/components/resources/repo/index.tsx | 2 +- .../src/components/resources/server/index.tsx | 11 ++++- frontend/src/lib/hooks.ts | 24 ++++++++- frontend/src/pages/home/tree.tsx | 3 +- frontend/src/types.d.ts | 2 +- 10 files changed, 80 insertions(+), 43 deletions(-) diff --git a/frontend/src/components/resources/build/config.tsx b/frontend/src/components/resources/build/config.tsx index b1b7817e3..d5cc2fc81 100644 --- a/frontend/src/components/resources/build/config.tsx +++ b/frontend/src/components/resources/build/config.tsx @@ -105,6 +105,7 @@ export const BuildConfig = ({ selected={id} onSelect={(builder_id) => set({ builder_id })} disabled={disabled} + align="end" /> ), diff --git a/frontend/src/components/resources/build/index.tsx b/frontend/src/components/resources/build/index.tsx index 3cb3715e1..7cde32495 100644 --- a/frontend/src/components/resources/build/index.tsx +++ b/frontend/src/components/resources/build/index.tsx @@ -17,6 +17,7 @@ import { Card, CardHeader } from "@ui/card"; import { cn } from "@lib/utils"; import { useState } from "react"; import { Tabs, TabsContent, TabsList, TabsTrigger } from "@ui/tabs"; +import { ResourceComponents } from ".."; const useBuild = (id?: string) => useRead("ListBuilds", {}).data?.find((d) => d.id === id); @@ -33,6 +34,20 @@ const ConfigOrDeployments = ({ id }: { id: string }) => { (deployment) => deployment.info.build_id === id ); const deploymentsDisabled = (deployments?.length || 0) === 0; + const titleOther = ( + + + Config + + + Deployments + + + ); return ( { className="grid gap-4" > - - - Config - - - Deployments - - - } - /> +
- - Config - - - Deployments - - - } + titleOther={titleOther} + actions={} >
diff --git a/frontend/src/components/resources/common.tsx b/frontend/src/components/resources/common.tsx index 8d42e96e1..54be821db 100644 --- a/frontend/src/components/resources/common.tsx +++ b/frontend/src/components/resources/common.tsx @@ -108,7 +108,7 @@ export const ResourceSelector = ({ {!disabled && } - + { +export const NewResource = ({ + type, + server_id, + build_id, +}: { + type: UsableResource; + server_id?: string; + build_id?: string; +}) => { const nav = useNavigate(); const { mutateAsync } = useWrite(`Create${type}`); const [name, setName] = useState(""); const type_display = type === "ServerTemplate" ? "server-template" : type.toLowerCase(); + const config = + type === "Deployment" + ? { + server_id, + image: build_id ?? { type: "Build", params: { build_id } }, + } + : type === "Repo" + ? { server_id } + : {}; return ( { - const id = (await mutateAsync({ name, config: {} }))._id?.$oid!; + const id = (await mutateAsync({ name, config }))._id?.$oid!; nav(`/${usableResourcePath(type)}/${id}`); }} enabled={!!name} diff --git a/frontend/src/components/resources/deployment/index.tsx b/frontend/src/components/resources/deployment/index.tsx index d38f84cb7..9a481c1f7 100644 --- a/frontend/src/components/resources/deployment/index.tsx +++ b/frontend/src/components/resources/deployment/index.tsx @@ -103,7 +103,9 @@ export const DeploymentComponents: RequiredResourceComponents = { Dashboard: DeploymentsChart, - New: () => , + New: ({ server_id, build_id }) => ( + + ), Table: ({ search }) => { const deployments = useRead("ListDeployments", {}).data; diff --git a/frontend/src/components/resources/deployment/log.tsx b/frontend/src/components/resources/deployment/log.tsx index 1665a8c5e..53255eed0 100644 --- a/frontend/src/components/resources/deployment/log.tsx +++ b/frontend/src/components/resources/deployment/log.tsx @@ -174,12 +174,12 @@ const Log = ({ useEffect(scroll, [_log]); return ( <> -
+