Fixed that release to connect branch issue
This commit is contained in:
@@ -5650,16 +5650,15 @@ const releaseToConnectLabel = "Release to Connect"
|
|||||||
|
|
||||||
// Checks for errors in edges when they're added
|
// Checks for errors in edges when they're added
|
||||||
const onEdgeAdded = (event) => {
|
const onEdgeAdded = (event) => {
|
||||||
setLastSaved(false);
|
const edge = event.target.data()
|
||||||
const edge = event.target.data();
|
//console.log("EDGE ADDED!: ", edge)
|
||||||
|
|
||||||
//console.log("edge added: ", edge)
|
|
||||||
if (edge.source === undefined && edge.target === undefined) {
|
if (edge.source === undefined && edge.target === undefined) {
|
||||||
|
// console.log("Edge source and target is undefined")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if (edge.readded === true) {
|
if (edge.readded === true) {
|
||||||
console.log("Readded edge - stopping")
|
// console.log("Readded edge - stopping")
|
||||||
|
|
||||||
event.target.data("readded", false)
|
event.target.data("readded", false)
|
||||||
return
|
return
|
||||||
@@ -5668,6 +5667,7 @@ const releaseToConnectLabel = "Release to Connect"
|
|||||||
const sourcenode = cy.getElementById(edge.source)
|
const sourcenode = cy.getElementById(edge.source)
|
||||||
const destinationnode = cy.getElementById(edge.target)
|
const destinationnode = cy.getElementById(edge.target)
|
||||||
if (sourcenode === undefined || sourcenode === null || destinationnode === undefined || destinationnode === null) {
|
if (sourcenode === undefined || sourcenode === null || destinationnode === undefined || destinationnode === null) {
|
||||||
|
// console.log("Source or destination node is undefined")
|
||||||
} else {
|
} else {
|
||||||
//console.log("Edge added: Is it a trigger? If so, check if it already has a branch and remove it: ", sourcenode.data())
|
//console.log("Edge added: Is it a trigger? If so, check if it already has a branch and remove it: ", sourcenode.data())
|
||||||
if (sourcenode.data("type") === "TRIGGER") {
|
if (sourcenode.data("type") === "TRIGGER") {
|
||||||
@@ -5680,17 +5680,17 @@ const releaseToConnectLabel = "Release to Connect"
|
|||||||
|
|
||||||
console.log("Node: ", targetedge)
|
console.log("Node: ", targetedge)
|
||||||
if (targetedge !== -1) {
|
if (targetedge !== -1) {
|
||||||
event.target.remove()
|
|
||||||
|
|
||||||
//console.log("Found branch already!")
|
//console.log("Found branch already!")
|
||||||
toast.error("Triggers can have exactly one target node")
|
toast.error("Triggers can have exactly one target node")
|
||||||
|
event.target.remove()
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
// name: "Shuffle Workflow",
|
// name: "Shuffle Workflow",
|
||||||
// name: "User Input",
|
// name: "User Input",
|
||||||
} else {
|
} else {
|
||||||
console.log("Node doesn't already have one")
|
// console.log("Node doesn't already have one")
|
||||||
}
|
}
|
||||||
}, 50)
|
}, 50)
|
||||||
}
|
}
|
||||||
@@ -5704,6 +5704,10 @@ const releaseToConnectLabel = "Release to Connect"
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (edge.decorator === true) {
|
||||||
|
// console.log("Doing nothing to branch because decorator")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
var targetnode = workflow.triggers.findIndex(
|
var targetnode = workflow.triggers.findIndex(
|
||||||
(data) => data.id === edge.target
|
(data) => data.id === edge.target
|
||||||
@@ -5721,7 +5725,7 @@ const releaseToConnectLabel = "Release to Connect"
|
|||||||
if (eventTarget.data("isButton") === true) {
|
if (eventTarget.data("isButton") === true) {
|
||||||
const parentNode = cy.getElementById(eventTarget.data("attachedTo"))
|
const parentNode = cy.getElementById(eventTarget.data("attachedTo"))
|
||||||
event.target.remove()
|
event.target.remove()
|
||||||
console.log("Setting it to parentnode: ", parentNode.data())
|
// console.log("Setting it to parentnode: ", parentNode.data())
|
||||||
if (parentNode !== undefined && parentNode !== null) {
|
if (parentNode !== undefined && parentNode !== null) {
|
||||||
//event.target.data("target", eventTarget.data("attachedTo"))
|
//event.target.data("target", eventTarget.data("attachedTo"))
|
||||||
|
|
||||||
@@ -5743,15 +5747,14 @@ const releaseToConnectLabel = "Release to Connect"
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (
|
if (eventTarget.data("isDescriptor") === true || eventTarget.data("type") === "COMMENT") {
|
||||||
eventTarget.data("isDescriptor") === true ||
|
// console.log("Removing because of descriptor or comment")
|
||||||
eventTarget.data("type") === "COMMENT"
|
event.target.remove()
|
||||||
) {
|
return
|
||||||
console.log("Removing because of descriptor or comment")
|
|
||||||
event.target.remove();
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
setLastSaved(false)
|
||||||
targetnode = -1;
|
targetnode = -1;
|
||||||
|
|
||||||
// Check if:
|
// Check if:
|
||||||
@@ -5759,38 +5762,51 @@ const releaseToConnectLabel = "Release to Connect"
|
|||||||
// dest == dest && source == source
|
// dest == dest && source == source
|
||||||
// backend: check all children? to stop recursion
|
// backend: check all children? to stop recursion
|
||||||
var found = false;
|
var found = false;
|
||||||
for (let branchkey in workflow.branches) {
|
const branches = cy.edges().jsons()
|
||||||
if (
|
|
||||||
workflow.branches[branchkey].destination_id === edge.source &&
|
const startNode = cy.nodes().jsons().find((node) => node.data.isStartNode === true)
|
||||||
workflow.branches[branchkey].source_id === edge.target
|
var startnodeId = workflow.start
|
||||||
) {
|
if (startNode !== undefined && startNode !== null) {
|
||||||
toast("A branch in the opposite direction already exists");
|
startnodeId = startNode.data.id
|
||||||
event.target.remove();
|
}
|
||||||
found = true;
|
|
||||||
break;
|
//for (let branchkey in workflow.branches) {
|
||||||
} else if (
|
for (let branchkey in branches) {
|
||||||
workflow.branches[branchkey].destination_id === edge.target &&
|
const branch = branches[branchkey].data
|
||||||
workflow.branches[branchkey].source_id === edge.source
|
|
||||||
) {
|
//if (workflow.branches[branchkey].destination_id === edge.source && workflow.branches[branchkey].source_id === edge.target) {
|
||||||
//toast("That branch already exists");
|
if (branch.target === edge.source && branch.source === edge.target) {
|
||||||
event.target.remove();
|
toast("A branch in the opposite direction already exists")
|
||||||
|
event.target.remove()
|
||||||
|
found = true
|
||||||
|
break
|
||||||
|
|
||||||
|
//} else if (workflow.branches[branchkey].destination_id === edge.target && workflow.branches[branchkey].source_id === edge.source) {
|
||||||
|
} else if (branch.target === edge.target && branch.source === edge.source) {
|
||||||
|
|
||||||
|
if (branch.conditions === undefined) {
|
||||||
|
// Edgehandles
|
||||||
|
} else {
|
||||||
|
// console.log("Removing because the same branch already exists")
|
||||||
|
event.target.remove()
|
||||||
|
|
||||||
|
found = true
|
||||||
|
break
|
||||||
|
}
|
||||||
|
} else if (edge.target === startnodeId) {
|
||||||
|
targetnode = workflow.triggers.findIndex((data) => data.id === edge.source)
|
||||||
|
|
||||||
found = true;
|
|
||||||
break;
|
|
||||||
} else if (edge.target === workflow.start) {
|
|
||||||
targetnode = workflow.triggers.findIndex(
|
|
||||||
(data) => data.id === edge.source
|
|
||||||
);
|
|
||||||
if (targetnode === -1) {
|
if (targetnode === -1) {
|
||||||
if (targetnode.type !== "TRIGGER") {
|
if (targetnode.type !== "TRIGGER") {
|
||||||
toast("Can't make arrow to starting node");
|
toast("Can't make arrow to starting node")
|
||||||
event.target.remove();
|
event.target.remove()
|
||||||
break;
|
break
|
||||||
}
|
}
|
||||||
|
|
||||||
found = true;
|
found = true;
|
||||||
}
|
}
|
||||||
} else if (edge.source === workflow.branches[branchkey].source_id) {
|
//} else if (edge.source === workflow.branches[branchkey].source_id) {
|
||||||
|
} else if (edge.source === branch.source) {
|
||||||
// FIXME: Verify multi-target for triggers
|
// FIXME: Verify multi-target for triggers
|
||||||
// 1. Check if destination exists
|
// 1. Check if destination exists
|
||||||
// 2. Check if source is a trigger
|
// 2. Check if source is a trigger
|
||||||
@@ -5834,7 +5850,6 @@ const releaseToConnectLabel = "Release to Connect"
|
|||||||
newdst !== null
|
newdst !== null
|
||||||
) {
|
) {
|
||||||
const dstdata = RunAutocompleter(newdst.data());
|
const dstdata = RunAutocompleter(newdst.data());
|
||||||
//console.log("DST Autocompleter: ", dstdata);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var newbranch = {
|
var newbranch = {
|
||||||
|
|||||||
Reference in New Issue
Block a user