diff --git a/src/app/admin/import/furni/upload/page.tsx b/src/app/admin/import/furni/upload/page.tsx new file mode 100644 index 0000000000..915d13e820 --- /dev/null +++ b/src/app/admin/import/furni/upload/page.tsx @@ -0,0 +1,26 @@ +import { redirect } from "next/navigation"; +import { canAccess, getAdminContext, PERMS } from "@/lib/permissions"; +import { UploadFurniClient } from "./upload-furni-client"; + +export default async function UploadFurniPage() { + const { session, permissions } = await getAdminContext(); + if (!canAccess(permissions, PERMS.ASSETS_IMPORT, session.user.rank)) { + redirect("/admin"); + } + + return ( +
+ Upload a .nitro bundle and optional icon to import furniture into the + hotel. The database entry, catalog item, and FurnitureData.json will + be updated automatically. +
+{result.classname}
+ {result.itemId}
+ {result.catalogItemId}
+ + Scan all existing furniture and download any missing icon files. Icons + are extracted from local .nitro bundles or fetched from configured + clone sources. +
++ Icons downloaded:{" "} + {result.succeeded} +
++ Failed:{" "} + {result.failed} +
++ Scans all furniture in the database and downloads any missing icon + files. Icons are extracted from local .nitro bundles or downloaded + from configured clone sources. +
++ Scan all configured clone sources and automatically import + any furniture that is not yet present in your hotel. Missing + .nitro files, icons, database entries, catalog items, and + FurnitureData.json will be added automatically. +
++ Succeeded:{" "} + {result.succeeded} +
++ Failed:{" "} + {result.failed} +
++ Click the button above to scan all clone sources for missing + furniture and import it automatically. +
+