- Add 11 missing server action files: badges, bulk-users, catalog, catalog-bc, catalog-items, import-badges, import-furni, multi-account-detect, permissions, rooms, soundtracks - Add missing admin navigation links: tickets, sounds, translations, import, radio sub-pages - Add translation keys for all new navigation items
62 lines
1.8 KiB
TypeScript
62 lines
1.8 KiB
TypeScript
import { notFound, redirect } from 'next/navigation'
|
|
import { canAccess, getAdminContext, PERMS } from '@/lib/permissions'
|
|
import { prisma } from '@/lib/prisma'
|
|
import { BcPageDetail } from '../bc-manager'
|
|
|
|
export default async function BcPageDetailPage({
|
|
params: paramsPromise,
|
|
}: {
|
|
params: Promise<{ locale: string; id: string }>
|
|
}) {
|
|
const { id: idStr } = await paramsPromise
|
|
const id = parseInt(idStr, 10)
|
|
if (Number.isNaN(id)) notFound()
|
|
|
|
const { session, permissions } = await getAdminContext()
|
|
if (!canAccess(permissions, PERMS.CATALOG_VIEW, session.user.rank)) {
|
|
redirect('/admin')
|
|
}
|
|
|
|
const canEdit = canAccess(permissions, PERMS.CATALOG_EDIT, session.user.rank)
|
|
|
|
const bcPage = await prisma.catalog_pages_bc.findUnique({ where: { id } })
|
|
if (!bcPage) notFound()
|
|
|
|
const bcItems = await prisma.catalog_items_bc.findMany({
|
|
where: { page_id: id },
|
|
orderBy: { order_number: 'asc' },
|
|
})
|
|
|
|
return (
|
|
<BcPageDetail
|
|
page={{
|
|
id: bcPage.id,
|
|
parentId: bcPage.parent_id,
|
|
caption: bcPage.caption,
|
|
pageLayout: bcPage.page_layout,
|
|
iconColor: bcPage.icon_color,
|
|
iconImage: bcPage.icon_image,
|
|
orderNum: bcPage.order_num,
|
|
visible: bcPage.visible,
|
|
enabled: bcPage.enabled,
|
|
pageHeadline: bcPage.page_headline,
|
|
pageTeaser: bcPage.page_teaser,
|
|
pageSpecial: bcPage.page_special ?? '',
|
|
pageText1: bcPage.page_text1 ?? '',
|
|
pageText2: bcPage.page_text2 ?? '',
|
|
pageTextDetails: bcPage.page_text_details ?? '',
|
|
pageTextTeaser: bcPage.page_text_teaser ?? '',
|
|
}}
|
|
items={bcItems.map((i) => ({
|
|
id: i.id,
|
|
pageId: i.page_id,
|
|
itemIds: i.item_ids,
|
|
catalogName: i.catalog_name,
|
|
orderNumber: i.order_number,
|
|
extradata: i.extradata,
|
|
}))}
|
|
canEdit={canEdit}
|
|
/>
|
|
)
|
|
}
|