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 ) | ||||
|       .showSelfLinks(true) | ||||
|       .minZoomFactor(0.1) | ||||
|       .maxZoomFactor(10); | ||||
|       .maxZoomFactor(10) | ||||
|       .charge(-550); | ||||
|  | ||||
|     jQuery('#nd_sidebar-toggle-img-in').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.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.each(function(n) { | ||||
|           delete n['startX']; | ||||
|           delete n['startY']; | ||||
|           delete n['moving']; | ||||
|         }); | ||||
|       graph.inspect().main.nodes.on('mouseup.dragall', function(n) { | ||||
|         graph['nd2']['dragging'] = false; | ||||
|       }); | ||||
|  | ||||
|       graph.inspect().main.nodes.on('mousedown.dragall', function(orig) { | ||||
|         orig['startX'] = orig.x; | ||||
|         orig['startY'] = orig.y; | ||||
|         orig['moving'] = true; | ||||
|       graph.inspect().main.nodes.on('mousedown.dragall', function(n) { | ||||
|         if (this.nodeName !== 'circle') { return } | ||||
|         graph['nd2']['dragging'] = 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; | ||||
|         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']), | ||||
|             dy = (orig.y - orig['startY']); | ||||
|         orig['startX'] += dx; | ||||
|         orig['startY'] += dy; | ||||
|         var dx = (draggedNode.x - graph['nd2']['dragStartX']), | ||||
|             dy = (draggedNode.y - graph['nd2']['dragStartY']); | ||||
|         graph['nd2']['dragStartX'] += dx; | ||||
|         graph['nd2']['dragStartY'] += dy; | ||||
|  | ||||
|         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) { | ||||
|               graph.inspect().main.force.stop(); | ||||
|               n.x += dx; n.y += dy; | ||||
|               n.px += dx; n.py += dy; | ||||
|               graph.inspect().main.force.resume(); | ||||
|           }); | ||||
|       }); | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user