diff --git a/apps/client/app/components/ui/textarea.tsx b/apps/client/app/components/ui/textarea.tsx
new file mode 100644
index 0000000..e5aa0b1
--- /dev/null
+++ b/apps/client/app/components/ui/textarea.tsx
@@ -0,0 +1,18 @@
+import * as React from "react";
+
+import { cn } from "~/lib/utils";
+
+function Textarea({ className, ...props }: React.ComponentProps<"textarea">) {
+ return (
+
+ );
+}
+
+export { Textarea };
diff --git a/apps/client/app/modules/backups/components/create-schedule-form.tsx b/apps/client/app/modules/backups/components/create-schedule-form.tsx
index e72262f..ad3efee 100644
--- a/apps/client/app/modules/backups/components/create-schedule-form.tsx
+++ b/apps/client/app/modules/backups/components/create-schedule-form.tsx
@@ -9,13 +9,14 @@ import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "~/com
import { Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage } from "~/components/ui/form";
import { Input } from "~/components/ui/input";
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "~/components/ui/select";
+import { Textarea } from "~/components/ui/textarea";
import { VolumeFileBrowser } from "~/components/volume-file-browser";
import type { BackupSchedule, Volume } from "~/lib/types";
import { deepClean } from "~/utils/object";
-const formSchema = type({
+const internalFormSchema = type({
repositoryId: "string",
- excludePatterns: "string[]?",
+ excludePatternsText: "string?",
includePatterns: "string[]?",
frequency: "string",
dailyTime: "string?",
@@ -27,7 +28,7 @@ const formSchema = type({
keepMonthly: "number?",
keepYearly: "number?",
});
-const cleanSchema = type.pipe((d) => formSchema(deepClean(d)));
+const cleanSchema = type.pipe((d) => internalFormSchema(deepClean(d)));
export const weeklyDays = [
{ label: "Monday", value: "1" },
@@ -39,7 +40,11 @@ export const weeklyDays = [
{ label: "Sunday", value: "0" },
];
-export type BackupScheduleFormValues = typeof formSchema.infer;
+type InternalFormValues = typeof internalFormSchema.infer;
+
+export type BackupScheduleFormValues = Omit
Include paths
+Exclude patterns
+Retention
diff --git a/apps/server/src/utils/restic.ts b/apps/server/src/utils/restic.ts
index bccc325..96e2382 100644
--- a/apps/server/src/utils/restic.ts
+++ b/apps/server/src/utils/restic.ts
@@ -82,7 +82,7 @@ const buildRepoUrl = (config: RepositoryConfig): string => {
const buildEnv = async (config: RepositoryConfig) => {
const env: Record