add access to deployment

This commit is contained in:
yoan
2024-11-13 13:20:47 +08:00
parent fd04cec606
commit 52f40d982d
29 changed files with 1120 additions and 88 deletions

View File

@@ -15,6 +15,9 @@ import i18n from "@/i18n";
import { WorkflowNode } from "@/domain/workflow";
import { Textarea } from "../ui/textarea";
import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from "../ui/dropdown-menu";
import AccessSelect from "./AccessSelect";
import AccessEditDialog from "../certimate/AccessEditDialog";
import { Plus } from "lucide-react";
const selectState = (state: WorkflowState) => ({
updateNode: state.updateNode,
@@ -26,6 +29,7 @@ const t = i18n.t;
const formSchema = z
.object({
providerType: z.string(),
access: z.string().min(1, t("domain.deployment.form.access.placeholder")),
certificate: z.string().min(1),
format: z.union([z.literal("pem"), z.literal("pfx"), z.literal("jks")], {
message: t("domain.deployment.form.file_format.placeholder"),
@@ -86,6 +90,7 @@ const DeployToLocal = ({ data }: DeployFormProps) => {
resolver: zodResolver(formSchema),
defaultValues: {
providerType: "local",
access: data.config?.access as string,
certificate: data.config?.certificate as string,
format: (data.config?.format as "pem" | "pfx" | "jks") || "pem",
certPath: (data.config?.certPath as string) || "/etc/ssl/certs/cert.crt",
@@ -198,6 +203,41 @@ Remove-Item -Path "$pfxPath" -Force
return (
<Form {...form}>
<form onSubmit={form.handleSubmit(onSubmit)} className="space-y-8">
<FormField
control={form.control}
name="access"
render={({ field }) => (
<FormItem>
<FormLabel className="flex justify-between">
<div>{t("domain.deployment.form.access.label")}</div>
<AccessEditDialog
trigger={
<div className="font-normal text-primary hover:underline cursor-pointer flex items-center">
<Plus size={14} />
{t("common.add")}
</div>
}
op="add"
outConfigType="local"
/>
</FormLabel>
<FormControl>
<AccessSelect
{...field}
value={field.value}
onValueChange={(value) => {
form.setValue("access", value);
}}
providerType="local"
/>
</FormControl>
<FormMessage />
</FormItem>
)}
/>
<FormField
control={form.control}
name="certificate"