Replace status tabs with multi-select checkbox dropdown, default to Open + In Progress
Status filtering now supports selecting multiple statuses via a dropdown with checkboxes. Backend updated to accept comma-separated status values using Prisma `in` operator. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -6,7 +6,14 @@ function whereConditions(query: string, filters: TicketFilters): Prisma.Sql[] {
|
||||
const conds: Prisma.Sql[] = [
|
||||
Prisma.sql`"searchVector" @@ plainto_tsquery('english', ${query})`,
|
||||
];
|
||||
if (filters.status) conds.push(Prisma.sql`"status" = ${filters.status}::"TicketStatus"`);
|
||||
if (filters.status) {
|
||||
const statuses = filters.status.split(',');
|
||||
if (statuses.length === 1) {
|
||||
conds.push(Prisma.sql`"status" = ${statuses[0]}::"TicketStatus"`);
|
||||
} else {
|
||||
conds.push(Prisma.sql`"status" IN (${Prisma.join(statuses.map(s => Prisma.sql`${s}::"TicketStatus"`))})`);
|
||||
}
|
||||
}
|
||||
if (filters.severity !== undefined) conds.push(Prisma.sql`"severity" = ${filters.severity}`);
|
||||
if (filters.assigneeId) conds.push(Prisma.sql`"assigneeId" = ${filters.assigneeId}`);
|
||||
if (filters.createdById) conds.push(Prisma.sql`"createdById" = ${filters.createdById}`);
|
||||
|
||||
@@ -80,7 +80,12 @@ export function findByIdOrDisplay(idOrDisplay: string) {
|
||||
|
||||
export function buildTicketWhere(filters: TicketFilters): Prisma.TicketWhereInput {
|
||||
const where: Prisma.TicketWhereInput = {};
|
||||
if (filters.status) where.status = filters.status as Prisma.TicketWhereInput['status'];
|
||||
if (filters.status) {
|
||||
const statuses = filters.status.split(',');
|
||||
where.status = statuses.length === 1
|
||||
? (statuses[0] as Prisma.TicketWhereInput['status'])
|
||||
: { in: statuses as string[] } as Prisma.TicketWhereInput['status'];
|
||||
}
|
||||
if (filters.severity) where.severity = filters.severity;
|
||||
if (filters.assigneeId) where.assigneeId = filters.assigneeId;
|
||||
if (filters.createdById) where.createdById = filters.createdById;
|
||||
|
||||
Reference in New Issue
Block a user