async function deleteNode()

in web/js/node-view.js [13:57]


async function deleteNode(graph, node) {
    const deleteResult = await del("node-delete", node.id, graph.partition)
    console.log(deleteResult)

    // Remove the node from the graph

    // First remove the edges
    let indexToDelete = -1
    do {
        indexToDelete = -1
        for (let i = 0; i < graph.data.edges.length; i++) {
            let edge = graph.data.edges[i]
            if (edge.to === node.id || edge.from === node.id) {
                indexToDelete = i
                break
            }
        }
        if (indexToDelete > -1) {
            graph.data.edges.splice(indexToDelete, 1)
        }
    } while (indexToDelete > -1)

    // Remove the node
    indexToDelete = -1
    for (let i = 0; i < graph.data.nodes.length; i++) {
        let nodeToDelete = graph.data.nodes[i]
        if (nodeToDelete.id === node.id) {
            indexToDelete = i
            break
        }
    }
    if (indexToDelete > -1) {
        graph.data.nodes.splice(indexToDelete, 1)
    }

    // // Re-render the canvas
    // render(graph)

    // // Reset the property view to blank
    // viewNode(graph, null)

    // An odd bug here where all the nodes get rendered on top of each other
    // Just start over... feels like cheating but it's reliable
    window.location = "/"
}