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 ( +
Manage all datasets
+Manage experiments globally or go to the experiments management page
-