- forms collection: targeting group (all/users/roles/qualifications), activeFrom/activeUntil window, radio/date field blocks enabled - form-submissions: server-side user attribution, expiry and audience gates, one attempt per user - forms/submissions permissions in the Surveys registry group + admin role seed grants - frontend /surveys list and /surveys/[id] take page with client block renderer - register the pending role permission enum values migration
203 lines
3.4 KiB
TypeScript
203 lines
3.4 KiB
TypeScript
import {
|
|
Award,
|
|
Backpack,
|
|
BarChart3,
|
|
BookOpen,
|
|
Boxes,
|
|
Building2,
|
|
ClipboardList,
|
|
ClipboardCheck,
|
|
Car,
|
|
Contact,
|
|
Crosshair,
|
|
Flag,
|
|
Kanban,
|
|
LifeBuoy,
|
|
Map,
|
|
Package,
|
|
Radar,
|
|
ScrollText,
|
|
Search,
|
|
ShoppingBag,
|
|
Swords,
|
|
TrendingUp,
|
|
Truck,
|
|
UserCog,
|
|
Users,
|
|
} from "lucide-react";
|
|
|
|
export const sidebarData = {
|
|
navMap: [
|
|
{
|
|
title: "World Map",
|
|
url: "/map",
|
|
icon: Map,
|
|
},
|
|
],
|
|
navHelpdesk: [
|
|
{
|
|
title: "Helpdesk",
|
|
url: "/helpdesk",
|
|
icon: LifeBuoy,
|
|
},
|
|
{
|
|
title: "Projects",
|
|
url: "/projects",
|
|
icon: Kanban,
|
|
},
|
|
{
|
|
title: "Search",
|
|
url: "/projects/search",
|
|
icon: Search,
|
|
},
|
|
],
|
|
navIntelligence: [
|
|
{
|
|
title: "Campaigns",
|
|
url: "/intelligence/campaigns",
|
|
icon: Swords,
|
|
},
|
|
{
|
|
title: "Missions",
|
|
url: "/intelligence/missions",
|
|
icon: Crosshair,
|
|
},
|
|
{
|
|
title: "Factions",
|
|
url: "/intelligence/factions",
|
|
icon: Flag,
|
|
},
|
|
{
|
|
title: "Wiki",
|
|
url: "/wiki",
|
|
icon: BookOpen,
|
|
},
|
|
],
|
|
navOperations: [
|
|
{
|
|
title: "Ops Overview",
|
|
url: "/operations",
|
|
icon: Radar,
|
|
},
|
|
{
|
|
title: "Ops Ledger",
|
|
url: "/operations/ledger",
|
|
icon: ScrollText,
|
|
},
|
|
{
|
|
title: "Reservations",
|
|
url: "/operations/reservations",
|
|
icon: ClipboardList,
|
|
},
|
|
],
|
|
navLogistics: [
|
|
{
|
|
title: "Assets",
|
|
url: "",
|
|
icon: Boxes,
|
|
defaultOpen: true,
|
|
items: [
|
|
{
|
|
title: "Structures",
|
|
url: "/logistics",
|
|
icon: Building2,
|
|
},
|
|
{
|
|
title: "Resources",
|
|
url: "/logistics/resources",
|
|
icon: Boxes,
|
|
},
|
|
{
|
|
title: "Vehicles",
|
|
url: "/logistics/vehicles",
|
|
icon: Truck,
|
|
},
|
|
],
|
|
},
|
|
{
|
|
title: "Operations",
|
|
url: "",
|
|
icon: Package,
|
|
defaultOpen: true,
|
|
items: [
|
|
{
|
|
title: "Shipments",
|
|
url: "/logistics/shipments",
|
|
icon: Package,
|
|
},
|
|
{
|
|
title: "Deployed Vehicles",
|
|
url: "/logistics/game-vehicles",
|
|
icon: Car,
|
|
},
|
|
{
|
|
title: "Supply Boxes",
|
|
url: "/logistics/supply-boxes",
|
|
icon: Boxes,
|
|
},
|
|
],
|
|
},
|
|
{
|
|
title: "Personnel",
|
|
url: "",
|
|
icon: Users,
|
|
defaultOpen: true,
|
|
items: [
|
|
{
|
|
title: "Contacts",
|
|
url: "/personnel/contacts",
|
|
icon: Contact,
|
|
},
|
|
{
|
|
title: "Statistics",
|
|
url: "/personnel/statistics",
|
|
icon: BarChart3,
|
|
},
|
|
],
|
|
},
|
|
],
|
|
navCommerce: [
|
|
{
|
|
title: "Banking",
|
|
url: "/logistics/banking",
|
|
icon: TrendingUp,
|
|
},
|
|
{
|
|
title: "Market",
|
|
url: "/logistics/market",
|
|
icon: ShoppingBag,
|
|
},
|
|
],
|
|
navPersonal: [
|
|
{
|
|
title: "Awards",
|
|
url: "/awards",
|
|
icon: Award,
|
|
},
|
|
{
|
|
title: "Locker",
|
|
url: "/locker",
|
|
icon: Backpack,
|
|
},
|
|
{
|
|
title: "Account",
|
|
url: "/account",
|
|
icon: UserCog,
|
|
},
|
|
],
|
|
navStory: [
|
|
{
|
|
title: "Chronicle",
|
|
url: "/story",
|
|
icon: ScrollText,
|
|
},
|
|
],
|
|
navSurveys: [
|
|
{
|
|
title: "Surveys",
|
|
url: "/surveys",
|
|
icon: ClipboardCheck,
|
|
},
|
|
],
|
|
navSecondary: [],
|
|
};
|