[
https://issues.apache.org/jira/browse/NIFI-16172?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Matt Gilman updated NIFI-16172:
-------------------------------
Fix Version/s: 2.12.0
Resolution: Fixed
Status: Resolved (was: Patch Available)
> Multiple nifiTooltip hover tooltips can remain open at once and can get stuck
> open indefinitely
> -----------------------------------------------------------------------------------------------
>
> Key: NIFI-16172
> URL: https://issues.apache.org/jira/browse/NIFI-16172
> Project: Apache NiFi
> Issue Type: Improvement
> Components: Core UI
> Reporter: Rob Fellows
> Assignee: Rob Fellows
> Priority: Major
> Fix For: 2.12.0
>
> Time Spent: 0.5h
> Remaining Estimate: 0h
>
> h3. Problem
> The shared hover-tooltip directive
> (nifi-frontend/src/main/frontend/libs/shared/src/directives/nifi-tooltip.directive.ts)
> can leave multiple tooltips visible on screen at the same time, and in some
> cases a tooltip can remain open indefinitely after the pointer has moved away.
> This is most visible on listing tables that render small icons with hover
> tooltips in a "more details"-style column — e.g. Controller Services,
> Reporting Tasks, Parameter Providers, Connectors, and the Controller Service
> references list — where the icons for comments, validation errors, and
> bulletins sit close together. Sweeping the pointer down or across a column of
> these icons can leave several tooltips stacked on top of one another, and
> occasionally one lingers until another tooltip is opened or the view is
> destroyed.
> A related, secondary symptom: when a tooltip's content is long enough to
> scroll (validation errors, comments, and bulletins render inside a scrollable
> container capped by {{max-height}}), the interaction that is supposed to let
> a user move the pointer onto the tooltip to read/scroll it is fragile — the
> tooltip can disappear before the pointer reaches it, or (conversely) fail to
> close afterward.
> h3. Steps to Reproduce
> Open a listing with several components that have validation errors, comments,
> or bulletins (e.g. the Controller Services listing).
> Hover the warning/comment/bulletin icons and move the pointer between
> adjacent rows/icons at a normal-to-fast pace.
> Observe that more than one tooltip can be visible simultaneously, and that a
> tooltip can remain on screen after the pointer is no longer over its trigger.
> h3. Impact
> Purely a UI/UX defect (no data or security impact), but the
> stacked/overlapping tooltips obscure the table, look broken, and make long
> validation/error messages hard to read.
> h3. Root cause (analysis)
> The directive tracks "pointer is over the tooltip" with a cached boolean that
> is set/cleared by the overlay's own {{mouseenter}}/{{mouseleave}} listeners,
> and its close logic is gated on that flag. Because
> {{mouseenter}}/{{mouseleave}} are only reliably balanced when elements aren't
> being dynamically attached/detached or covered by other overlays, the cached
> flag can get "stuck", after which the close path is suppressed. There is also
> no notion of a single active tooltip, so independent directive instances
> don't coordinate and can each remain open.
> h3. Possible direction (non-prescriptive)
> Any robust fix should make open/close decisions resilient to dropped or
> coalesced pointer events rather than relying solely on a cached hover flag,
> and should ensure the UI doesn't accumulate multiple simultaneously-visible
> tooltips. Exact approach is open to the implementer.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)