Workflow fixes

This commit is contained in:
Frikky
2024-11-30 14:42:34 +01:00
parent cf7d744273
commit fd79033424
4 changed files with 147 additions and 20 deletions
+2 -2
View File
@@ -665,9 +665,9 @@ const ParsedAction = (props) => {
let regex = /(^|[^\\])\$/; let regex = /(^|[^\\])\$/;
if (regex.test(paramvalue)) { if (regex.test(paramvalue)) {
if(message.length > 0){ if(message.length > 0){
message += "\nUse \"\\$\" instead of \"$\"."; message += "\nUse \"\\$\" instead of \"$\" if you want to escape $ (1)";
}else{ }else{
message = "Use \"\\$\" instead of \"$\" to escape variables."; message = "Use \"\\$\" instead of \"$\" if you want to escape $ (2)";
} }
} }
} }
@@ -1649,7 +1649,7 @@ const CodeEditor = (props) => {
</div> </div>
{isFileEditor ? null : {isFileEditor ? null :
<div style={{flex: 1, marginLeft: 5, borderLeft: "1px solid rgba(255,255,255,0.3)", paddingLeft: 5, }}> <div style={{flex: 1, marginLeft: 5, borderLeft: "1px solid rgba(255,255,255,0.3)", paddingLeft: 5, overflow: "hidden", }}>
<div> <div>
{isMobile ? null : {isMobile ? null :
<DialogTitle <DialogTitle
+1 -6
View File
@@ -156,11 +156,6 @@ const data = [
"background-gradient-stop-colors": "data(fillGradient)", "background-gradient-stop-colors": "data(fillGradient)",
}, },
}, },
{
selector: `node[?parent_controlled]`,
css: {
},
},
{ {
selector: `node[app_name="Testing"]`, selector: `node[app_name="Testing"]`,
css: { css: {
@@ -300,7 +295,7 @@ const data = [
{ {
selector: "node[!is_valid]", selector: "node[!is_valid]",
css: { css: {
"border-color": "red", "border-color": "#f53434",
"border-width": "10px", "border-width": "10px",
}, },
}, },
+143 -11
View File
@@ -2233,9 +2233,68 @@ const releaseToConnectLabel = "Release to Connect"
workflow.actions[actionkey].is_valid = true; workflow.actions[actionkey].is_valid = true;
workflow.actions[actionkey].errors = []; workflow.actions[actionkey].errors = [];
} }
} else {
responseJson.errors.map((error) => {
// Find the word itself
const wordsplit = error.split(" ")
if (wordsplit.length < 2) {
return
}
var word = ""
var isaction = false
for (var mapkey in wordsplit) {
const inword = wordsplit[mapkey]
if (isaction === true) {
word = inword
break
}
if (inword.toLowerCase() === "action") {
isaction = true
}
}
if (word === "") {
return
}
const foundnode = cy.nodes().find((node) => {
const nodelabel = node.data("label")
if (nodelabel === undefined || nodelabel === null) {
return false
}
return nodelabel.toLowerCase() === word.toLowerCase()
})
if (foundnode !== undefined && foundnode !== null) {
foundnode.data("is_valid", false)
// FIXME: Maybe append?
foundnode.data("errors", [error])
const parsedStyle = {
"border-width": "10px",
"border-opacity": ".9",
"border-color": red,
}
const animationDuration = 150
foundnode.animate(
{
style: parsedStyle,
},
{
duration: animationDuration,
}
)
}
})
} }
setWorkflow(workflow); setWorkflow(workflow)
} }
setTimeout(() => { setTimeout(() => {
@@ -5051,7 +5110,7 @@ const releaseToConnectLabel = "Release to Connect"
newNodeData.position = { newNodeData.position = {
x: newNodeData.position.x + 100, x: newNodeData.position.x + 100,
y: newNodeData.position.y + 100, y: newNodeData.position.y + 100,
}; }
} }
newNodeData.isStartNode = false; newNodeData.isStartNode = false;
@@ -7984,11 +8043,17 @@ const releaseToConnectLabel = "Release to Connect"
node.data.type = "ACTION"; node.data.type = "ACTION";
node.isStartNode = action["id"] === inputworkflow.start; node.isStartNode = action["id"] === inputworkflow.start;
if (node.data.errors !== undefined && node.data.errors !== null && node.data.errors.length > 0) {
node.data.is_valid = false
node.is_valid = false
}
if (inputworkflow.public === true) { if (inputworkflow.public === true) {
node.data.is_valid = true node.data.is_valid = true
node.is_valid = true node.is_valid = true
} }
var example = ""; var example = "";
if ( if (
action.example !== undefined && action.example !== undefined &&
@@ -8000,6 +8065,42 @@ const releaseToConnectLabel = "Release to Connect"
node.data.example = example; node.data.example = example;
if (inputworkflow?.id !== undefined && originalWorkflow?.id !== undefined && inputworkflow?.id !== originalWorkflow?.id && originalWorkflow.actions !== undefined && originalWorkflow.actions !== null && originalWorkflow.actions.length > 0) {
// Find the node in the original workflow
var inParent = false
for (var i = 0; i < originalWorkflow.actions.length; i++) {
const originalAction = originalWorkflow.actions[i]
if (originalAction.id === action.id) {
inParent = true
break
}
}
if (inParent === true) {
setTimeout(() => {
const foundnode = cy.getElementById(action.id)
if (foundnode !== undefined && foundnode !== null) {
const parsedStyle = {
"border-width": "3px",
"border-opacity": "1",
"border-color": "#40E0D0",
"opacity": "0.4",
}
const animationDuration = 150
foundnode.animate(
{
style: parsedStyle,
},
{
duration: animationDuration,
}
)
}
}, 500)
}
}
return node return node
}) })
@@ -8073,6 +8174,42 @@ const releaseToConnectLabel = "Release to Connect"
node.data.id = trigger["id"]; node.data.id = trigger["id"];
node.data.type = "TRIGGER"; node.data.type = "TRIGGER";
if (inputworkflow?.id !== undefined && originalWorkflow?.id !== undefined && inputworkflow?.id !== originalWorkflow?.id && originalWorkflow.triggers !== undefined && originalWorkflow.triggers !== null && originalWorkflow.triggers.length > 0) {
// Find the node in the original workflow
var inParent = false
for (var i = 0; i < originalWorkflow.triggers.length; i++) {
const originalAction = originalWorkflow.triggers[i]
if (originalAction.id === trigger.id) {
inParent = true
break
}
}
if (inParent === true) {
setTimeout(() => {
const foundnode = cy.getElementById(trigger.id)
if (foundnode !== undefined && foundnode !== null) {
const parsedStyle = {
"border-width": "3px",
"border-opacity": "1",
"border-color": "#40E0D0",
"opacity": "0.4",
}
const animationDuration = 150
foundnode.animate(
{
style: parsedStyle,
},
{
duration: animationDuration,
}
)
}
}, 500)
}
}
return node; return node;
}); });
@@ -16002,6 +16139,8 @@ const releaseToConnectLabel = "Release to Connect"
//} //}
} }
navigate(`?org_id=${e.target.value}`)
// Unselect in cy // Unselect in cy
if (cy !== undefined && cy !== null) { if (cy !== undefined && cy !== null) {
cy.nodes().unselect() cy.nodes().unselect()
@@ -16031,9 +16170,8 @@ const releaseToConnectLabel = "Release to Connect"
//toast("Loading correct info for suborg") //toast("Loading correct info for suborg")
} }
console.log("Original: ", originalWorkflow)
if (originalWorkflow.childorg_workflow_ids === undefined || originalWorkflow.childorg_workflow_ids === null || originalWorkflow.childorg_workflow_ids.length === 0) { if (originalWorkflow.childorg_workflow_ids === undefined || originalWorkflow.childorg_workflow_ids === null || originalWorkflow.childorg_workflow_ids.length === 0) {
console.log("In childorg doesn't exist. Suborgworkflows: ", suborgWorkflows) //console.log("Childorg doesn't exist (?). Suborgworkflows: ", suborgWorkflows)
if (suborgWorkflows !== undefined && suborgWorkflows !== null && suborgWorkflows.length > 0) { if (suborgWorkflows !== undefined && suborgWorkflows !== null && suborgWorkflows.length > 0) {
var found = false var found = false
@@ -16161,7 +16299,7 @@ const releaseToConnectLabel = "Release to Connect"
} }
</div> </div>
<div style={{display: "flex", marginLeft: 10, pointerEvents: "auto", }}> <div style={{display: "flex", marginLeft: 10, maxWidth: 250, pointerEvents: "auto", }}>
{parentWorkflows.slice(0,5).map((wf, index) => { {parentWorkflows.slice(0,5).map((wf, index) => {
return ( return (
<a href={`/workflows/${wf.id}`} target="_blank" rel="noopener noreferrer" key={index}> <a href={`/workflows/${wf.id}`} target="_blank" rel="noopener noreferrer" key={index}>
@@ -16610,8 +16748,6 @@ const releaseToConnectLabel = "Release to Connect"
<span <span
style={{color: "#f85a3e", cursor: "pointer"}} style={{color: "#f85a3e", cursor: "pointer"}}
onClick={() => { onClick={() => {
console.log("Clicked action: ", word)
// Find it in cytoscape // Find it in cytoscape
if (cy === undefined || cy === null) { if (cy === undefined || cy === null) {
return return
@@ -16623,17 +16759,13 @@ const releaseToConnectLabel = "Release to Connect"
return false return false
} }
console.log("Node: ", nodelabel.toLowerCase(), "Word: ", word.toLowerCase())
return nodelabel.toLowerCase() === word.toLowerCase() return nodelabel.toLowerCase() === word.toLowerCase()
}) })
console.log("FOUND: ", foundnode)
if (foundnode === undefined || foundnode === null || foundnode.length === 0) { if (foundnode === undefined || foundnode === null || foundnode.length === 0) {
return return
} }
console.log("Found node: ", foundnode)
cy.elements().unselect() cy.elements().unselect()
foundnode[0].select() foundnode[0].select()
}} }}