Header redesign, sound/toast notifications, and agent scoping
Four requested improvements: 1. Logo + wordmark now link to /dashboard. 2. Header reordered: nav links (Заявки/Статистика) centered, right side now reads notifications -> theme -> settings -> account name -> logout, matching the requested order. 3. New TicketToasts component: in-page toast + a short Web Audio chime for new tickets and customer messages, shown regardless of tab focus. Complements the existing DesktopNotifications, which only fires the native OS notification while the tab is backgrounded. Also added a 30s polling refresh on the dashboard as a plain safety net under the existing SSE push, in case an event is dropped by whatever's in front of this app on the network. 4. Agents now see only tickets assigned to them plus unassigned ones (not the whole board) — listTickets() takes an optional visibility filter, applied in both the dashboard page and the /api/tickets search route, and mirrored client-side so a live SSE update can't leak a just-reassigned-away ticket onto their board. Settings gear and the Статистика nav link are now hidden entirely for agents rather than just showing fewer items inside. Also closed a real gap this surfaced: /stats had no server-side role check at all (only the nav link was hidden), so any agent could load it directly — added the same session.user.role !== "admin" guard the other admin-only settings pages already have. Verified end-to-end with a temporary Playwright pass (installed and fully removed afterward): logo click navigation, header icon order, agent view missing the gear/Статистика, direct-URL access to /stats and /settings/accounts still redirecting non-admins, and ticket visibility correctly disappearing from an agent's board the moment it's reassigned to someone else. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012o9j9RezxbZVKQMrB7oRLY
This commit is contained in:
1 parent
c32888981c
commit
69467239ed
11 files changed
+201
-21
No files matched your search
@@ -10,7 +10,7 @@ export async function GET(request: Request) {
|
||||
if (!session) return response;
|
||||
|
||||
const query = new URL(request.url).searchParams.get("q") ?? undefined;
|
||||
const tickets = await listTickets(query);
|
||||
const tickets = await listTickets(query, { id: session.user.id, role: session.user.role });
|
||||
return NextResponse.json({ tickets });
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user