feat: Dispo V2 import — API router + admin UI
API Router (packages/api/src/router/dispo.ts): - 12 adminProcedure endpoints wired to existing application layer - stageImportBatch, validateImportBatch, commitImportBatch - listImportBatches, getImportBatch, cancelImportBatch - listStagedResources/Projects/Assignments/Vacations/Unresolved - resolveStagedRecord (APPROVE/REJECT/SKIP actions) Admin UI: - /admin/dispo-imports — batch list with status filter, new import modal - /admin/dispo-imports/[batchId] — detail with 6 tabs: Summary, Resources, Projects, Assignments, Vacations, Unresolved - Unresolved review queue with approve/skip per-record actions - Commit workflow with pre-validation and progress indicator - Sidebar nav link under Admin Also fixes: timeline filter dropdown z-index (toolbar relative z-20) Co-Authored-By: claude-flow <ruv@ruv.net>
This commit is contained in:
@@ -0,0 +1,10 @@
|
||||
import { DispoImportDetailClient } from "~/components/admin/DispoImportDetailClient.js";
|
||||
|
||||
export default async function DispoImportDetailPage({
|
||||
params,
|
||||
}: {
|
||||
params: Promise<{ batchId: string }>;
|
||||
}) {
|
||||
const { batchId } = await params;
|
||||
return <DispoImportDetailClient batchId={batchId} />;
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
import { DispoImportClient } from "~/components/admin/DispoImportClient.js";
|
||||
|
||||
export default function DispoImportsPage() {
|
||||
return <DispoImportClient />;
|
||||
}
|
||||
Reference in New Issue
Block a user