diff --git a/editor/js/tools/deletetool.js b/editor/js/tools/deletetool.js index 97a420b1b2fcc7552733116939cd2d57a711ef66..44cfdc3ce1af5c77007a943501384f7423ebb020 100644 --- a/editor/js/tools/deletetool.js +++ b/editor/js/tools/deletetool.js @@ -21,7 +21,7 @@ export default class DeleteTool extends Tool { onBoxSelect(left, bottom, top, right) { // Filter out selected nodes - const hitNodes = []; + const selectedNodes = []; const tl = renderer.screen2GraphCoords(left, top); const br = renderer.screen2GraphCoords(right, bottom); graph.data[Graph.GRAPH_NODES].forEach((node) => { @@ -31,13 +31,25 @@ export default class DeleteTool extends Tool { br.y > node.y && node.y > tl.y ) { - hitNodes.push(node); + selectedNodes.push(node); } }); - // Delete selected items after confirmation - console.log("DELETE"); - console.log(hitNodes); + // Was anything even selected? + if (selectedNodes.length <= 0) { + return; + } + + // Ask for confirmation to delete + var nodeNames = selectedNodes.map((n) => n[Graph.NODE_LABEL]); + //! Problem: If browser is not actually showing the alerts, it always returns false! + var shouldDelete = confirm("Do you wanna delete all these nodes:\n\n" + nodeNames.join("\n")) + + // Delete if confirmed + if (shouldDelete) { + var nodeIds = selectedNodes.map((n) => n[Graph.NODE_ID]); + graph.deleteNodes(nodeIds); + } } onNodeClick(node) {