Project

General

Profile

Actions

Bug #16981

open

Dashboard traffic graph tooltips persist after touch scrolling

Added by Andre Brait about 24 hours ago. Updated about 24 hours ago.

Status:
New
Priority:
Normal
Assignee:
-
Category:
Traffic Graphs
Target version:
-
Start date:
Due date:
% Done:

0%

Estimated time:
Plus Target Version:
Release Notes:
Default
Affected Version:
Affected Architecture:

Description

Observed on pfSense Plus 26.03.1 using a mobile touch browser.

Reproduction:
1. Add a Traffic Graphs widget to the dashboard.
2. Scroll the dashboard until a graph enters the viewport.
3. Continue scrolling until the graph leaves the viewport.
4. Tap a graph point, then scroll again.

Actual result:
  • Touch scrolling creates zero-valued NVD3 tooltips at the top-left of the viewport, piled on top of one another.
  • Tooltips remain visible after the graph leaves the viewport.
  • Tapping a real point moves one tooltip to the correct point and shows live values, but it also remains visible after scrolling.
Expected result:
  • Scrolling must not create tooltips.
  • A tooltip shown by tapping a data point must disappear when the interaction ends or the graph leaves the viewport.

Cause:
The vendored NVD3 interactive guideline reads clientX/clientY directly from TouchEvent. Those coordinates live on the active or changed touch, so the existing calculation yields invalid coordinates. The guideline also lacks touchend/touchcancel cleanup. Dashboard scrolling does not otherwise dismiss an already-visible chart tooltip.

Proposed fix:
  • Normalize TouchEvent to the active or changed touch before calculating guideline and tooltip positions.
  • Hide interactive guideline tooltips on touchend and touchcancel.
  • Hide Traffic Graphs widget tooltips on window scroll.
Validation:
  • Frozen mobile reproduction failed before the change with two persistent zero-valued tooltips.
  • The unchanged reproduction passes afterward with no tooltip left visible.
  • Tapping a real point shows one correctly positioned tooltip with live values; scrolling hides it.
  • Confirmed on the affected physical phone.

NVD3 upstream report: https://github.com/novus/nvd3/issues/2240
NVD3 upstream fix: https://github.com/novus/nvd3/pull/2241

🤖 Generated by OpenAI Codex and posted on behalf of Andre Brait.

Actions #1

Updated by Andre Brait about 24 hours ago

Fix submitted for review: https://github.com/pfsense/pfsense/pull/4759

The PR contains the vendored NVD3 touch-coordinate/lifecycle fix and the dashboard scroll cleanup. Its exact head (360849fe62a681c5a44629fe932f60b9cabe592a) is the version validated on the affected physical phone.

🤖 Generated by OpenAI Codex and posted on behalf of Andre Brait.

Actions

Also available in: Atom PDF