mirror of
https://github.com/moghtech/komodo.git
synced 2026-04-29 12:43:26 -05:00
pass through disabled
This commit is contained in:
@@ -44,6 +44,7 @@ enum ReadRequest {
|
||||
GetUsername(GetUsername),
|
||||
ListApiKeys(ListApiKeys),
|
||||
ListPermissions(ListPermissions),
|
||||
GetPermissionLevel(GetPermissionLevel),
|
||||
ListUserPermissions(ListUserPermissions),
|
||||
|
||||
// ==== USER GROUP ====
|
||||
|
||||
@@ -17,7 +17,7 @@ export type ReadResponses = {
|
||||
GetUsername: Types.GetUsernameResponse;
|
||||
ListApiKeys: Types.ListApiKeysResponse;
|
||||
ListPermissions: Types.ListPermissionsResponse;
|
||||
GetPermissionLevel: Types.GetPermissionLevel;
|
||||
GetPermissionLevel: Types.GetPermissionLevelResponse;
|
||||
ListUserPermissions: Types.ListUserPermissionsResponse;
|
||||
|
||||
// ==== USER GROUP ====
|
||||
|
||||
@@ -2123,6 +2123,7 @@ export type ReadRequest =
|
||||
| { type: "GetUsername", params: GetUsername }
|
||||
| { type: "ListApiKeys", params: ListApiKeys }
|
||||
| { type: "ListPermissions", params: ListPermissions }
|
||||
| { type: "GetPermissionLevel", params: GetPermissionLevel }
|
||||
| { type: "ListUserPermissions", params: ListUserPermissions }
|
||||
| { type: "GetUserGroup", params: GetUserGroup }
|
||||
| { type: "ListUserGroups", params: ListUserGroups }
|
||||
|
||||
@@ -12,10 +12,12 @@ export const NetworkModeSelector = ({
|
||||
server_id,
|
||||
selected,
|
||||
onSelect,
|
||||
disabled,
|
||||
}: {
|
||||
server_id: string | undefined;
|
||||
selected: string | undefined;
|
||||
onSelect: (type: string) => void;
|
||||
disabled: boolean;
|
||||
}) => {
|
||||
const networks = useRead(
|
||||
"GetDockerNetworks",
|
||||
@@ -25,13 +27,21 @@ export const NetworkModeSelector = ({
|
||||
|
||||
return (
|
||||
<ConfigItem label="Network Mode">
|
||||
<Select value={selected || undefined} onValueChange={onSelect}>
|
||||
<SelectTrigger className="max-w-[150px]">
|
||||
<Select
|
||||
value={selected || undefined}
|
||||
onValueChange={onSelect}
|
||||
disabled={disabled}
|
||||
>
|
||||
<SelectTrigger className="max-w-[150px]" disabled={disabled}>
|
||||
<SelectValue placeholder="Select Type" />
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
{networks?.map((network) => (
|
||||
<SelectItem key={network.Id} value={network.Name ?? ""} className="cursor-pointer">
|
||||
<SelectItem
|
||||
key={network.Id}
|
||||
value={network.Name ?? ""}
|
||||
className="cursor-pointer"
|
||||
>
|
||||
{network.Name}
|
||||
</SelectItem>
|
||||
))}
|
||||
|
||||
@@ -17,9 +17,11 @@ import { useEffect, useState } from "react";
|
||||
export const DefaultTerminationSignal = ({
|
||||
arg,
|
||||
set,
|
||||
disabled,
|
||||
}: {
|
||||
arg?: Types.TerminationSignal;
|
||||
set: (input: Partial<Types.DeploymentConfig>) => void;
|
||||
disabled: boolean;
|
||||
}) => {
|
||||
return (
|
||||
<ConfigItem label="Default Termination Signal">
|
||||
@@ -28,8 +30,9 @@ export const DefaultTerminationSignal = ({
|
||||
onValueChange={(value) =>
|
||||
set({ termination_signal: value as Types.TerminationSignal })
|
||||
}
|
||||
disabled={disabled}
|
||||
>
|
||||
<SelectTrigger className="w-[200px]">
|
||||
<SelectTrigger className="w-[200px]" disabled={disabled}>
|
||||
<SelectValue placeholder="Select Type" />
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
@@ -55,9 +58,11 @@ export const DefaultTerminationSignal = ({
|
||||
export const TerminationTimeout = ({
|
||||
arg,
|
||||
set,
|
||||
disabled,
|
||||
}: {
|
||||
arg: number;
|
||||
set: (input: Partial<Types.DeploymentConfig>) => void;
|
||||
disabled: boolean;
|
||||
}) => {
|
||||
const { toast } = useToast();
|
||||
const [input, setInput] = useState(arg.toString());
|
||||
@@ -81,6 +86,7 @@ export const TerminationTimeout = ({
|
||||
setInput(arg.toString());
|
||||
}
|
||||
}}
|
||||
disabled={disabled}
|
||||
/>
|
||||
seconds
|
||||
</div>
|
||||
@@ -91,9 +97,11 @@ export const TerminationTimeout = ({
|
||||
export const TermSignalLabels = ({
|
||||
args,
|
||||
set,
|
||||
disabled,
|
||||
}: {
|
||||
args: Types.TerminationSignalLabel[];
|
||||
set: (input: Partial<Types.DeploymentConfig>) => void;
|
||||
disabled: boolean;
|
||||
}) => {
|
||||
const signals = Object.values(Types.TerminationSignal)
|
||||
.filter((signal) => args.every((arg) => arg.signal !== signal))
|
||||
@@ -113,6 +121,7 @@ export const TermSignalLabels = ({
|
||||
),
|
||||
})
|
||||
}
|
||||
disabled={disabled}
|
||||
/>
|
||||
|
||||
<Select
|
||||
@@ -126,8 +135,9 @@ export const TermSignalLabels = ({
|
||||
),
|
||||
})
|
||||
}
|
||||
disabled={disabled}
|
||||
>
|
||||
<SelectTrigger className="w-[200px]">
|
||||
<SelectTrigger className="w-[200px]" disabled={disabled}>
|
||||
{label.signal}
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
@@ -145,21 +155,23 @@ export const TermSignalLabels = ({
|
||||
</SelectContent>
|
||||
</Select>
|
||||
|
||||
<Button
|
||||
variant="outline"
|
||||
size="icon"
|
||||
onClick={() =>
|
||||
set({
|
||||
term_signal_labels: args.filter((_, index) => i !== index),
|
||||
})
|
||||
}
|
||||
className="p-2"
|
||||
>
|
||||
<MinusCircle className="w-4 h-4" />
|
||||
</Button>
|
||||
{!disabled && (
|
||||
<Button
|
||||
variant="outline"
|
||||
size="icon"
|
||||
onClick={() =>
|
||||
set({
|
||||
term_signal_labels: args.filter((_, index) => i !== index),
|
||||
})
|
||||
}
|
||||
className="p-2"
|
||||
>
|
||||
<MinusCircle className="w-4 h-4" />
|
||||
</Button>
|
||||
)}
|
||||
</div>
|
||||
))}
|
||||
{signals.length > 0 && (
|
||||
{!disabled && signals.length > 0 && (
|
||||
<Button
|
||||
className="justify-self-end p-2"
|
||||
variant="outline"
|
||||
|
||||
@@ -38,7 +38,9 @@ export const ServerSelector = ({
|
||||
);
|
||||
|
||||
export const DeploymentConfig = ({ id }: { id: string }) => {
|
||||
// const perms = useRead("ListPerm")
|
||||
const perms = useRead("GetPermissionLevel", {
|
||||
target: { type: "Deployment", id },
|
||||
}).data;
|
||||
const config = useRead("GetDeployment", { deployment: id }).data?.config;
|
||||
const [update, set] = useState<Partial<Types.DeploymentConfig>>({});
|
||||
const { mutate } = useWrite("UpdateDeployment");
|
||||
@@ -51,8 +53,11 @@ export const DeploymentConfig = ({ id }: { id: string }) => {
|
||||
? config.network !== "host"
|
||||
: false;
|
||||
|
||||
const disabled = perms !== Types.PermissionLevel.Write;
|
||||
|
||||
return (
|
||||
<Config
|
||||
disabled={disabled}
|
||||
config={config}
|
||||
update={update}
|
||||
set={set}
|
||||
@@ -65,7 +70,9 @@ export const DeploymentConfig = ({ id }: { id: string }) => {
|
||||
),
|
||||
},
|
||||
container: {
|
||||
image: (value, set) => <ImageConfig image={value} set={set} />,
|
||||
image: (value, set) => (
|
||||
<ImageConfig image={value} set={set} disabled={disabled} />
|
||||
),
|
||||
docker_account: (value, set) => (
|
||||
<AccountSelector
|
||||
id={update.server_id ?? config.server_id}
|
||||
@@ -73,16 +80,22 @@ export const DeploymentConfig = ({ id }: { id: string }) => {
|
||||
type="Server"
|
||||
selected={value}
|
||||
onSelect={(docker_account) => set({ docker_account })}
|
||||
disabled={disabled}
|
||||
/>
|
||||
),
|
||||
restart: (value, set) => (
|
||||
<RestartModeSelector selected={value} set={set} />
|
||||
<RestartModeSelector
|
||||
selected={value}
|
||||
set={set}
|
||||
disabled={disabled}
|
||||
/>
|
||||
),
|
||||
process_args: (value, set) => (
|
||||
<ConfigInput
|
||||
label="Process Args"
|
||||
value={value}
|
||||
onChange={(process_args) => set({ process_args })}
|
||||
disabled={disabled}
|
||||
/>
|
||||
),
|
||||
network: (value, set) => (
|
||||
@@ -90,6 +103,7 @@ export const DeploymentConfig = ({ id }: { id: string }) => {
|
||||
server_id={update.server_id ?? config.server_id}
|
||||
selected={value}
|
||||
onSelect={(network) => set({ network })}
|
||||
disabled={disabled}
|
||||
/>
|
||||
),
|
||||
ports: (value, set) =>
|
||||
@@ -97,7 +111,7 @@ export const DeploymentConfig = ({ id }: { id: string }) => {
|
||||
volumes: (v, set) => <VolumesConfig volumes={v ?? []} set={set} />,
|
||||
labels: (l, set) => <LabelsConfig labels={l ?? []} set={set} />,
|
||||
extra_args: (value, set) => (
|
||||
<ExtraArgs args={value ?? []} set={set} />
|
||||
<ExtraArgs args={value ?? []} set={set} disabled={disabled} />
|
||||
),
|
||||
},
|
||||
settings: {
|
||||
@@ -113,6 +127,7 @@ export const DeploymentConfig = ({ id }: { id: string }) => {
|
||||
vars={vars ?? []}
|
||||
set={set}
|
||||
server={update.server_id || config.server_id}
|
||||
disabled={disabled}
|
||||
/>
|
||||
),
|
||||
skip_secret_interp: true,
|
||||
@@ -121,13 +136,17 @@ export const DeploymentConfig = ({ id }: { id: string }) => {
|
||||
termination: {
|
||||
termination: {
|
||||
termination_signal: (value, set) => (
|
||||
<DefaultTerminationSignal arg={value} set={set} />
|
||||
<DefaultTerminationSignal
|
||||
arg={value}
|
||||
set={set}
|
||||
disabled={disabled}
|
||||
/>
|
||||
),
|
||||
termination_timeout: (value, set) => (
|
||||
<TerminationTimeout arg={value} set={set} />
|
||||
<TerminationTimeout arg={value} set={set} disabled={disabled} />
|
||||
),
|
||||
term_signal_labels: (value, set) => (
|
||||
<TermSignalLabels args={value} set={set} />
|
||||
<TermSignalLabels args={value} set={set} disabled={disabled} />
|
||||
),
|
||||
},
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user