PHUIBadgeView is used for badge cards, where the card flips over if a user clicks on it. Currently, the click listener flips the card over not matter what. If the click came from a link click on the card, the card should not flip over.
Original discussion in D15570:
For the clicking thing, I think we have to write custom JS. Currently, it's powered by a simple behavior (jx-toggle-class) in PHUIBadgeView, which just says "toggle this CSS class on/off when the thing is clicked".
There's no way to make this behavior more complex/subtle (e.g., ignore clicks on links) and it's important that it not ignore clicks on links in all cases because it also powers stuff like "Show/Hide Details" links elsewhere.
So this probably boils down to:
- Write a new behavior which does the toggling.
- It can mostly work like jx-toggle-class, but can probably be a bit simpler since it's custom.
- It should ignore clicks on links inside the card.
This seems fine to push to a future diff to me.
To check if something is a click on a link, you'll do something like this:
JX.Stratcom.listen('badge-view', 'click', function(e) { if (e.getNode('tag:a')) { // If the event has a 'tag:a' node on it, that means the user // either clicked a link or some other node inside a link. return; } // ... });