Skip to content

Add Custom Explorer reports with v1 feature parity#502

Open
K-NURF wants to merge 6 commits intomainfrom
fix--helpline-v2-updates
Open

Add Custom Explorer reports with v1 feature parity#502
K-NURF wants to merge 6 commits intomainfrom
fix--helpline-v2-updates

Conversation

@K-NURF
Copy link
Copy Markdown
Collaborator

@K-NURF K-NURF commented Mar 13, 2026

Summary

  • New CustomExplorer component: Full-featured analytics explorer extracted from Reports.vue, replacing the hand-rolled SVG chart with Chart.js (bar, line, pie, doughnut). Fixes a store pollution bug where listCalls/listCases were being called for analytics, corrupting the list page pagination state — now uses stateless getAnalytics().
  • Reports tab on Calls and Cases pages: Both pages now have a Reports button in their view toggle that renders a CustomExplorer locked to the respective endpoint.
  • Feature parity with v1: Sort by name/total, value functions (Count / % / Cumulative / Cumul%), XLSX export (lazy-loaded), multi-series charts when multiple Y-axis filters are selected, PNG download.
  • New components: CustomExplorerChart.vue (Chart.js wrapper), ChartLegend.vue (per-series hide/show + line/bar toggle).
  • Reports.vue slimmed from 868 lines to 60 lines — now just tab navigation delegating to components.
  • QA store: Added stateless getAnalytics() action (mirrors calls/cases stores).

Test plan

  • Navigate to /reports → Custom Explorer tab → select a data source, time period, and Y-axis filter; verify chart and table render
  • Verify Sort (Name/Total) and Show (Count/% /Cumul/Cumul%) controls change table output
  • Click CSV and XLSX export buttons; verify files download correctly
  • Navigate to /calls → click Reports button; verify CustomExplorer renders with calls data locked
  • Navigate to /cases → click Reports button; verify CustomExplorer renders with cases data locked
  • Switch back from Reports to Timeline/Table on both pages; verify pagination reappears and list data is unaffected (no store pollution)
  • Toggle dark/light mode; verify chart and table styling updates correctly
  • Verify VUA Quarterly, CHI Standard Reports, and Website Statistics tabs still work in /reports

🤖 Generated with Claude Code

K-NURF and others added 6 commits February 10, 2026 14:23
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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant