Made triggers only able to have one branch

This commit is contained in:
frikky
2022-08-06 00:30:07 +02:00
parent 4ae090e050
commit bf81b04fe4
2 changed files with 45 additions and 7 deletions
+42 -5
View File
@@ -1703,10 +1703,11 @@ const AngularWorkflow = (defaultprops) => {
if (responseJson.files !== undefined && responseJson.files !== null) {
setFiles(responseJson);
} else {
setFiles({"namespaces": []});
setFiles({"namespaces": [
"default"
]});
}
console.log("NAMESPACES: ", responseJson.namespaces);
if (
responseJson.namespaces !== undefined &&
responseJson.namespaces !== null
@@ -3180,18 +3181,53 @@ const AngularWorkflow = (defaultprops) => {
setLastSaved(false);
const edge = event.target.data();
console.log("edge: ", edge)
if (edge.source === undefined && edge.target === undefined) {
return
}
const sourcenode = cy.getElementById(edge.source)
const destinationnode = cy.getElementById(edge.target)
if (sourcenode === undefined || sourcenode === null || destinationnode === undefined || destinationnode === null) {
} else {
console.log("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("app_name") !== "Shuffle Workflow" && sourcenode.data("app_name") !== "User Input") {
setTimeout(() => {
const alledges = cy.edges().jsons()
console.log("edges: ", alledges, edge)
var targetedge = alledges.findIndex(
(data) => data.data.source === edge.source && data.data.id !== edge.id
)
console.log("Node: ", targetedge)
if (targetedge !== -1) {
event.target.remove()
//console.log("Found branch already!")
alert.info("Triggers can have exactly one target node")
return
// name: "Shuffle Workflow",
// name: "User Input",
} else {
console.log("Node doesn't already have one")
}
}, 50)
}
}
const edgeCurve = calculateEdgeCurve(sourcenode.position(), destinationnode.position())
const currentedge = cy.getElementById(edge.id)
if (currentedge !== undefined && currentedge !== null) {
currentedge.style('control-point-distance', edgeCurve.distance)
currentedge.style('control-point-weight', edgeCurve.weight)
}
}
var targetnode = workflow.triggers.findIndex(
(data) => data.id === edge.target
);
@@ -3545,10 +3581,10 @@ const AngularWorkflow = (defaultprops) => {
// trigger as source check
const indexcheck = workflow.triggers.findIndex(
(data) => edge.data()["source"] === data.id
(data) => edge.data("source") === data.id
);
if (indexcheck !== -1) {
console.log("Shouldnt remove edge from trigger");
console.log("Shouldnt remove edge from trigger? ");
}
if (edge.data().source !== undefined) {
@@ -4717,12 +4753,13 @@ const AngularWorkflow = (defaultprops) => {
return false
},
preview: true,
preview: false,
toggleOffOnLeave: true,
loopAllowed: function (node) {
return false;
},
});
// preview: true,
cy.fit(null, 200);