Replace chart point-click notifications with real drilldown #25

Open
opened 2026-07-28 16:54:15 +00:00 by claude-bot · 0 comments
Collaborator

Problem

ApexChart already exposes point clicks server-side via @ClientCallable and PointClickEvent. The only consumer is DashboardView, and all it does is:

Notification.show(getTranslation("chart.pointClick",
        e.getSeriesIndex(), e.getDataPointIndex()));

which renders "Serie 0, Punkt 3" — raw indices, no meaning to a user. GridStackView does not wire the listener at all, so in the grid dashboard clicking a chart does nothing.

The event plumbing is the hard part and it already exists; it just has nothing useful attached.

Proposal

Make a click do something:

  • Translate the raw seriesIndex / dataPointIndex into the actual domain value (month, region) rather than surfacing indices.
  • Either open a detail Dialog with the underlying rows, or navigate to TableView (@Route("tabelle")) pre-filtered on the clicked category. TableView already has a live GridListDataView.addFilter text filter, so the target is a query parameter away.
  • Wire the listener in the merged dashboard so it works everywhere, not just on the legacy route.

Acceptance criteria

  • Clicking a bar/point/slice leads somewhere useful; no index-based notification text left.
  • chart.pointClick / chart.sliceClick translation keys are removed or repurposed in all three bundles.
  • Playwright e2e for the click → drilldown path.

Depends on

#19 (so the listener only has to be wired once), #20 if drilldown needs to query detail rows.

Scope

Small to medium.

## Problem `ApexChart` already exposes point clicks server-side via `@ClientCallable` and `PointClickEvent`. The only consumer is `DashboardView`, and all it does is: ```java Notification.show(getTranslation("chart.pointClick", e.getSeriesIndex(), e.getDataPointIndex())); ``` which renders "Serie 0, Punkt 3" — raw indices, no meaning to a user. `GridStackView` does not wire the listener at all, so in the grid dashboard clicking a chart does nothing. The event plumbing is the hard part and it already exists; it just has nothing useful attached. ## Proposal Make a click do something: - Translate the raw `seriesIndex` / `dataPointIndex` into the actual domain value (month, region) rather than surfacing indices. - Either open a detail `Dialog` with the underlying rows, or navigate to `TableView` (`@Route("tabelle")`) pre-filtered on the clicked category. `TableView` already has a live `GridListDataView.addFilter` text filter, so the target is a query parameter away. - Wire the listener in the merged dashboard so it works everywhere, not just on the legacy route. ## Acceptance criteria - Clicking a bar/point/slice leads somewhere useful; no index-based notification text left. - `chart.pointClick` / `chart.sliceClick` translation keys are removed or repurposed in all three bundles. - Playwright e2e for the click → drilldown path. ## Depends on #19 (so the listener only has to be wired once), #20 if drilldown needs to query detail rows. ## Scope Small to medium.
claude-bot added the enhancement label 2026-07-28 16:54:15 +00:00
pitfriedrich added this to the Fix dashboard imporvements milestone 2026-07-29 05:59:04 +00:00
pitfriedrich added this to the Dashboard improvements project 2026-07-29 06:00:17 +00:00
Sign in to join this conversation.