feat: relocate import tools into studio and harden catalog/furnidata integrity
- Move /admin/import/* tools under /admin/studio/* and add studio nav, layout and tabs - Add shared catalog maintenance panel plus a /admin/studio/maintenance tab - Make furnidata reconciliation overwrite conflicting entries with the DB-authoritative items_base classname/id (surfaced via fixedConflicts) - Add furnidata_translate_enabled setting to skip the heavy localized furnidata build during import (manual build-languages still forces it) - Update staff smoke contract test for the studio hub
This commit is contained in:
1 parent
c2e61dc324
commit
c7ba04bda1
36 files changed
+616
-2835
No files matched your search
@@ -13,7 +13,6 @@ import {
|
||||
Gavel,
|
||||
HelpCircle,
|
||||
Image,
|
||||
Import,
|
||||
KeyRound,
|
||||
Languages,
|
||||
LayoutDashboard,
|
||||
@@ -35,7 +34,6 @@ import {
|
||||
Terminal,
|
||||
Ticket,
|
||||
Trophy,
|
||||
Upload,
|
||||
Users,
|
||||
UsersRound,
|
||||
Volume2,
|
||||
@@ -219,38 +217,6 @@ export const ADMIN_HUBS: AdminHubDefinition[] = [
|
||||
{ href: "/admin/devops/errors", labelKey: "errors" },
|
||||
],
|
||||
},
|
||||
{
|
||||
id: "import",
|
||||
titleKey: "import",
|
||||
subtitleKey: "importSubtitle",
|
||||
icon: Upload,
|
||||
prefixes: ["/admin/import"],
|
||||
tabs: [
|
||||
{
|
||||
href: "/admin/import",
|
||||
labelKey: "importOverview",
|
||||
match: ["/admin/import"],
|
||||
},
|
||||
{ href: "/admin/import/badges", labelKey: "importBadges" },
|
||||
{
|
||||
href: "/admin/import/furni/upload",
|
||||
labelKey: "importUpload",
|
||||
match: ["/admin/import/furni/upload"],
|
||||
},
|
||||
{
|
||||
href: "/admin/import/furni",
|
||||
labelKey: "importFurni",
|
||||
match: ["/admin/import/furni"],
|
||||
},
|
||||
{ href: "/admin/import/clothing", labelKey: "importClothing" },
|
||||
{ href: "/admin/import/effects", labelKey: "importEffects" },
|
||||
{ href: "/admin/import/pets", labelKey: "importPets" },
|
||||
{ href: "/admin/import/clone", labelKey: "importClone" },
|
||||
{ href: "/admin/import/sync", labelKey: "importSync" },
|
||||
{ href: "/admin/import/repair-icons", labelKey: "importRepairIcons" },
|
||||
{ href: "/admin/import/audit", labelKey: "importAudit" },
|
||||
],
|
||||
},
|
||||
];
|
||||
|
||||
/** Longest-prefix match so nested routes (e.g. /admin/logs/audit) win. */
|
||||
@@ -637,13 +603,6 @@ export const ADMIN_NAV_GROUPS: AdminNavGroup[] = [
|
||||
permission: PERMS.ASSETS_IMPORT,
|
||||
matchPrefixes: ["/admin/studio"],
|
||||
},
|
||||
{
|
||||
href: "/admin/import",
|
||||
labelKey: "import",
|
||||
icon: Import,
|
||||
permission: PERMS.ASSETS_IMPORT,
|
||||
matchPrefixes: ["/admin/import"],
|
||||
},
|
||||
{
|
||||
href: "/admin/translations",
|
||||
labelKey: "translations",
|
||||
|
||||
Reference in new issue
Block a user