Status: Don't toggle panel when clicking patch link

Each patchset panel is clickable in its entirety. Clicks anywhere
on the header of the widget propagate to the wrapper element and
result in the panel being toggled.

This works as expected when clicking on non-interactive areas,
such as the title, ETA, background, or progress bar.

However, this doesn't work as expected when clicking on the
Gerrit patch link, which inadvertently also causes the panel
to be toggled.

Add logic to the click event handler to ignore the event if it
bubbled up from an anchor link.

Test Plan:
* http://localhost/zuul/etc/status/public_html/?demo=basic
* Click on a Gerrit patch link (e.g. "10101,1") in a panel.

Previously, it triggers a panel toggle. Now it doesn't.
Clicking elsewhere still toggles the panel.

Cherry-picked from: Ifadf3dfabfc361e1e7d775a62c4c2643b0e2b2c2

Change-Id: Ifadf3dfabfc361e1e7d775a62c4c2643b0e2b2c2
This commit is contained in:
Timo Tijhof 2017-09-19 19:46:09 +01:00 committed by David Shrewsbury
parent 9a2362d55a
commit 0445c277eb
1 changed files with 5 additions and 0 deletions

View File

@ -569,6 +569,11 @@
// Toggle showing/hiding the patchset when the header is
// clicked.
if (e.target.nodeName.toLowerCase() === 'a') {
// Ignore clicks from gerrit patch set link
return;
}
// Grab the patchset panel
var $panel = $(e.target).parents('.zuul-change');
var $body = $panel.children('.zuul-patchset-body');