diff --git a/src/app/actions/experiment.ts b/src/app/actions/experiment.ts index 46d407b..89b5edc 100644 --- a/src/app/actions/experiment.ts +++ b/src/app/actions/experiment.ts @@ -17,7 +17,7 @@ export async function createExperiment({ name: string; description?: string; datasetId: number; - annotationTool: string; + annotationTool?: string; published?: boolean; }) { const result = await requireAdmin(); @@ -34,7 +34,7 @@ export async function createExperiment({ name: name.trim(), description: description?.trim() || null, datasetId, - annotationTool: annotationTool.trim(), + annotationTool: annotationTool?.trim(), published, }); revalidatePath('/admin/experiments'); @@ -67,7 +67,7 @@ export async function updateExperiment( updateData.description = updates.description.trim() || null; } if (updates.annotationTool !== undefined) { - updateData.annotationTool = updates.annotationTool; + updateData.annotationTool = updates.annotationTool?.trim(); } if (updates.published !== undefined) { updateData.published = updates.published; diff --git a/src/app/admin/datasets/page.tsx b/src/app/admin/datasets/page.tsx new file mode 100644 index 0000000..a5343f5 --- /dev/null +++ b/src/app/admin/datasets/page.tsx @@ -0,0 +1,37 @@ +import Link from 'next/link'; +import DatasetsList from '@/components/DatasetsList'; +import CreateDatasetModal from '@/components/CreateDatasetModal'; +import { requireAdmin } from '@/lib/auth'; +import { redirect } from 'next/navigation'; + +export default async function DatasetsAdminPage() { + const result = await requireAdmin(); + + if (!result.authenticated) { + redirect("/user/sign-in"); + } + + if (!result.admin) { + redirect("/"); + } + + return ( +
+ + ← Back to Admin + + +
+

Datasets Management

+

Manage all datasets

+
+ + + + +
+ ); +} diff --git a/src/app/admin/page.tsx b/src/app/admin/page.tsx index f66239f..aa1145f 100644 --- a/src/app/admin/page.tsx +++ b/src/app/admin/page.tsx @@ -1,5 +1,4 @@ import DatasetsList from "@/components/DatasetsList"; -import CreateDatasetModal from "@/components/CreateDatasetModal"; import ExperimentsList from "@/components/ExperimentsList"; import { AdminTokenForm } from "@/components/AdminTokenForm"; import BuildInfo from "@/components/BuildInfo"; @@ -22,12 +21,12 @@ export default async function AdminPage() {

Admin Panel

-
+
- Manage Users + Manage Datasets Manage Experiments + + Manage Users +
@@ -42,16 +47,14 @@ export default async function AdminPage() {
-
-

Datasets

- - -
+
+
+ +
-
-

Experiments

-

Manage experiments globally or go to the experiments management page

- +
+ +
);