From e912f77f13ff602b2b3e9a0ccf3af00e9ad349d0 Mon Sep 17 00:00:00 2001 From: Matt Huntington Date: Wed, 24 Aug 2016 15:25:17 -0400 Subject: [PATCH] dragging functionality --- public/js/app.js | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/public/js/app.js b/public/js/app.js index b7ac8cc..7de9e26 100644 --- a/public/js/app.js +++ b/public/js/app.js @@ -41,6 +41,37 @@ var render = function(){ .header("Content-Type", "application/json") //we're sending data .send('DELETE', render); //send a DELETE request }); + + //.... + //define callbacks for dragging + var dragEnd = function(d){ //d is the data for the dragged object + var x = d3.event.x; + var y = d3.event.y; + + var date = convertXDataPointToVisualPoint.invert(x); + var distance = convertYDataPointToVisualPoint.invert(y); + + d.date = date; + d.distance = distance; + + d3.request('/runs/'+d.id) + .header("Content-Type","application/json") //we're sending JSON + .send('PUT', JSON.stringify(d), render);//pass alterted 'd' object to API + } + var drag = function(d){ //d is the data for the dragged object + var x = d3.event.x; //x position of cursor + var y = d3.event.y; //y position of cursor + d3.select(this).attr('cx', x); + d3.select(this).attr('cy', y); + } + //create the behavior + var dragBehavior = d3.drag() + // .on('start', dragStart) + .on('drag', drag) + .on('end', dragEnd); + //... + //apply it to a selection + d3.selectAll('circle').call(dragBehavior); }); };