working group drag
This commit is contained in:
@@ -30,7 +30,8 @@ $.getJSON('[% uri_for('/ajax/data/device/netmap') %]', {q: '[% params.q %]'}, fu
|
|||||||
.height( window.innerHeight - 100 )
|
.height( window.innerHeight - 100 )
|
||||||
.showSelfLinks(true)
|
.showSelfLinks(true)
|
||||||
.minZoomFactor(0.1)
|
.minZoomFactor(0.1)
|
||||||
.maxZoomFactor(10);
|
.maxZoomFactor(10)
|
||||||
|
.charge(-550);
|
||||||
|
|
||||||
jQuery('#nd_sidebar-toggle-img-in').on("click", resizeGraphContainer);
|
jQuery('#nd_sidebar-toggle-img-in').on("click", resizeGraphContainer);
|
||||||
jQuery('#nd_sidebar-toggle-img-out').on("click", resizeGraphContainer);
|
jQuery('#nd_sidebar-toggle-img-out').on("click", resizeGraphContainer);
|
||||||
@@ -38,37 +39,37 @@ $.getJSON('[% uri_for('/ajax/data/device/netmap') %]', {q: '[% params.q %]'}, fu
|
|||||||
|
|
||||||
graph.inspect().main.force.on('end.setupfornetdisco', function() {
|
graph.inspect().main.force.on('end.setupfornetdisco', function() {
|
||||||
graph.inspect().main.nodes.each(function(n) { n.fixed = true });
|
graph.inspect().main.nodes.each(function(n) { n.fixed = true });
|
||||||
|
graph['nd2'] = {};
|
||||||
|
graph['nd2']['dragging'] = false;
|
||||||
|
|
||||||
graph.inspect().main.nodes.on('mouseup.dragall', function() {
|
graph.inspect().main.nodes.on('mouseup.dragall', function(n) {
|
||||||
graph.inspect().main.nodes.each(function(n) {
|
graph['nd2']['dragging'] = false;
|
||||||
delete n['startX'];
|
|
||||||
delete n['startY'];
|
|
||||||
delete n['moving'];
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|
||||||
graph.inspect().main.nodes.on('mousedown.dragall', function(orig) {
|
graph.inspect().main.nodes.on('mousedown.dragall', function(n) {
|
||||||
orig['startX'] = orig.x;
|
if (this.nodeName !== 'circle') { return }
|
||||||
orig['startY'] = orig.y;
|
graph['nd2']['dragging'] = true;
|
||||||
orig['moving'] = true;
|
graph['nd2']['dragStartX'] = n.x;
|
||||||
|
graph['nd2']['dragStartY'] = n.y;
|
||||||
|
graph['nd2']['draggedNode'] = n.index;
|
||||||
});
|
});
|
||||||
|
|
||||||
graph.inspect().main.nodes.on('mousemove.dragall', function(orig) {
|
graph.inspect().main.nodes.on('mousemove.dragall', function(draggedNode) {
|
||||||
var evt = window.event;
|
var evt = window.event;
|
||||||
if (!("buttons" in evt) || (evt.buttons !== 1) || !("moving" in orig)) { return }
|
if (!("buttons" in evt) || (evt.buttons !== 1)) { return }
|
||||||
|
if (!(graph['nd2']['dragging']) || !(graph['nd2']['draggedNode'])) { return }
|
||||||
|
if (draggedNode.index !== graph['nd2']['draggedNode']) { return }
|
||||||
|
|
||||||
var dx = (orig.x - orig['startX']),
|
var dx = (draggedNode.x - graph['nd2']['dragStartX']),
|
||||||
dy = (orig.y - orig['startY']);
|
dy = (draggedNode.y - graph['nd2']['dragStartY']);
|
||||||
orig['startX'] += dx;
|
graph['nd2']['dragStartX'] += dx;
|
||||||
orig['startY'] += dy;
|
graph['nd2']['dragStartY'] += dy;
|
||||||
|
|
||||||
graph.inspect().main.nodes
|
graph.inspect().main.nodes
|
||||||
.filter(function(n) { return (n.selected && (n.index !== orig.index)) })
|
.filter(function(n) { return (n.selected && (n.index !== draggedNode.index)) })
|
||||||
.each(function(n) {
|
.each(function(n) {
|
||||||
graph.inspect().main.force.stop();
|
|
||||||
n.x += dx; n.y += dy;
|
n.x += dx; n.y += dy;
|
||||||
n.px += dx; n.py += dy;
|
n.px += dx; n.py += dy;
|
||||||
graph.inspect().main.force.resume();
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user