Fix rooms list crash and rebuild CMS settings UI.
Rooms queried the wrong Prisma model and a non-existent owner relation. Settings now use grouped managed fields plus a searchable advanced key/value panel. Co-authored-by: Cursor <[email protected]>
This commit is contained in:
1 parent
c186f51ae0
commit
e101ea474e
6 files changed
+796
-104
No files matched your search
@@ -6,27 +6,41 @@ export default async function RoomsPage({
|
||||
params: paramsPromise,
|
||||
searchParams,
|
||||
}: {
|
||||
params: Promise<{ locale: string }>;
|
||||
params: Promise<{ locale?: string }>;
|
||||
searchParams: Promise<Record<string, string>>;
|
||||
}) {
|
||||
const result = await fetchAdminList(
|
||||
{
|
||||
permission: PERMS.ROOMS_VIEW,
|
||||
model: "room",
|
||||
searchFields: ["name", "owner.username"],
|
||||
include: { owner: { select: { username: true } } },
|
||||
// Prisma model is `Rooms` → client accessor `rooms`.
|
||||
// Owner is denormalized on the row (ownerId / ownerName), not a relation.
|
||||
model: "rooms",
|
||||
searchFields: ["name", "ownerName"],
|
||||
select: {
|
||||
id: true,
|
||||
name: true,
|
||||
ownerId: true,
|
||||
ownerName: true,
|
||||
state: true,
|
||||
users: true,
|
||||
usersMax: true,
|
||||
description: true,
|
||||
},
|
||||
filterMap: {
|
||||
filter_state: (v) => ({ state: v }),
|
||||
},
|
||||
mapRow: (r) => ({
|
||||
id: r.id,
|
||||
name: r.name,
|
||||
ownerName: r.owner.username,
|
||||
ownerId: r.owner?.id ?? 0,
|
||||
state: r.state,
|
||||
users: r.users,
|
||||
usersMax: r.usersMax,
|
||||
description: r.description,
|
||||
id: r.id as number,
|
||||
name: r.name as string,
|
||||
ownerName: (r.ownerName as string) || "—",
|
||||
ownerId: (r.ownerId as number) ?? 0,
|
||||
state: r.state as string,
|
||||
users: r.users as number,
|
||||
usersMax: r.usersMax as number,
|
||||
description: (r.description as string) || "",
|
||||
}),
|
||||
},
|
||||
paramsPromise,
|
||||
paramsPromise as Promise<{ locale: string }>,
|
||||
searchParams,
|
||||
);
|
||||
|
||||
|
||||
Reference in new issue
Block a user