From ca6c8118703a33a87eab098711224a93bb0f76a3 Mon Sep 17 00:00:00 2001 From: Devin Howard Date: Sat, 15 Dec 2012 14:47:04 -0500 Subject: [PATCH] pop up node creation on double click implemented. The x and y of the click are available to the function but are as yet unused --- app/assets/javascripts/Jit/graphsettings.js | 25 +++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/app/assets/javascripts/Jit/graphsettings.js b/app/assets/javascripts/Jit/graphsettings.js index 99baab02..0248841a 100644 --- a/app/assets/javascripts/Jit/graphsettings.js +++ b/app/assets/javascripts/Jit/graphsettings.js @@ -80,12 +80,12 @@ function graphSettings(type) { this.onDragMove(node, eventInfo, e); }, //Add also a click handler to nodes - onClick: function (node) { + onClick: function (node, eventInfo, e) { //clicking on a node, or clicking on blank part of canvas? if (node) { selectNodeOnClickHandler(node); } else { - createNodeOnClickHandler(); + canvasDoubleClickHandler(e); }//if }//onClick }, @@ -425,5 +425,22 @@ function selectNodeOnClickHandler(node) { }); }//selectNodeOnClickHandler -function createNodeOnClickHandler() { -}//createNodeOnClickHandler +//for the canvasDoubleClickHandler function +var canvasDoubleClickHandlerObject = new Object(); +canvasDoubleClickHandlerObject.stored_timestamp = 0; + +function canvasDoubleClickHandler(e) { + var TOLERANCE = 1000; //1 second + + //grab the location and timestamp of the click + var stored_timestamp = canvasDoubleClickHandlerObject.stored_timestamp; + var now = Date.now(); //not compatible with IE8 FYI + + if (now - stored_timestamp < TOLERANCE) { + //pop up node creation :) + $('#new_item').fadeIn('fast'); + //NOTE: we have e.x, e.y so use them!! + } else { + canvasDoubleClickHandlerObject.stored_timestamp = now; + } +}//canvasDoubleClickHandler