You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ea...@apache.org on 2018/12/11 17:54:39 UTC
qpid-dispatch git commit: DISPATCH-1169 Avoid popup appearing after
mouseout event
Repository: qpid-dispatch
Updated Branches:
refs/heads/master ff60b36af -> 716214b2d
DISPATCH-1169 Avoid popup appearing after mouseout event
Project: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/commit/716214b2
Tree: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/tree/716214b2
Diff: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/diff/716214b2
Branch: refs/heads/master
Commit: 716214b2dd5ebf9467414af2c881269c798a9c0f
Parents: ff60b36
Author: Ernest Allen <ea...@redhat.com>
Authored: Tue Dec 11 12:54:25 2018 -0500
Committer: Ernest Allen <ea...@redhat.com>
Committed: Tue Dec 11 12:54:25 2018 -0500
----------------------------------------------------------------------
.../plugin/js/topology/qdrTopology.js | 38 ++++++++++++++------
1 file changed, 27 insertions(+), 11 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/716214b2/console/stand-alone/plugin/js/topology/qdrTopology.js
----------------------------------------------------------------------
diff --git a/console/stand-alone/plugin/js/topology/qdrTopology.js b/console/stand-alone/plugin/js/topology/qdrTopology.js
index 4ada081..f7dccc9 100644
--- a/console/stand-alone/plugin/js/topology/qdrTopology.js
+++ b/console/stand-alone/plugin/js/topology/qdrTopology.js
@@ -484,6 +484,19 @@ export class TopologyController {
forceData.links.clearHighlighted();
forceData.nodes.clearHighlighted();
}
+
+ let popupCancelled = true;
+ function handleMouseOutPath(d) {
+ // mouse out of a path
+ popupCancelled = true;
+ QDRService.management.topology.delUpdatedAction(
+ "connectionPopupHTML"
+ );
+ d3.select("#popover-div").style("display", "none");
+ d.selected = false;
+ connectionPopupHTML();
+ }
+
// Takes the forceData.nodes and forceData.links array and creates svg elements
// Also updates any existing svg elements based on the updated values in forceData.nodes
// and forceData.links
@@ -535,6 +548,7 @@ export class TopologyController {
// mouse over a path
let event = d3.event;
d.selected = true;
+ popupCancelled = false;
let updateTooltip = function () {
$timeout(function () {
if (d.selected) {
@@ -545,9 +559,12 @@ export class TopologyController {
)
);
displayTooltip(event);
+ } else {
+ handleMouseOutPath(d);
}
});
};
+
// update the contents of the popup tooltip each time the data is polled
QDRService.management.topology.addUpdatedAction(
"connectionPopupHTML",
@@ -560,23 +577,14 @@ export class TopologyController {
force: true
}, {
entity: "connection"
- }],
- function () {
- updateTooltip();
- }
+ }], updateTooltip
);
// just show the tooltip with whatever data we have
updateTooltip();
restart();
})
.on("mouseout", function (d) {
- // mouse out of a path
- QDRService.management.topology.delUpdatedAction(
- "connectionPopupHTML"
- );
- d3.select("#popover-div").style("display", "none");
- d.selected = false;
- connectionPopupHTML();
+ handleMouseOutPath(d);
restart();
})
// left click a path
@@ -640,6 +648,7 @@ export class TopologyController {
"connectionPopupHTML"
);
let e = d3.event;
+ popupCancelled = false;
d.toolTip(QDRService.management.topology).then(function (toolTip) {
showToolTip(toolTip, e);
});
@@ -669,6 +678,7 @@ export class TopologyController {
$scope.current_node = null;
// unenlarge target node
d3.select("#popover-div").style("display", "none");
+ popupCancelled = true;
d3.select(this).attr("transform", "");
clearAllHighlights();
mouseover_node = null;
@@ -816,14 +826,20 @@ export class TopologyController {
function displayTooltip(event) {
$timeout(function () {
+ if (popupCancelled) {
+ d3.select("#popover-div").style("display", "none");
+ return;
+ }
let top = $("#topology").offset().top - 5;
let width = $("#topology").width();
+ // hide popup while getting its width
d3.select("#popover-div")
.style("visibility", "hidden")
.style("display", "block")
.style("left", event.pageX + 5 + "px")
.style("top", event.pageY - top + "px");
let pwidth = $("#popover-div").width();
+ // show popup
d3.select("#popover-div")
.style("visibility", "visible")
.style("left", Math.min(width - pwidth, event.pageX + 5) + "px")
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org