Add Custom Explorer reports with v1 feature parity#502
Open
Conversation
Vite's http-proxy mangles the Sec-WebSocket-Accept header when proxying WebSocket connections to HTTPS backends, causing the AMI handshake to fail. In dev mode, connect directly to the backend WSS URL (AMI_HOST) instead of routing through the broken proxy. Production still uses the relative path proxied by nginx. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…sor actions, 3 new modules, and missing features Bug fixes: perpetrator location_id, referrals in legacy form, case edit pre-population, reporter-is-client auto-fill, disposition API save, message send unblocked, dynamic age group IDs, BaseSelect search mode, duplicate store method, sidebar logout cleanup, 403 handling, dead code removal. New features: hold/mute/transfer/DTMF in-call controls, supervisor spy/whisper/barge/force logout on wallboard, agent availability/internal calls/extension history modules with stores+pages+tables+filters, category tree admin CRUD, case list view tabs (my/escalated/ today), call filter case+reporter tabs, QA read-only detail drawer, message preset replies and file attachment, XLSX message export, report PNG+CSV export, escalated case status. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Extract Custom Explorer from Reports.vue into standalone component - Replace hand-rolled SVG chart with Chart.js (bar/line/pie/doughnut) - Fix store pollution bug: use stateless getAnalytics() instead of listCalls/listCases - Add sort by name/total, value functions (Count/% /Cumul/Cumul%), XLSX export - Add multi-series chart support when multiple Y-axis filters selected - Add ChartLegend component with per-series hide/show and line/bar toggle - Add Reports tab to Calls and Cases pages (endpoint-locked CustomExplorer) - Add getAnalytics() stateless action to QA store - Install xlsx package (lazy-loaded, separate chunk) - Slim Reports.vue from 868 to 60 lines Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
CustomExplorercomponent: Full-featured analytics explorer extracted fromReports.vue, replacing the hand-rolled SVG chart with Chart.js (bar, line, pie, doughnut). Fixes a store pollution bug wherelistCalls/listCaseswere being called for analytics, corrupting the list page pagination state — now uses statelessgetAnalytics().CustomExplorerlocked to the respective endpoint.CustomExplorerChart.vue(Chart.js wrapper),ChartLegend.vue(per-series hide/show + line/bar toggle).Reports.vueslimmed from 868 lines to 60 lines — now just tab navigation delegating to components.getAnalytics()action (mirrors calls/cases stores).Test plan
/reports→ Custom Explorer tab → select a data source, time period, and Y-axis filter; verify chart and table render/calls→ click Reports button; verify CustomExplorer renders with calls data locked/cases→ click Reports button; verify CustomExplorer renders with cases data locked/reports🤖 Generated with Claude Code