From a35d8b87ee1ea55268af3f85474f6f16bd1e4f85 Mon Sep 17 00:00:00 2001 From: diced Date: Thu, 15 May 2025 21:09:44 -0700 Subject: [PATCH] feat: more version checking options --- .../migration.sql | 3 ++ prisma/migrations/migration_lock.toml | 2 +- prisma/schema.prisma | 3 ++ .../parts/ServerSettingsFeatures.tsx | 42 ++++++++++++++++++- src/lib/config/read.ts | 3 ++ src/lib/config/validate.ts | 2 + src/server/routes/api/server/settings.ts | 3 ++ src/server/routes/api/version.ts | 38 +++++++++++------ 8 files changed, 81 insertions(+), 15 deletions(-) create mode 100644 prisma/migrations/20250516022401_version_checking/migration.sql diff --git a/prisma/migrations/20250516022401_version_checking/migration.sql b/prisma/migrations/20250516022401_version_checking/migration.sql new file mode 100644 index 00000000..8ac0d0dc --- /dev/null +++ b/prisma/migrations/20250516022401_version_checking/migration.sql @@ -0,0 +1,3 @@ +-- AlterTable +ALTER TABLE "Zipline" ADD COLUMN "featuresVersionAPI" TEXT NOT NULL DEFAULT 'https://zipline-version.diced.sh', +ADD COLUMN "featuresVersionChecking" BOOLEAN NOT NULL DEFAULT true; diff --git a/prisma/migrations/migration_lock.toml b/prisma/migrations/migration_lock.toml index 648c57fd..044d57cd 100644 --- a/prisma/migrations/migration_lock.toml +++ b/prisma/migrations/migration_lock.toml @@ -1,3 +1,3 @@ # Please do not edit this file manually # It should be added in your version-control system (e.g., Git) -provider = "postgresql" \ No newline at end of file +provider = "postgresql" diff --git a/prisma/schema.prisma b/prisma/schema.prisma index 772bfe5e..7390fd6c 100755 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -58,6 +58,9 @@ model Zipline { featuresMetricsAdminOnly Boolean @default(false) featuresMetricsShowUserSpecific Boolean @default(true) + featuresVersionChecking Boolean @default(true) + featuresVersionAPI String @default("https://zipline-version.diced.sh") + invitesEnabled Boolean @default(true) invitesLength Int @default(6) diff --git a/src/components/pages/serverSettings/parts/ServerSettingsFeatures.tsx b/src/components/pages/serverSettings/parts/ServerSettingsFeatures.tsx index 7b0ac9a6..591ac9c9 100644 --- a/src/components/pages/serverSettings/parts/ServerSettingsFeatures.tsx +++ b/src/components/pages/serverSettings/parts/ServerSettingsFeatures.tsx @@ -1,5 +1,15 @@ import { Response } from '@/lib/api/response'; -import { Button, LoadingOverlay, NumberInput, Paper, SimpleGrid, Switch, Title } from '@mantine/core'; +import { + Anchor, + Button, + LoadingOverlay, + NumberInput, + Paper, + SimpleGrid, + Switch, + TextInput, + Title, +} from '@mantine/core'; import { useForm } from '@mantine/form'; import { IconDeviceFloppy } from '@tabler/icons-react'; import { useRouter } from 'next/router'; @@ -25,6 +35,8 @@ export default function ServerSettingsFeatures({ featuresMetricsEnabled: true, featuresMetricsAdminOnly: false, featuresMetricsShowUserSpecific: true, + featuresVersionChecking: true, + featuresVersionAPI: 'https://zipline-version.diced.sh/', }, }); @@ -43,6 +55,8 @@ export default function ServerSettingsFeatures({ featuresMetricsEnabled: data?.featuresMetricsEnabled ?? true, featuresMetricsAdminOnly: data?.featuresMetricsAdminOnly ?? false, featuresMetricsShowUserSpecific: data?.featuresMetricsShowUserSpecific ?? true, + featuresVersionChecking: data?.featuresVersionChecking ?? true, + featuresVersionAPI: data?.featuresVersionAPI ?? 'https://zipline-version.diced.sh/', }); }, [data]); @@ -107,7 +121,7 @@ export default function ServerSettingsFeatures({ description='Shows metrics specific to each user, for all users.' {...form.getInputProps('featuresMetricsShowUserSpecific', { type: 'checkbox' })} /> - +
+ + + + The URL of the version checking server. The default is{' '} + + https://zipline-version.diced.sh + + . Visit the{' '} + + GitHub + {' '} + to host your own version checking server. + + } + placeholder='https://zipline-version.diced.sh/' + {...form.getInputProps('featuresVersionAPI')} + />