From 9dbdbafc6797e243ca7a6305ab9c1ed9fa93382a Mon Sep 17 00:00:00 2001 From: frikky Date: Tue, 6 Dec 2022 19:51:44 +0100 Subject: [PATCH 1/5] Fixed nightly push mechanism --- .github/push_nightly.sh | 91 +++++++++++++++++++++++++++++------------ 1 file changed, 65 insertions(+), 26 deletions(-) diff --git a/.github/push_nightly.sh b/.github/push_nightly.sh index 92d5320b..b3660193 100644 --- a/.github/push_nightly.sh +++ b/.github/push_nightly.sh @@ -2,40 +2,79 @@ # Done manually for now since GHCR isn't being pushed to easily with the current Github action CI. Nightly = Latest IF we run hotfixes on latest ### Pull latest from ghcr CI/CD -#docker pull ghcr.io/shuffle/shuffle-app_sdk:nightly -#docker pull ghcr.io/shuffle/shuffle-worker:nightly -#docker pull ghcr.io/shuffle/shuffle-orborus:nightly -#docker pull ghcr.io/shuffle/shuffle-frontend:nightly +docker pull ghcr.io/shuffle/shuffle-app_sdk:nightly +docker pull ghcr.io/shuffle/shuffle-worker:nightly +docker pull ghcr.io/shuffle/shuffle-orborus:nightly +docker pull ghcr.io/shuffle/shuffle-frontend:nightly #docker pull ghcr.io/shuffle/shuffle-backend:nightly +# +### NIGHTLY releases +docker tag ghcr.io/shuffle/shuffle-app_sdk:nightly ghcr.io/frikky/shuffle-app_sdk:nightly +docker tag ghcr.io/shuffle/shuffle-worker:nightly ghcr.io/frikky/shuffle-worker:nightly +docker tag ghcr.io/shuffle/shuffle-orborus:nightly ghcr.io/frikky/shuffle-orborus:nightly +docker tag ghcr.io/shuffle/shuffle-frontend:nightly ghcr.io/frikky/shuffle-frontend:nightly +docker tag ghcr.io/shuffle/shuffle-backend:nightly ghcr.io/frikky/shuffle-backend:nightly + +docker push ghcr.io/frikky/shuffle-app_sdk:nightly +docker push ghcr.io/frikky/shuffle-worker:nightly +docker push ghcr.io/frikky/shuffle-orborus:nightly +docker push ghcr.io/frikky/shuffle-frontend:nightly +docker push ghcr.io/frikky/shuffle-backend:nightly ### LATEST releases: -#docker tag ghcr.io/shuffle/shuffle-app_sdk:nightly ghcr.io/shuffle/shuffle-app_sdk:latest -#docker tag ghcr.io/shuffle/shuffle-worker:nightly ghcr.io/shuffle/shuffle-worker:latest -#docker tag ghcr.io/shuffle/shuffle-orborus:nightly ghcr.io/shuffle/shuffle-orborus:latest -#docker tag ghcr.io/shuffle/shuffle-frontend:nightly ghcr.io/shuffle/shuffle-frontend:latest -#docker tag ghcr.io/shuffle/shuffle-backend:nightly ghcr.io/shuffle/shuffle-backend:latest -# -#docker push ghcr.io/shuffle/shuffle-app_sdk:latest -#docker push ghcr.io/shuffle/shuffle-worker:latest -#docker push ghcr.io/shuffle/shuffle-orborus:latest -#docker push ghcr.io/shuffle/shuffle-frontend:latest -#docker push ghcr.io/shuffle/shuffle-backend:latest +## shuffle/shuffle +docker tag ghcr.io/shuffle/shuffle-app_sdk:nightly ghcr.io/shuffle/shuffle-app_sdk:latest +docker tag ghcr.io/shuffle/shuffle-worker:nightly ghcr.io/shuffle/shuffle-worker:latest +docker tag ghcr.io/shuffle/shuffle-orborus:nightly ghcr.io/shuffle/shuffle-orborus:latest +docker tag ghcr.io/shuffle/shuffle-frontend:nightly ghcr.io/shuffle/shuffle-frontend:latest +docker tag ghcr.io/shuffle/shuffle-backend:nightly ghcr.io/shuffle/shuffle-backend:latest + +docker push ghcr.io/shuffle/shuffle-app_sdk:latest +docker push ghcr.io/shuffle/shuffle-worker:latest +docker push ghcr.io/shuffle/shuffle-orborus:latest +docker push ghcr.io/shuffle/shuffle-frontend:latest +docker push ghcr.io/shuffle/shuffle-backend:latest + +## frikky/shuffle +docker tag ghcr.io/shuffle/shuffle-app_sdk:nightly ghcr.io/frikky/shuffle-app_sdk:latest +docker tag ghcr.io/shuffle/shuffle-worker:nightly ghcr.io/frikky/shuffle-worker:latest +docker tag ghcr.io/shuffle/shuffle-orborus:nightly ghcr.io/frikky/shuffle-orborus:latest +docker tag ghcr.io/shuffle/shuffle-frontend:nightly ghcr.io/frikky/shuffle-frontend:latest +docker tag ghcr.io/shuffle/shuffle-backend:nightly ghcr.io/frikky/shuffle-backend:latest + +docker push ghcr.io/frikky/shuffle-app_sdk:latest +docker push ghcr.io/frikky/shuffle-worker:latest +docker push ghcr.io/frikky/shuffle-orborus:latest +docker push ghcr.io/frikky/shuffle-frontend:latest +docker push ghcr.io/frikky/shuffle-backend:latest ### 1.1.0 releases: -#docker tag ghcr.io/shuffle/shuffle-app_sdk:nightly ghcr.io/shuffle/shuffle-app_sdk:1.1.0 -#docker tag ghcr.io/shuffle/shuffle-worker:nightly ghcr.io/shuffle/shuffle-worker:1.1.0 -#docker tag ghcr.io/shuffle/shuffle-orborus:nightly ghcr.io/shuffle/shuffle-orborus:1.1.0 -#docker tag ghcr.io/shuffle/shuffle-frontend:nightly ghcr.io/shuffle/shuffle-frontend:1.1.0 -#docker tag ghcr.io/shuffle/shuffle-backend:nightly ghcr.io/shuffle/shuffle-backend:1.1.0 -# -#docker push ghcr.io/shuffle/shuffle-app_sdk:1.1.0 -#docker push ghcr.io/shuffle/shuffle-worker:1.1.0 -#docker push ghcr.io/shuffle/shuffle-orborus:1.1.0 -#docker push ghcr.io/shuffle/shuffle-frontend:1.1.0 -#docker push ghcr.io/shuffle/shuffle-backend:1.1.0 +## shuffle/shuffle +docker tag ghcr.io/shuffle/shuffle-app_sdk:nightly ghcr.io/shuffle/shuffle-app_sdk:1.1.0 +docker tag ghcr.io/shuffle/shuffle-worker:nightly ghcr.io/shuffle/shuffle-worker:1.1.0 +docker tag ghcr.io/shuffle/shuffle-orborus:nightly ghcr.io/shuffle/shuffle-orborus:1.1.0 +docker tag ghcr.io/shuffle/shuffle-frontend:nightly ghcr.io/shuffle/shuffle-frontend:1.1.0 +docker tag ghcr.io/shuffle/shuffle-backend:nightly ghcr.io/shuffle/shuffle-backend:1.1.0 +docker push ghcr.io/shuffle/shuffle-app_sdk:1.1.0 +docker push ghcr.io/shuffle/shuffle-worker:1.1.0 +docker push ghcr.io/shuffle/shuffle-orborus:1.1.0 +docker push ghcr.io/shuffle/shuffle-frontend:1.1.0 +docker push ghcr.io/shuffle/shuffle-backend:1.1.0 +## frikky/shuffle +docker tag ghcr.io/shuffle/shuffle-app_sdk:nightly ghcr.io/frikky/shuffle-app_sdk:1.1.0 +docker tag ghcr.io/shuffle/shuffle-worker:nightly ghcr.io/frikky/shuffle-worker:1.1.0 +docker tag ghcr.io/shuffle/shuffle-orborus:nightly ghcr.io/frikky/shuffle-orborus:1.1.0 +docker tag ghcr.io/shuffle/shuffle-frontend:nightly ghcr.io/frikky/shuffle-frontend:1.1.0 +docker tag ghcr.io/shuffle/shuffle-backend:nightly ghcr.io/frikky/shuffle-backend:1.1.0 + +docker push ghcr.io/frikky/shuffle-app_sdk:1.1.0 +docker push ghcr.io/frikky/shuffle-worker:1.1.0 +docker push ghcr.io/frikky/shuffle-orborus:1.1.0 +docker push ghcr.io/frikky/shuffle-frontend:1.1.0 +docker push ghcr.io/frikky/shuffle-backend:1.1.0 ### Manage worker-scale upload (Requires auth) # This is supposed to be unavailable, and only be downloadable by customers From e26001c3356b5b8681583a9fd2b5a1d00a5255ea Mon Sep 17 00:00:00 2001 From: Dhaval Dave Date: Wed, 11 Jan 2023 13:53:55 +0000 Subject: [PATCH 2/5] fixed ConfiguredWorkflow.jsx & AngularWorkflow.jsx --- frontend/src/components/ConfigureWorkflow.jsx | 18 +- frontend/src/views/AngularWorkflow.jsx | 166 +++++++++--------- 2 files changed, 92 insertions(+), 92 deletions(-) diff --git a/frontend/src/components/ConfigureWorkflow.jsx b/frontend/src/components/ConfigureWorkflow.jsx index 0e5cc988..128f7503 100644 --- a/frontend/src/components/ConfigureWorkflow.jsx +++ b/frontend/src/components/ConfigureWorkflow.jsx @@ -129,7 +129,7 @@ const ConfigureWorkflow = (props) => { setFirstLoad(workflow.id) const newactions = []; - for (var key in workflow.actions) { + for (let [key, keyval] in workflow.actions.entries()) { const action = workflow.actions[key]; var newaction = { large_image: action.large_image, @@ -175,7 +175,7 @@ const ConfigureWorkflow = (props) => { ) { // Check if configuration is filled or not var filled = true; - for (var key in action.parameters) { + for (let [key,keyval] in action.parameters.entries()) { if (action.parameters[key].configuration) { //console.log("Found config: ", action.parameters[key]) if ( @@ -216,7 +216,7 @@ const ConfigureWorkflow = (props) => { if (newaction.must_authenticate) { var authenticationOptions = []; - for (var key in appAuthentication) { + for (let [key,keyval] in appAuthentication.entries()) { const auth = appAuthentication[key]; if (auth.app.name === app.name && auth.active) { //console.log("Found auth: ", auth) @@ -264,7 +264,7 @@ const ConfigureWorkflow = (props) => { } } - for (var key in workflow.workflow_variables) { + for (let [key,keyval] in workflow.workflow_variables.entries()) { const variable = workflow.workflow_variables[key]; if ( variable.value === undefined || @@ -277,7 +277,7 @@ const ConfigureWorkflow = (props) => { } } - for (var key in workflow.triggers) { + for (let [key,keyval] in workflow.triggers.entries()) { var trigger = workflow.triggers[key]; trigger.index = key; @@ -299,7 +299,7 @@ const ConfigureWorkflow = (props) => { } ] - for (var subkey in tmpsteps) { + for (let [subkey,subkeyval] in tmpsteps.entries()) { newactions[foundindex].steps.push(tmpsteps[subkey]) } @@ -342,11 +342,11 @@ const ConfigureWorkflow = (props) => { if (appAuthentication.length !== previousAuth.length) { var newactions = [] - for (var actionkey in requiredActions) { + for (let [actionkey, actionkeyval] in requiredActions.entries()) { var newaction = requiredActions[actionkey]; const app = newaction.app; - for (var key in appAuthentication) { + for (let [key,keyval] in appAuthentication.entries()) { const auth = appAuthentication[key]; // Does this account for all the different ones of the same? @@ -690,7 +690,7 @@ const ConfigureWorkflow = (props) => { if (workflow.actions !== null) { //console.log(workflow.actions) alert.info("Setting action to version "+action.update_version) - for (var key in workflow.actions) { + for (let [key,keyval] in workflow.actions.entries()) { if (workflow.actions[key].app_name === action.app_name && workflow.actions[key].app_version === action.app_version) { workflow.actions[key].app_version = action.update_version diff --git a/frontend/src/views/AngularWorkflow.jsx b/frontend/src/views/AngularWorkflow.jsx index 638234d5..027db155 100644 --- a/frontend/src/views/AngularWorkflow.jsx +++ b/frontend/src/views/AngularWorkflow.jsx @@ -201,7 +201,7 @@ export function removeParam(key, sourceURL) { if (queryString !== "") { params_arr = queryString.split("&"); - for (var i = params_arr.length - 1; i >= 0; i -= 1) { + for (let i = params_arr.length - 1; i >= 0; i -= 1) { param = params_arr[i].split("=")[0]; if (param === key) { params_arr.splice(i, 1); @@ -495,7 +495,7 @@ const AngularWorkflow = (defaultprops) => { var baseSubflow = {} const trigger = workflow.triggers[trigger_index]; if (trigger.parameters.length >= 3) { - for (var key in trigger.parameters) { + for (let [key,keyval] in trigger.parameters.entries()) { const param = trigger.parameters[key]; if (param.name === "workflow") { @@ -877,7 +877,7 @@ const AngularWorkflow = (defaultprops) => { } if (responseJson.results !== null && responseJson.results.length > 0) { - for (var key in responseJson.results) { + for (let [key,keyval] in responseJson.results.entries()) { var item = responseJson.results[key]; var currentnode = cy.getElementById(item.action.id); if (currentnode.length === 0) { @@ -952,7 +952,7 @@ const AngularWorkflow = (defaultprops) => { // FIXME - add outgoing nodes to executing //const outgoingNodes = outgoingEdges.find().data().target if (outgoingEdges.length > 0) { - for (var i = 0; i < outgoingEdges.length; i++) { + for (let i = 0; i < outgoingEdges.length; i++) { const edge = outgoingEdges[i]; const targetnode = cy.getElementById(edge.data().target); if ( @@ -1028,7 +1028,7 @@ const AngularWorkflow = (defaultprops) => { } var curelements = cy.elements(); - for (var i = 0; i < curelements.length; i++) { + for (let i = 0; i < curelements.length; i++) { if (curelements[i].classes().includes("executing-highlight")) { curelements[i].removeClass("executing-highlight"); curelements[i].addClass("failure-highlight"); @@ -1103,7 +1103,7 @@ const AngularWorkflow = (defaultprops) => { var newBranches = []; var newVBranches = []; var newComments = []; - for (var key in cyelements) { + for (let [key,keyval] in cyelements.entries()) { if (cyelements[key].data === undefined) { continue; } @@ -1173,7 +1173,7 @@ const AngularWorkflow = (defaultprops) => { // Cleans up OpenAPI items var newparams = []; - for (var key in curworkflowAction.parameters) { + for (let [key,keyval] in curworkflowAction.parameters.entries()) { const thisitem = curworkflowAction.parameters[key]; if (thisitem.name.startsWith("${") && thisitem.name.endsWith("}")) { continue; @@ -1334,19 +1334,19 @@ const AngularWorkflow = (defaultprops) => { const cyelements = cy.elements(); - for (var i = 0; i < cyelements.length; i++) { + for (let i = 0; i < cyelements.length; i++) { //cyelements[i].removeStyle(); cyelements[i].data().is_valid = true; cyelements[i].data().errors = []; } - for (var key in workflow.actions) { + for (let [key,keyval] in workflow.actions.entries()) { workflow.actions[key].is_valid = true; workflow.actions[key].errors = []; } } - for (var key in workflow.errors) { + for (let [key,keyval] in workflow.errors.entries()) { //alert.info(workflow.errors[key]); } @@ -1372,7 +1372,7 @@ const AngularWorkflow = (defaultprops) => { var firstnode = cy.getElementById(workflow.start); if (firstnode.length === 0) { var found = false; - for (var key in workflow.actions) { + for (let [key,keyval] in workflow.actions.entries()) { if (workflow.actions[key].isStartNode) { console.log("Updating startnode"); workflow.start = workflow.actions[key].id; @@ -1419,7 +1419,7 @@ const AngularWorkflow = (defaultprops) => { stop() var curelements = cy.elements(); - for (var i = 0; i < curelements.length; i++) { + for (let i = 0; i < curelements.length; i++) { curelements[i].addClass("not-executing-highlight"); } @@ -1451,7 +1451,7 @@ const AngularWorkflow = (defaultprops) => { setExecutionRequestStarted(false); stop(); - for (var i = 0; i < curelements.length; i++) { + for (let i = 0; i < curelements.length; i++) { curelements[i].removeClass("not-executing-highlight"); } return; @@ -1472,7 +1472,7 @@ const AngularWorkflow = (defaultprops) => { setExecutionRequestStarted(false); stop(); - for (var i = 0; i < curelements.length; i++) { + for (let i = 0; i < curelements.length; i++) { curelements[i].removeClass("not-executing-highlight"); } return; @@ -1519,7 +1519,7 @@ const AngularWorkflow = (defaultprops) => { .then((responseJson) => { if (responseJson.success) { var newauth = []; - for (var key in responseJson.data) { + for (let [key,keyval] in responseJson.data.entries()) { if (responseJson.data[key].defined === false) { continue; } @@ -1545,11 +1545,11 @@ const AngularWorkflow = (defaultprops) => { var tmpAuth = JSON.parse(JSON.stringify(responseJson.data)); var latest = 0; - for (var key in tmpAuth) { + for (let [key,keyval] in tmpAuth.entries()) { var item = tmpAuth[key]; const newfields = {}; - for (var filterkey in item.fields) { + for (let [key,keyval] in item.fields.entries()) { newfields[item.fields[filterkey].key] = item.fields[filterkey].value; } @@ -1563,7 +1563,7 @@ const AngularWorkflow = (defaultprops) => { latest = item.edited; selectedAction.selectedAuthentication = item; - for (var key in workflow.actions) { + for (let [key,keyval] in workflow.actions.entries()) { if (workflow.actions[key].app_name === selectedApp.name) { workflow.actions[key].selectedAuthentication = item; workflow.actions[key].authentication_id = item.id; @@ -1813,7 +1813,7 @@ const AngularWorkflow = (defaultprops) => { //{appGroup.map((data, index) => { //const [appGroup, setAppGroup] = React.useState([]); var appsFound = [] - for (var key in responseJson.actions) { + for (let [key,keyval] in responseJson.actions.entries()) { const parsedAction = responseJson.actions[key] if (parsedAction.large_image === undefined || parsedAction.large_image === null || parsedAction.large_image === "") { continue @@ -1826,7 +1826,7 @@ const AngularWorkflow = (defaultprops) => { setAppGroup(appsFound) appsFound = [] - for (var key in responseJson.triggers) { + for (let [key,keyval] in responseJson.triggers.entries()) { const parsedAction = responseJson.triggers[key] if (appsFound.findIndex(data => data.app_name === parsedAction.app_name) < 0){ appsFound.push(parsedAction) @@ -2026,7 +2026,7 @@ const AngularWorkflow = (defaultprops) => { // Wait for new node to possibly be selected //setTimeout(() => { const typeIds = cy.elements('node:selected').jsons(); - for (var idkey in typeIds) { + for (let [key,keyval] in typeIds.entries()) { const item = typeIds[idkey] if (item.data.isButton === true) { //console.log("Reselect old node & return - or just return?") @@ -2234,7 +2234,7 @@ const AngularWorkflow = (defaultprops) => { } const connected = event.target.connectedEdges().jsons() - for (var key in connected) { + for (let [key,keyval] in connected.entries()) { const edge = connected[key] //console.log("EDGE:", edge) @@ -2331,7 +2331,7 @@ const AngularWorkflow = (defaultprops) => { ) { const allNodes = cy.nodes().jsons(); var found = false; - for (var key in allNodes) { + for (let [key,keyval] in allNodes.entries()) { const currentNode = allNodes[key]; if ( currentNode.data.attachedTo === nodedata.id && @@ -2398,7 +2398,7 @@ const AngularWorkflow = (defaultprops) => { if (nodedata.app_name !== undefined) { const allNodes = cy.nodes().jsons(); - for (var key in allNodes) { + for (let [key,keyval] in allNodes.entries()) { const currentNode = allNodes[key]; if (currentNode.data.attachedTo === nodedata.id) { cy.getElementById(currentNode.data.id).remove(); @@ -2481,7 +2481,7 @@ const AngularWorkflow = (defaultprops) => { elementMouseIsOver.style.border = newBorder; console.log("STYLED: ", styledElements); - for (var key in styledElements) { + for (let [key,keyval] in styledElements.entries()) { const curElement = document.getElementById(styledElements[key]); if (curElement !== null && curElement !== undefined) { curElement.style.border = curElement.style.original_border; @@ -2494,7 +2494,7 @@ const AngularWorkflow = (defaultprops) => { elementMouseIsOver.id === "cytoscape_view" || elementMouseIsOver.id === "" ) { - for (var key in styledElements) { + for (let [key,keyval] in styledElements.entries()) { const curElement = document.getElementById(styledElements[key]); if (curElement !== null && curElement !== undefined) { curElement.style.border = curElement.style.original_border; @@ -2636,7 +2636,7 @@ const AngularWorkflow = (defaultprops) => { foundbranch.destination_id === parentNode.data("id") ); - for (var key in sourcebranches) { + for (let [key,keyval] in sourcebranches.entries()) { var newbranch = JSON.parse(JSON.stringify(sourcebranches[key])); newbranch.id = uuidv4(); newbranch.source_id = newNodeData.id; @@ -2650,7 +2650,7 @@ const AngularWorkflow = (defaultprops) => { }); } - for (var key in destinationbranches) { + for (let [key,keyval] in destinationbranches.entries()) { var newbranch = JSON.parse( JSON.stringify(destinationbranches[key]) ); @@ -2729,8 +2729,8 @@ const AngularWorkflow = (defaultprops) => { console.log("FIND AN ACTION AMONG THE APPS THAT MATCHES NAME: ", parsedname) curaction.matching_actions = [] - for (var key in newapps) { - for (var subkey in newapps[key].actions) { + for (let [key,keyval] in newapps.entries()) { + for (let [subkey,subkeyval] in newapps[key].actions.entries()) { const tmpaction = newapps[key].actions[subkey] if (tmpaction.name.replaceAll(" ", "_").toLowerCase() === parsedname) { console.log("MATCH!: ", newapps[key]) @@ -2801,11 +2801,11 @@ const AngularWorkflow = (defaultprops) => { const tmpAuth = JSON.parse(JSON.stringify(newAppAuth)); //var tmpAuth = newAppAuth - for (var key in tmpAuth) { + for (let [key,keyval] in tmpAuth.entries()) { var item = tmpAuth[key]; const newfields = {}; - for (var filterkey in item.fields) { + for (let [filterkey,filterkeyval] in item.fields.entries()) { newfields[item.fields[filterkey].key] = item.fields[filterkey].value; } @@ -2837,7 +2837,7 @@ const AngularWorkflow = (defaultprops) => { curaction.parameters !== null && curaction.parameters.length > 0 ) { - for (var key in curaction.parameters) { + for (let [key,keyval] in curaction.parameters.entries()) { if ( curaction.parameters[key].options !== undefined && curaction.parameters[key].options !== null && @@ -2849,7 +2849,7 @@ const AngularWorkflow = (defaultprops) => { } } else { console.log("Should check APP if it has the same params as ACTION") - for (var key in curapp.actions) { + for (let [key,keyval] in curapp.actions.entries()) { const tmpaction = curapp.actions[key] if (tmpaction.name === curaction.name) { console.log("Found action - needs change?", tmpaction) @@ -2997,7 +2997,7 @@ const AngularWorkflow = (defaultprops) => { var exampledata = item.example === undefined ? "" : item.example; if (workflowExecutions.length > 0) { // Look for the ID - for (var key in workflowExecutions) { + for (let [key,keyval] in workflowExecutions.entries()) { if ( workflowExecutions[key].results === undefined || workflowExecutions[key].results === null @@ -3144,7 +3144,7 @@ const AngularWorkflow = (defaultprops) => { selectedkey = `.${key}`; } - for (var subitem in value) { + for (let [subitem,subitemval] in value.entries()) { toreturn = GetParamMatch( paramname, value[subitem], @@ -3195,7 +3195,7 @@ const AngularWorkflow = (defaultprops) => { // 2. Check parents in order var exampledata = GetExampleResult({ id: "exec", name: "exec" }); var parentlabel = "exec"; - for (var paramkey in dstdata.parameters) { + for (let [paramkey,paramkeyval] in dstdata.parameters.entries()) { const param = dstdata.parameters[paramkey]; // Skip authentication params if (param.configuration) { @@ -3220,7 +3220,7 @@ const AngularWorkflow = (defaultprops) => { var parents = getParents(dstdata); if (parents.length > 1) { - for (var key in parents) { + for (let [key,keyval] in parents.entries()) { const item = parents[key]; if (item.label === "Execution Argument") { continue; @@ -3231,7 +3231,7 @@ const AngularWorkflow = (defaultprops) => { ? "" : item.label.toLowerCase().trim().replaceAll(" ", "_"); exampledata = GetExampleResult(item); - for (var paramkey in dstdata.parameters) { + for (let [paramkey,paramkeyval] in dstdata.parameters.entries()) { const param = dstdata.parameters[paramkey]; // Skip authentication params if (param.configuration) { @@ -3381,7 +3381,7 @@ const AngularWorkflow = (defaultprops) => { // dest == dest && source == source // backend: check all children? to stop recursion var found = false; - for (var key in workflow.branches) { + for (let [key,keyval] in workflow.branches.entries()) { if ( workflow.branches[key].destination_id === edge.source && workflow.branches[key].source_id === edge.target @@ -3516,7 +3516,7 @@ const AngularWorkflow = (defaultprops) => { } // Remove bad startnode - for (var key in workflow.actions) { + for (let [key,keyval] in workflow.actions.entries()) { const action = workflow.actions[key]; if (action.isStartNode && workflow.start !== action.id) { action.isStartNode = false; @@ -3580,7 +3580,7 @@ const AngularWorkflow = (defaultprops) => { ) { var newparameters = []; - for (var subkey in nodedata.parameters) { + for (let [subkey,subkeyval] in nodedata.parameters.entries()) { var newparam = JSON.parse( JSON.stringify(nodedata.parameters[subkey]) ); @@ -3673,7 +3673,7 @@ const AngularWorkflow = (defaultprops) => { // Check if the source is trigger and can start console.log("Removed: ", edge.data()) const allNodes = cy.nodes().jsons() - for (var key in allNodes) { + for (let [key,keyval] in allNodes.entries()) { const curnode = allNodes[key] if (curnode.data.type !== "TRIGGER") { continue @@ -3765,7 +3765,7 @@ const AngularWorkflow = (defaultprops) => { if (data.app_name !== undefined) { const allNodes = cy.nodes().jsons(); - for (var key in allNodes) { + for (let [key,keyval] in allNodes.entries()) { const currentNode = allNodes[key]; if (currentNode.data.attachedTo === data.id) { cy.getElementById(currentNode.data.id).remove(); @@ -3945,7 +3945,7 @@ const AngularWorkflow = (defaultprops) => { const parsedjson = JSON.parse(clipboard); //console.log("Parsed: ", parsedjson) - for (var key in parsedjson) { + for (let [key,keyval] in parsedjson.entries()) { const item = parsedjson[key]; console.log("Adding: ", item); item.data.id = uuidv4() @@ -3993,7 +3993,7 @@ const AngularWorkflow = (defaultprops) => { .then((responseJson) => { var found = false; var showEnvCnt = 0; - for (var key in responseJson) { + for (let [key,keyval] in responseJson.entries()) { if (responseJson[key].default && !found) { setDefaultEnvironmentIndex(key); found = true; @@ -4009,7 +4009,7 @@ const AngularWorkflow = (defaultprops) => { } if (!found) { - for (var key in responseJson) { + for (let [key,keyval] in responseJson.entries()) { if (!responseJson[key].archived) { setDefaultEnvironmentIndex(key); break; @@ -4051,7 +4051,7 @@ const AngularWorkflow = (defaultprops) => { const nodedata = event.target.data(); if (nodedata.app_name !== undefined) { const allNodes = cy.nodes().jsons(); - for (var key in allNodes) { + for (let [key,keyval] in allNodes.entries()) { const currentNode = allNodes[key]; if ( currentNode.data.isButton && @@ -4071,7 +4071,7 @@ const AngularWorkflow = (defaultprops) => { // Skipping node editing if it's the selected one if (cy !== undefined) { const typeIds = cy.elements('node:selected').jsons(); - for (var idkey in typeIds) { + for (let [idkey,idkeyval] in typeIds.entries()) { const item = typeIds[idkey] if (item.data.id === nodedata.id) { return @@ -4329,7 +4329,7 @@ const AngularWorkflow = (defaultprops) => { const allNodes = cy.nodes().jsons(); var found = false; - for (var key in allNodes) { + for (let [key,keyval] in allNodes.entries()) { const currentNode = allNodes[key]; if ( (currentNode.data.isButton || currentNode.data.isSuggestion) && @@ -4380,7 +4380,7 @@ const AngularWorkflow = (defaultprops) => { } const typeIds = cy.elements('node:selected').jsons(); - for (var idkey in typeIds) { + for (let [idkey,idkeyval] in typeIds) { const item = typeIds[idkey] if (item.data.id === nodedata.id) { //console.log("items: ", item.data.id, nodedata.id) @@ -4791,7 +4791,7 @@ const AngularWorkflow = (defaultprops) => { // Verifies if a branch is valid and skips others var newedges = []; - for (var key in edges) { + for (let [key,keyval] in edges.entries()) { var item = edges[key]; if (item.data === undefined) { continue; @@ -5139,7 +5139,7 @@ const AngularWorkflow = (defaultprops) => { var mappedStartnode = "" const alledges = cy.edges().jsons() - for (var key in alledges) { + for (let [key,keyval] in alledges.entries()) { const tmp = alledges[key] console.log("TMP: ", tmp, tmp.data.source) if (tmp.data.source === trigger.id) { @@ -5917,11 +5917,11 @@ const AngularWorkflow = (defaultprops) => { } const tmpAuth = JSON.parse(JSON.stringify(appAuthentication)); - for (var key in tmpAuth) { + for (let [key,keyval] in tmpAuth.entries()) { var item = tmpAuth[key]; const newfields = {}; - for (var filterkey in item.fields) { + for (let [filterkey,filterkeyval] in item.fields.entries()) { newfields[item.fields[filterkey].key] = item.fields[filterkey].value; } @@ -5947,7 +5947,7 @@ const AngularWorkflow = (defaultprops) => { authenticationOptions !== null && authenticationOptions.length > 0 ) { - for (var key in authenticationOptions) { + for (let [key,keyval] in authenticationOptions.entries()) { const option = authenticationOptions[key]; if (option.active && newAppData.authentication_id === "") { @@ -6351,7 +6351,7 @@ const AngularWorkflow = (defaultprops) => { if (newApps.length === 0) { const searchvalue = value.trim().toLowerCase(); newApps = allApps.filter((app) => { - for (var key in app.actions) { + for (let [key,keyval] in app.actions.entries()) { const inneraction = app.actions[key]; if (inneraction.name.toLowerCase().includes(searchvalue)) { return true; @@ -6715,7 +6715,7 @@ const AngularWorkflow = (defaultprops) => { var highest = ""; const allitems = workflow.actions.concat(workflow.triggers); - for (var key in allitems) { + for (let [key,keyval] in allitems.entries()) { const item = allitems[key]; if ( item.app_name === appName && @@ -6776,7 +6776,7 @@ const AngularWorkflow = (defaultprops) => { // Simmple action swap autocompleter if (oldaction.parameters !== undefined && newSelectedAction.parameters !== undefined && oldaction.id === newSelectedAction.id) { var fileid_found = false - for (var paramkey in oldaction.parameters) { + for (let [paramkey,paramkeyval] in oldaction.parameters.entries()) { const param = oldaction.parameters[paramkey]; if (param.name === "file_id") { @@ -6890,7 +6890,7 @@ const AngularWorkflow = (defaultprops) => { // FIXME - should change icon-node (descriptor) as well const allNodes = cy.nodes().jsons(); - for (var key in allNodes) { + for (let [key,keyval] in allNodes.entries()) { const currentNode = allNodes[key]; if ( currentNode.data.attachedTo === oldaction.id && @@ -6982,7 +6982,7 @@ const AngularWorkflow = (defaultprops) => { var iterations = 0; var maxiter = 10; while (true) { - for (var key in allkeys) { + for (let [key,keyval] in allkeys.entries()) { var currentnode = cy.getElementById(allkeys[key]); if (currentnode === undefined || currentnode === null) { continue; @@ -7010,7 +7010,7 @@ const AngularWorkflow = (defaultprops) => { continue; } - for (var i = 0; i < incomingEdges.length; i++) { + for (let i = 0; i < incomingEdges.length; i++) { var tmp = incomingEdges[i]; if (tmp.data("decorator")) { continue @@ -7138,7 +7138,7 @@ const AngularWorkflow = (defaultprops) => { workflow.triggers[selectedTriggerIndex].parameters[2].value.split(","); console.log(splitItems); if (splitItems.includes(value)) { - for (var i = 0; i < splitItems.length; i++) { + for (let i = 0; i < splitItems.length; i++) { if (splitItems[i] === value) { splitItems.splice(i, 1); } @@ -7147,7 +7147,7 @@ const AngularWorkflow = (defaultprops) => { splitItems.push(value); } - for (var i = 0; i < splitItems.length; i++) { + for (let i = 0; i < splitItems.length; i++) { if (splitItems[i] === "") { splitItems.splice(i, 1); } @@ -7229,7 +7229,7 @@ const AngularWorkflow = (defaultprops) => { workflow.workflow_variables !== undefined && workflow.workflow_variables.length > 0 ) { - for (var key in workflow.workflow_variables) { + for (let [key,keyval] in workflow.workflow_variables.entries()) { const item = workflow.workflow_variables[key]; actionlist.push({ type: "workflow_variable", @@ -7248,7 +7248,7 @@ const AngularWorkflow = (defaultprops) => { workflow.execution_variables !== undefined && workflow.execution_variables.length > 0 ) { - for (var key in workflow.execution_variables) { + for (let [key,keyval] in workflow.execution_variables.entries()) { const item = workflow.execution_variables[key]; actionlist.push({ type: "execution_variable", @@ -7264,7 +7264,7 @@ const AngularWorkflow = (defaultprops) => { const destAction = cy.getElementById(selectedEdge.target); var parents = getParents(destAction.data()); if (parents.length > 1) { - for (var key in parents) { + for (let [key,keyval] in parents.entries()) { const item = parents[key]; if (item.label === "Execution Argument") { continue; @@ -7440,7 +7440,7 @@ const AngularWorkflow = (defaultprops) => { workflow.triggers !== null && workflow.triggers.length > 0 ) { - for (var key in workflow.triggers) { + for (let [key,keyval] in workflow.triggers.entries()) { const item = workflow.triggers[key]; var node = cy.getElementById(item.id); @@ -8784,7 +8784,7 @@ const AngularWorkflow = (defaultprops) => { workflow.workflow_variables !== undefined && workflow.workflow_variables.length > 0 ) { - for (var key in workflow.workflow_variables) { + for (let [key,keyval] in workflow.workflow_variables.entries()) { const item = workflow.workflow_variables[key]; actionlist.push({ type: "workflow_variable", @@ -8803,7 +8803,7 @@ const AngularWorkflow = (defaultprops) => { workflow.execution_variables !== undefined && workflow.execution_variables.length > 0 ) { - for (var key in workflow.execution_variables) { + for (let [key,keyval] in workflow.execution_variables.entries()) { const item = workflow.execution_variables[key]; actionlist.push({ type: "execution_variable", @@ -8818,7 +8818,7 @@ const AngularWorkflow = (defaultprops) => { var parents = getParents(selectedTrigger); if (parents.length > 1) { - for (var key in parents) { + for (let [key,keyval] in parents.entries()) { const item = parents[key]; if (item.label === "Execution Argument") { continue; @@ -8828,7 +8828,7 @@ const AngularWorkflow = (defaultprops) => { // Find previous execution and their variables if (workflowExecutions.length > 0) { // Look for the ID - for (var key in workflowExecutions) { + for (let [key,keyval] in workflowExecutions.entries()) { if ( workflowExecutions[key].results === undefined || workflowExecutions[key].results === null @@ -8957,7 +8957,7 @@ const AngularWorkflow = (defaultprops) => { workflow.triggers !== null && workflow.triggers.length > 0 ) { - for (var key in workflow.triggers) { + for (let [key,keyval] in workflow.triggers.entries()) { const item = workflow.triggers[key]; if (cy !== undefined) { @@ -10542,7 +10542,7 @@ const AngularWorkflow = (defaultprops) => { ) console.log("Starting mail sub: ", workflow.triggers[selectedTriggerIndex].parameters[0].value, splitItem); - for (var key in splitItem) { + for (let [key,keyval] in splitItem.entries()) { const item = splitItem[key]; const curfolder = triggerFolders.find((a) => a.displayName === item); if (curfolder === undefined) { @@ -12680,7 +12680,7 @@ const AngularWorkflow = (defaultprops) => { } to_be_copied = "$" + base_node_name.toLowerCase().replaceAll(" ", "_"); - for (var key in copy.namespace) { + for (let [key,keyval] in copy.namespace.entries()) { if (copy.namespace[key].includes("Results for")) { continue; } @@ -12955,7 +12955,7 @@ const AngularWorkflow = (defaultprops) => { data.workflow.actions !== null ? data.workflow.actions.length : 0; - for (var key in data.workflow.triggers) { + for (let [key,keyval] in data.workflow.triggers.entries()) { const trigger = data.workflow.triggers[key]; if ( (trigger.app_name === "User Input" && @@ -13008,7 +13008,7 @@ const AngularWorkflow = (defaultprops) => { setExecutionRunning(true); setExecutionRequestStarted(false); } else { - for (var key in data.results) { + for (let [key,keyval] in data.results.entries()) { if (data.results[key].status !== "SUCCESS") { continue } @@ -13491,7 +13491,7 @@ const AngularWorkflow = (defaultprops) => { if (data.similar_actions !== undefined && data.similar_actions !== null) { var minimumMatch = 85 var matching_executions = [] - for (var k in data.similar_actions){ + for (let [k,kval] in data.similar_actions.entries()){ if (data.similar_actions.hasOwnProperty(k)) { if (data.similar_actions[k].similarity > minimumMatch) { matching_executions.push(data.similar_actions[k].execution_id) @@ -13837,7 +13837,7 @@ const AngularWorkflow = (defaultprops) => { }} onClick={(e) => { e.preventDefault(); - for (var key in workflowExecutions) { + for (let [key,keyval] in workflowExecutions.entries()) { const execution = workflowExecutions[key]; const result = execution.results.find( (data) => @@ -13878,7 +13878,7 @@ const AngularWorkflow = (defaultprops) => { }} onClick={(e) => { e.preventDefault(); - for (var key in workflowExecutions) { + for (let [key,keyval] in workflowExecutions.entries()) { const execution = workflowExecutions[key]; const result = execution.results.find( (data) => @@ -14552,7 +14552,7 @@ const AngularWorkflow = (defaultprops) => { authenticationOption.app.actions = []; - for (var key in selectedApp.authentication.parameters) { + for (let [key,keyval] in selectedApp.authentication.parameters.entries()) { if ( authenticationOption.fields[ selectedApp.authentication.parameters[key].name @@ -14571,7 +14571,7 @@ const AngularWorkflow = (defaultprops) => { // Automatically mapping fields that already exist (predefined). // Warning if fields are NOT filled - for (var key in selectedApp.authentication.parameters) { + for (let [key,keyval] in selectedApp.authentication.parameters.entries()) { if ( authenticationOption.fields[ selectedApp.authentication.parameters[key].name @@ -14620,7 +14620,7 @@ const AngularWorkflow = (defaultprops) => { var newAuthOption = JSON.parse(JSON.stringify(authenticationOption)); var newFields = []; - for (const key in newAuthOption.fields) { + for (let [key,keyval] in newAuthOption.fields.entries()) { const value = newAuthOption.fields[key]; newFields.push({ key: key, From 20350178e3b655807fbe0f9d5eb842537a25e3d8 Mon Sep 17 00:00:00 2001 From: Dhaval Dave Date: Thu, 12 Jan 2023 06:46:13 +0000 Subject: [PATCH 3/5] fixed Par/components/ParsedAction.jsx --- frontend/src/components/ParsedAction.jsx | 60 ++++++++++++------------ 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/frontend/src/components/ParsedAction.jsx b/frontend/src/components/ParsedAction.jsx index 455c0e57..2ac8aaed 100644 --- a/frontend/src/components/ParsedAction.jsx +++ b/frontend/src/components/ParsedAction.jsx @@ -277,7 +277,7 @@ const ParsedAction = (props) => { console.log("FOUNDACTION: ", foundAction); if (foundAction !== null && foundAction !== undefined) { var foundparams = []; - for (var paramkey in foundAction.parameters) { + for (let [paramkey,paramkeyval] in foundAction.parameters.entries()) { const param = foundAction.parameters[paramkey]; const foundParam = selectedAction.parameters.find( @@ -401,7 +401,7 @@ const ParsedAction = (props) => { if (actionlist.length === 0) { // FIXME: Have previous execution values in here if (workflowExecutions.length > 0) { - for (var key in workflowExecutions) { + for (let [key,keyval] in workflowExecutions.entries()) { if ( workflowExecutions[key].execution_argument === undefined || workflowExecutions[key].execution_argument === null || @@ -451,7 +451,7 @@ const ParsedAction = (props) => { workflow.workflow_variables !== undefined && workflow.workflow_variables.length > 0 ) { - for (var key in workflow.workflow_variables) { + for (let [key,keyval] in workflow.workflow_variables.entries()) { const item = workflow.workflow_variables[key]; actionlist.push({ type: "workflow_variable", @@ -470,7 +470,7 @@ const ParsedAction = (props) => { workflow.execution_variables !== undefined && workflow.execution_variables.length > 0 ) { - for (var key in workflow.execution_variables) { + for (let [key,keyval] in workflow.execution_variables.entries()) { const item = workflow.execution_variables[key]; actionlist.push({ type: "execution_variable", @@ -488,7 +488,7 @@ const ParsedAction = (props) => { var parents = getParents(selectedAction); if (parents.length > 1) { - for (var key in parents) { + for (let [key,keyval] in parents.entries()) { const item = parents[key]; if (item.label === "Execution Argument") { continue; @@ -500,7 +500,7 @@ const ParsedAction = (props) => { if (workflowExecutions.length > 0) { // Look for the ID const found = false; - for (var key in workflowExecutions) { + for (let [key,keyval] in workflowExecutions.entries()) { if ( workflowExecutions[key].results === undefined || workflowExecutions[key].results === null @@ -566,7 +566,7 @@ const ParsedAction = (props) => { if (found !== null && found !== undefined) { var new_occurences = [] - for (var key in found) { + for (let [key,keyval] in found.entries()) { if (found[key][0] !== "\\") { new_occurences.push(found[key]) } @@ -579,7 +579,7 @@ const ParsedAction = (props) => { if (found !== null) { try { // When the found array is empty. - for (var i = 0; i < found.length; i++) { + for (let i = 0; i < found.length; i++) { const variableSplit = found[i].split(".#") if ((variableSplit.length-1) > 1) { //console.log("Larger than 1: ", variableSplit) @@ -589,7 +589,7 @@ const ParsedAction = (props) => { } var foundSlice = false - for (var j = 0; j < actionlist.length; j++) { + for (let j = 0; j < actionlist.length; j++) { //console.log("ACTION: ", found[i], actionlist[j]) //console.log("ACTION :", found[i].split(".")[0].slice(1,).toLowerCase(), actionlist[j].autocomplete.toLowerCase()) if(found[i].split(".")[0].slice(1,).toLowerCase() == actionlist[j].autocomplete.toLowerCase()){ @@ -730,7 +730,7 @@ const ParsedAction = (props) => { var curstring = ""; var record = false; - for (var key in selectedActionParameters[count].value) { + for (let [key,keyval] in selectedActionParameters[count].value.entries()) { const item = selectedActionParameters[count].value[key]; if (record) { curstring += item; @@ -911,7 +911,7 @@ const ParsedAction = (props) => { var curstring = "" var record = false - for (var key in selectedActionParameters[count].value) { + for (let [key,keyval] in selectedActionParameters[count].value.entries()) { const item = selectedActionParameters[count].value[key] if (record) { curstring += item @@ -1187,7 +1187,7 @@ const ParsedAction = (props) => { renderInput={(params) => { if (params.inputProps !== undefined && params.inputProps !== null && params.inputProps.value !== undefined && params.inputProps.value !== null) { const prefixes = ["Post", "Put", "Patch"] - for (var key in prefixes) { + for (let [key,keyval] in prefixes.entries()) { if (params.inputProps.value.startsWith(prefixes[key])) { params.inputProps.value = params.inputProps.value.replace(prefixes[key]+" ", "", -1) if (params.inputProps.value.length > 1) { @@ -1426,7 +1426,7 @@ const ParsedAction = (props) => { setHideBody(!hideBody); - for (var key in selectedActionParameters) { + for (let [key,keyval] in selectedActionParameters.entries()) { var currentItem = selectedActionParameters[key]; if (currentItem.name === "ssl_verify") { @@ -1472,10 +1472,10 @@ const ParsedAction = (props) => { openApiHelperText = "OpenAPI spec: fill the following fields."; //console.log("SHOULD ADD TO selectedActionParameters!: ", found, selectedActionParameters) var changed = false; - for (var specKey in found) { + for (let [speckey,speckeyval] in found.entries()) { const tmpitem = found[specKey]; var skip = false; - for (var innerkey in selectedActionParameters) { + for (let [innerkey,innerkeyval] in selectedActionParameters.entries()) { if (selectedActionParameters[innerkey].name === tmpitem) { skip = true; break; @@ -1707,7 +1707,7 @@ const ParsedAction = (props) => { var foundnewline = false var allValues = [] - for (var key in splitdata) { + for (let [key,keyval] in splitdata.entries()) { const line = splitdata[key] if (line === "") { foundnewline = true @@ -1777,7 +1777,7 @@ const ParsedAction = (props) => { const tmpsplit = selectedActionParameters[count].value.split("\n") var valsplit = [] var add_empty = false - for (var key in tmpsplit) { + for (let [key,keyval] in tmpsplit.entries()) { if (tmpsplit[key] === "") { add_empty = true continue @@ -1792,7 +1792,7 @@ const ParsedAction = (props) => { console.log("Split: ", valsplit) var newarr = [] - for (var key in valsplit) { + for (let [key,keyval] in valsplit.entries()) { var line = valsplit[key] if (key == index) { @@ -1832,7 +1832,7 @@ const ParsedAction = (props) => { var tmpsplit = selectedActionParameters[count].value.split("\n") var valsplit = [] var add_empty = false - for (var key in tmpsplit) { + for (let [key,keyval] in tmpsplit.entries()) { if (tmpsplit[key] === "") { add_empty = true continue @@ -1847,7 +1847,7 @@ const ParsedAction = (props) => { console.log("Split: ", valsplit) var newarr = [] - for (var key in valsplit) { + for (let [key,keyval] in valsplit.entries()) { var line = valsplit[key] if (key == index) { @@ -2094,7 +2094,7 @@ const ParsedAction = (props) => { : "$" + values[0].autocomplete; toComplete = toComplete.toLowerCase().replaceAll(" ", "_"); - for (var key in values) { + for (let [key,keyval] in values.entries()) { if (key == 0 || values[key].autocomplete.length === 0) { continue; } @@ -2205,7 +2205,7 @@ const ParsedAction = (props) => { workflow.triggers !== null && workflow.triggers.length > 0 ) { - for (var key in workflow.triggers) { + for (let [key,keyval] in workflow.triggers.entries()) { const item = workflow.triggers[key]; if (cy !== undefined) { @@ -2727,7 +2727,7 @@ const ParsedAction = (props) => { if (workflowExecutions.length > 0) { // Look for the ID const found = false; - for (var key in workflowExecutions) { + for (let [key,keyval] in workflowExecutions.entries()) { if ( workflowExecutions[key].results === undefined || workflowExecutions[key].results === null @@ -2971,8 +2971,8 @@ const ParsedAction = (props) => { // // Should make it a function lol if (workflow.branches !== undefined && workflow.branches !== null) { - for (var key in workflow.branches) { - for (var subkey in workflow.branches[key].conditions) { + for (let [key,keyval] in workflow.branches.entries()) { + for (let [key,keyval] in workflow.branches[key].conditions.entries()) { const condition = workflow.branches[key].conditions[subkey] const sourceparam = condition.source const destinationparam = condition.destination @@ -3080,12 +3080,12 @@ const ParsedAction = (props) => { } } - for (var key in workflow.actions) { + for (let [key,keyval] in workflow.actions.entries()) { if (workflow.actions[key].id === selectedAction.id) { continue } - for (var subkey in workflow.actions[key].parameters) { + for (let [subkey, subkeyval] in workflow.actions[key].parameters.entries()) { const param = workflow.actions[key].parameters[subkey]; if (!param.value.includes("$")) { continue @@ -3251,7 +3251,7 @@ const ParsedAction = (props) => { selectedAction.selectedAuthentication = {}; selectedAction.authentication_id = ""; - for (var key in selectedAction.parameters) { + for (let [key,keyval] in selectedAction.parameters.entries()) { //console.log(selectedAction.parameters[key]) if (selectedAction.parameters[key].configuration) { selectedAction.parameters[key].value = ""; @@ -3568,7 +3568,7 @@ const ParsedAction = (props) => { if (method.length > 0 && data.description !== undefined && data.description !== null && data.description.includes("http")) { var extraUrl = "" const descSplit = data.description.split("\n") - for (var line in descSplit) { + for (let [key,keyval] in descSplit.entries()) { if (descSplit[line].includes("http") && descSplit[line].includes("://")) { const urlsplit = descSplit[line].split("/") try { @@ -3629,7 +3629,7 @@ const ParsedAction = (props) => { renderInput={(params) => { if (params.inputProps !== undefined && params.inputProps !== null && params.inputProps.value !== undefined && params.inputProps.value !== null) { const prefixes = ["Post", "Put", "Patch"] - for (var key in prefixes) { + for (let [key,keyval] in prefixes.entries()) { if (params.inputProps.value.startsWith(prefixes[key])) { params.inputProps.value = params.inputProps.value.replace(prefixes[key]+" ", "", -1) if (params.inputProps.value.length > 1) { From 7e1cccf82012188a3f7abd2f69e7c7155825426c Mon Sep 17 00:00:00 2001 From: Dhaval Dave Date: Fri, 13 Jan 2023 05:35:19 +0000 Subject: [PATCH 4/5] fixed PrasedAction.jsx and few more fixes to ConfiguredWorkflow & Angularworkflow.jsx --- frontend/src/components/ParsedAction.jsx | 6 +-- frontend/src/views/AngularWorkflow.jsx | 4 +- frontend/src/views/AppCreator.jsx | 50 ++++++++++++------------ 3 files changed, 30 insertions(+), 30 deletions(-) diff --git a/frontend/src/components/ParsedAction.jsx b/frontend/src/components/ParsedAction.jsx index 2ac8aaed..7b89288c 100644 --- a/frontend/src/components/ParsedAction.jsx +++ b/frontend/src/components/ParsedAction.jsx @@ -1472,7 +1472,7 @@ const ParsedAction = (props) => { openApiHelperText = "OpenAPI spec: fill the following fields."; //console.log("SHOULD ADD TO selectedActionParameters!: ", found, selectedActionParameters) var changed = false; - for (let [speckey,speckeyval] in found.entries()) { + for (let [specKey,specKeyVal] in found.entries()) { const tmpitem = found[specKey]; var skip = false; for (let [innerkey,innerkeyval] in selectedActionParameters.entries()) { @@ -2972,7 +2972,7 @@ const ParsedAction = (props) => { // Should make it a function lol if (workflow.branches !== undefined && workflow.branches !== null) { for (let [key,keyval] in workflow.branches.entries()) { - for (let [key,keyval] in workflow.branches[key].conditions.entries()) { + for (let [subkey,subkeyval] in workflow.branches[key].conditions.entries()) { const condition = workflow.branches[key].conditions[subkey] const sourceparam = condition.source const destinationparam = condition.destination @@ -3568,7 +3568,7 @@ const ParsedAction = (props) => { if (method.length > 0 && data.description !== undefined && data.description !== null && data.description.includes("http")) { var extraUrl = "" const descSplit = data.description.split("\n") - for (let [key,keyval] in descSplit.entries()) { + for (let [line,lineval] in descSplit.entries()) { if (descSplit[line].includes("http") && descSplit[line].includes("://")) { const urlsplit = descSplit[line].split("/") try { diff --git a/frontend/src/views/AngularWorkflow.jsx b/frontend/src/views/AngularWorkflow.jsx index 027db155..6d45efa4 100644 --- a/frontend/src/views/AngularWorkflow.jsx +++ b/frontend/src/views/AngularWorkflow.jsx @@ -1549,7 +1549,7 @@ const AngularWorkflow = (defaultprops) => { var item = tmpAuth[key]; const newfields = {}; - for (let [key,keyval] in item.fields.entries()) { + for (let [filterkey, filterkeyval] in item.fields.entries()) { newfields[item.fields[filterkey].key] = item.fields[filterkey].value; } @@ -2026,7 +2026,7 @@ const AngularWorkflow = (defaultprops) => { // Wait for new node to possibly be selected //setTimeout(() => { const typeIds = cy.elements('node:selected').jsons(); - for (let [key,keyval] in typeIds.entries()) { + for (let [idkey,idkeyval] in typeIds.entries()) { const item = typeIds[idkey] if (item.data.isButton === true) { //console.log("Reselect old node & return - or just return?") diff --git a/frontend/src/views/AppCreator.jsx b/frontend/src/views/AppCreator.jsx index 81538b8f..a8da7482 100644 --- a/frontend/src/views/AppCreator.jsx +++ b/frontend/src/views/AppCreator.jsx @@ -456,7 +456,7 @@ const AppCreator = (defaultprops) => { } var newitem = data; - for (var key in paramsplit) { + for (let [key,keyval] in paramsplit.entries()) { var tmpparam = paramsplit[key]; if (tmpparam === "#") { continue; @@ -579,7 +579,7 @@ const AppCreator = (defaultprops) => { console.log("Tags: ", data.tags) if (data.tags !== undefined && data.tags.length > 0) { var newtags = []; - for (var key in data.tags) { + for (let [key,keyval] in data.tags.entries()) { if (data.tags[key].name.length > 50) { console.log( "Skipping tag because it's too long: ", @@ -685,7 +685,7 @@ const AppCreator = (defaultprops) => { const pathsplit = path.split("/"); var categoryindex = -1; // Stupid way of finding a category/grouping - for (var key in pathsplit) { + for (let [key,keyval] in pathsplit.entries()) { if (pathsplit[key].includes("_shuffle_replace_")) { const regex = /_shuffle_replace_\d/i; //console.log("NEW: ", @@ -750,9 +750,9 @@ const AppCreator = (defaultprops) => { } //console.log("Data: ", data) - for (var subkey in methodvalue["requestBody"]["content"][ + for (let [subkey,subkeyval] in methodvalue["requestBody"]["content"][ "application/json" - ]["schema"]["required"]) { + ]["schema"]["required"].entries()) { const tmpitem = methodvalue["requestBody"]["content"][ "application/json" @@ -771,7 +771,7 @@ const AppCreator = (defaultprops) => { ); var newbody = {}; // Can handle default, required, description and type - for (var propkey in retRef.properties) { + for (let [propkey,propkeyval] in retRef.properties.entries()) { console.log("replace: ", propkey) const parsedkey = propkey.replaceAll(" ", "_").toLowerCase(); @@ -810,9 +810,9 @@ const AppCreator = (defaultprops) => { tmpobject[prop] = `\$\{${prop}\}`; } - for (var subkey in methodvalue["requestBody"]["content"][ + for (let [subkey,subkeyval] in methodvalue["requestBody"]["content"][ "application/xml" - ]["schema"]["required"]) { + ]["schema"]["required"].entries()) { const tmpitem = methodvalue["requestBody"]["content"][ "application/xml" @@ -917,7 +917,7 @@ const AppCreator = (defaultprops) => { parameter["type"] === "object" ) { var newbody = {}; - for (var propkey in parameter.properties) { + for (let [propkey,propkeyval] in parameter.properties.entries()) { console.log("propkey2: ", propkey) const parsedkey = propkey.replaceAll(" ", "_").toLowerCase(); if (parameter.properties[propkey].type === undefined) { @@ -1046,7 +1046,7 @@ const AppCreator = (defaultprops) => { parameter["type"] === "object" ) { var newbody = {}; - for (var propkey in parameter.properties) { + for (let [propkey,propkeyval] in parameter.properties.entries()) { console.log("propkey3: ", propkey) const parsedkey = propkey.replaceAll(" ", "_").toLowerCase(); if ( @@ -1135,7 +1135,7 @@ const AppCreator = (defaultprops) => { parameter["type"] === "object" ) { var newbody = {}; - for (var propkey in parameter.properties) { + for (let [propkey,propkeyval] in parameter.properties.entries()) { console.log("propkey4: ", propkey) const parsedkey = propkey.replaceAll(" ", "_").toLowerCase(); if ( @@ -1219,7 +1219,7 @@ const AppCreator = (defaultprops) => { parameter["type"] === "object" ) { var newbody = {}; - for (var propkey in parameter.properties) { + for (let [propkey,keyval] in parameter.properties.entries()) { console.log("propkey5: ", propkey) const parsedkey = propkey .replaceAll(" ", "_") @@ -1287,7 +1287,7 @@ const AppCreator = (defaultprops) => { } } - for (var key in methodvalue.parameters) { + for (let [key,keyval] in methodvalue.parameters.entries()) { const parameter = handleGetRef(methodvalue.parameters[key], data); if (parameter.in === "query") { var tmpaction = { @@ -1334,7 +1334,7 @@ const AppCreator = (defaultprops) => { if (Object.getOwnPropertyNames(wordlist).length === 0) { for (let [newpath, pathvalue] of Object.entries(data.paths)) { const newpathsplit = newpath.split("/"); - for (var key in newpathsplit) { + for (let [key,keyval] in newpathsplit.entries()) { const pathitem = newpathsplit[key].toLowerCase(); if (wordlist[pathitem] === undefined) { wordlist[pathitem] = 1; @@ -1351,7 +1351,7 @@ const AppCreator = (defaultprops) => { const urlsplit = path.split("/"); if (urlsplit.length > 0) { var curname = ""; - for (var key in urlsplit) { + for (let [key,keyval] in urlsplit.entries()) { var subpath = urlsplit[key]; if (wordlist[subpath] > 2 || subpath.length < 1) { continue; @@ -1413,7 +1413,7 @@ const AppCreator = (defaultprops) => { const regex = /{\w+}/g; const found = firstUrl.match(regex); if (found !== null) { - for (var key in found) { + for (let [key,keyval] in found.entries()) { const item = found[key].slice(1, found[key].length - 1); const foundVar = data.servers[0].variables[item]; if (foundVar["default"] !== undefined) { @@ -1683,7 +1683,7 @@ const AppCreator = (defaultprops) => { if (newWorkflowTags.length > 0) { var newtags = []; - for (var key in newWorkflowTags) { + for (let [key,keyval] in newWorkflowTags.entries()) { newtags.push({ name: newWorkflowTags[key] }); } @@ -1696,7 +1696,7 @@ const AppCreator = (defaultprops) => { // Handles actions var handledPaths = [] - for (var key in actions) { + for (let [key,keyval] in actions.entries()) { var item = JSON.parse(JSON.stringify(actions[key])) if (item.errors.length > 0) { alert.error("Saving with error in action " + item.name); @@ -1712,7 +1712,7 @@ const AppCreator = (defaultprops) => { if (handledPaths.includes(pathjoin)) { // Max 100 of same lol - for (var i = 0; i < 100; i++) { + for (let i = 0; i < 100; i++) { item.url = item.url+"_shuffle_replace_"+i pathjoin = item.url+"_"+item.method.toLowerCase() @@ -1822,7 +1822,7 @@ const AppCreator = (defaultprops) => { if (item.queries.length > 0) { var skipped = false; var querynames = [] - for (var querykey in item.queries) { + for (let [querykey,querykeyval] in item.queries.entries()) { const queryitem = item.queries[querykey]; if (queryitem === undefined || queryitem === null || queryitem.name === undefined || queryitem.name === null || queryitem.name === "") { @@ -1923,7 +1923,7 @@ const AppCreator = (defaultprops) => { //data.paths[item.url][item.method.toLowerCase()].parameters.push(newitem) if (item.paths.length > 0) { - for (querykey in item.paths) { + for (let [querykey,querykeyval] in item.paths.entries()) { const queryitem = item.paths[querykey]; if (queryitem.toLowerCase() == "url") { @@ -1958,7 +1958,7 @@ const AppCreator = (defaultprops) => { const values = getCurrentPaths(item.url); const paths = values[0]; - for (querykey in paths) { + for (let [querykey,querykeyval] in paths.entries()) { const queryitem = paths[querykey]; newitem = { in: "path", @@ -1996,7 +1996,7 @@ const AppCreator = (defaultprops) => { // but it's the only way we can properly support e.g. GraphQL // with good examples var newbody = "" - for (var key in item.body) { + for (let [key,keyval] in item.body.entries()) { if (item.body[key] === "$") { if (key > 0) { //console.log("Found: ", item.body[key-1]) @@ -2118,9 +2118,9 @@ const AppCreator = (defaultprops) => { const required = false; const headersSplit = item.headers.split("\n"); - for (var key in headersSplit) { + for (let [key,keyval] in headersSplit.entries()) { const header = headersSplit[key]; - var key = ""; + // var key = ""; var value = ""; if (header.length > 0 && header.includes("= ")) { const headersplit = header.split("= "); From fb448b04aed37af1277cf83610c577d8a15ff887 Mon Sep 17 00:00:00 2001 From: dhaval055 Date: Tue, 24 Jan 2023 11:08:32 +0530 Subject: [PATCH 5/5] Fixed issues in ConfigureWorkflow.jsx & AngularWorkflow.jsx --- frontend/src/components/ConfigureWorkflow.jsx | 4 + frontend/src/views/AngularWorkflow.jsx | 160 ++++++++++-------- 2 files changed, 92 insertions(+), 72 deletions(-) diff --git a/frontend/src/components/ConfigureWorkflow.jsx b/frontend/src/components/ConfigureWorkflow.jsx index 128f7503..dc35d902 100644 --- a/frontend/src/components/ConfigureWorkflow.jsx +++ b/frontend/src/components/ConfigureWorkflow.jsx @@ -264,6 +264,7 @@ const ConfigureWorkflow = (props) => { } } + if (workflow.workflow_variables !== undefined && workflow.workflow_variables !== null && workflow.workflow_variables.length !== 0) { for (let [key,keyval] in workflow.workflow_variables.entries()) { const variable = workflow.workflow_variables[key]; if ( @@ -276,7 +277,9 @@ const ConfigureWorkflow = (props) => { requiredVariables.push(variable); } } + } + if (workflow.triggers !== undefined && workflow.triggers !== null && workflow.triggers.length !== 0) { for (let [key,keyval] in workflow.triggers.entries()) { var trigger = workflow.triggers[key]; trigger.index = key; @@ -326,6 +329,7 @@ const ConfigureWorkflow = (props) => { requiredTriggers.push(trigger); } +} if ( requiredTriggers.length === 0 && diff --git a/frontend/src/views/AngularWorkflow.jsx b/frontend/src/views/AngularWorkflow.jsx index 6d45efa4..ef22be6a 100644 --- a/frontend/src/views/AngularWorkflow.jsx +++ b/frontend/src/views/AngularWorkflow.jsx @@ -1103,26 +1103,26 @@ const AngularWorkflow = (defaultprops) => { var newBranches = []; var newVBranches = []; var newComments = []; - for (let [key,keyval] in cyelements.entries()) { - if (cyelements[key].data === undefined) { + for (let cyelementsKey in cyelements) { + if (cyelements[cyelementsKey].data === undefined) { continue; } - var type = cyelements[key].data()["type"]; + var type = cyelements[cyelementsKey].data()["type"]; if (type === undefined) { if ( - cyelements[key].data().source === undefined || - cyelements[key].data().target === undefined + cyelements[cyelementsKey].data().source === undefined || + cyelements[cyelementsKey].data().target === undefined ) { continue; } var parsedElement = { - id: cyelements[key].data().id, - source_id: cyelements[key].data().source, - destination_id: cyelements[key].data().target, - conditions: cyelements[key].data().conditions, - decorator: cyelements[key].data().decorator, + id: cyelements[cyelementsKey].data().id, + source_id: cyelements[cyelementsKey].data().source, + destination_id: cyelements[cyelementsKey].data().target, + conditions: cyelements[cyelementsKey].data().conditions, + decorator: cyelements[cyelementsKey].data().decorator, }; if (parsedElement.decorator) { @@ -1132,7 +1132,7 @@ const AngularWorkflow = (defaultprops) => { } } else { if (type === "ACTION") { - const cyelement = cyelements[key].data(); + const cyelement = cyelements[cyelementsKey].data(); const elementid = cyelement.id === undefined || cyelement.id === null ? cyelement["_id"] @@ -1144,10 +1144,10 @@ const AngularWorkflow = (defaultprops) => { (a["id"] === elementid || a["_id"] === elementid) ); if (curworkflowAction === undefined) { - curworkflowAction = cyelements[key].data(); + curworkflowAction = cyelements[cyelementsKey].data(); } - curworkflowAction.position = cyelements[key].position(); + curworkflowAction.position = cyelements[cyelementsKey].position(); // workaround to fix some edgecases if ( @@ -1162,8 +1162,8 @@ const AngularWorkflow = (defaultprops) => { curworkflowAction.example === "" || curworkflowAction.example === null ) { - if (cyelements[key].data().example !== undefined) { - curworkflowAction.example = cyelements[key].data().example; + if (cyelements[cyelementsKey].data().example !== undefined) { + curworkflowAction.example = cyelements[cyelementsKey].data().example; } } @@ -1173,8 +1173,8 @@ const AngularWorkflow = (defaultprops) => { // Cleans up OpenAPI items var newparams = []; - for (let [key,keyval] in curworkflowAction.parameters.entries()) { - const thisitem = curworkflowAction.parameters[key]; + for (let parametersKey in curworkflowAction.parameters) { + const thisitem = curworkflowAction.parameters[parametersKey]; if (thisitem.name.startsWith("${") && thisitem.name.endsWith("}")) { continue; } @@ -1190,13 +1190,13 @@ const AngularWorkflow = (defaultprops) => { } var curworkflowTrigger = useworkflow.triggers.find( - (a) => a.id === cyelements[key].data()["id"] + (a) => a.id === cyelements[cyelementsKey].data()["id"] ); if (curworkflowTrigger === undefined) { - curworkflowTrigger = cyelements[key].data(); + curworkflowTrigger = cyelements[cyelementsKey].data(); } - curworkflowTrigger.position = cyelements[key].position(); + curworkflowTrigger.position = cyelements[cyelementsKey].position(); if (curworkflowTrigger.canConnect === false) { continue } @@ -1208,11 +1208,11 @@ const AngularWorkflow = (defaultprops) => { } var curworkflowComment = useworkflow.comments.find( - (a) => a.id === cyelements[key].data()["id"] + (a) => a.id === cyelements[cyelementsKey].data()["id"] ) if (curworkflowComment === undefined) { - curworkflowComment = cyelements[key].data(); + curworkflowComment = cyelements[cyelementsKey].data(); try { curworkflowComment.position.x = parseInt(curworkflowComment.position.x) } catch (e) { @@ -1240,7 +1240,7 @@ const AngularWorkflow = (defaultprops) => { curworkflowComment.width = 200 } - curworkflowComment.position = cyelements[key].position(); + curworkflowComment.position = cyelements[cyelementsKey].position(); //console.log(curworkflowComment) newComments.push(curworkflowComment); @@ -1519,6 +1519,7 @@ const AngularWorkflow = (defaultprops) => { .then((responseJson) => { if (responseJson.success) { var newauth = []; + console.log("App auth: ", responseJson.data); for (let [key,keyval] in responseJson.data.entries()) { if (responseJson.data[key].defined === false) { continue; @@ -2026,7 +2027,7 @@ const AngularWorkflow = (defaultprops) => { // Wait for new node to possibly be selected //setTimeout(() => { const typeIds = cy.elements('node:selected').jsons(); - for (let [idkey,idkeyval] in typeIds.entries()) { + for (var idkey in typeIds) { const item = typeIds[idkey] if (item.data.isButton === true) { //console.log("Reselect old node & return - or just return?") @@ -2234,6 +2235,7 @@ const AngularWorkflow = (defaultprops) => { } const connected = event.target.connectedEdges().jsons() + if (connected.length > 0 && connected !== undefined) { for (let [key,keyval] in connected.entries()) { const edge = connected[key] //console.log("EDGE:", edge) @@ -2253,6 +2255,7 @@ const AngularWorkflow = (defaultprops) => { currentedge.style('control-point-weight', edgeCurve.weight) } } + } if (styledElements.length === 1) { console.log( @@ -2398,8 +2401,8 @@ const AngularWorkflow = (defaultprops) => { if (nodedata.app_name !== undefined) { const allNodes = cy.nodes().jsons(); - for (let [key,keyval] in allNodes.entries()) { - const currentNode = allNodes[key]; + for (var key_ in allNodes) { + const currentNode = allNodes[key_]; if (currentNode.data.attachedTo === nodedata.id) { cy.getElementById(currentNode.data.id).remove(); } @@ -2481,8 +2484,8 @@ const AngularWorkflow = (defaultprops) => { elementMouseIsOver.style.border = newBorder; console.log("STYLED: ", styledElements); - for (let [key,keyval] in styledElements.entries()) { - const curElement = document.getElementById(styledElements[key]); + for (var styledElementsKey in styledElements) { + const curElement = document.getElementById(styledElements[styledElementsKey]); if (curElement !== null && curElement !== undefined) { curElement.style.border = curElement.style.original_border; } @@ -2494,8 +2497,8 @@ const AngularWorkflow = (defaultprops) => { elementMouseIsOver.id === "cytoscape_view" || elementMouseIsOver.id === "" ) { - for (let [key,keyval] in styledElements.entries()) { - const curElement = document.getElementById(styledElements[key]); + for (var index in styledElements) { + const curElement = document.getElementById(styledElements[index]); if (curElement !== null && curElement !== undefined) { curElement.style.border = curElement.style.original_border; } @@ -2636,8 +2639,8 @@ const AngularWorkflow = (defaultprops) => { foundbranch.destination_id === parentNode.data("id") ); - for (let [key,keyval] in sourcebranches.entries()) { - var newbranch = JSON.parse(JSON.stringify(sourcebranches[key])); + for (var sourceBranchesKey in sourcebranches) { + var newbranch = JSON.parse(JSON.stringify(sourcebranches[sourceBranchesKey])); newbranch.id = uuidv4(); newbranch.source_id = newNodeData.id; @@ -2650,9 +2653,9 @@ const AngularWorkflow = (defaultprops) => { }); } - for (let [key,keyval] in destinationbranches.entries()) { + for (var destinationBranchesKey in destinationbranches) { var newbranch = JSON.parse( - JSON.stringify(destinationbranches[key]) + JSON.stringify(destinationbranches[destinationBranchesKey]) ); newbranch.id = uuidv4(); newbranch.destination_id = newNodeData.id; @@ -2729,19 +2732,19 @@ const AngularWorkflow = (defaultprops) => { console.log("FIND AN ACTION AMONG THE APPS THAT MATCHES NAME: ", parsedname) curaction.matching_actions = [] - for (let [key,keyval] in newapps.entries()) { - for (let [subkey,subkeyval] in newapps[key].actions.entries()) { - const tmpaction = newapps[key].actions[subkey] + for (var newAppskey in newapps) { + for (let actionsSubkey in newapps[newAppskey].actions) { + const tmpaction = newapps[newAppskey].actions[actionsSubkey] if (tmpaction.name.replaceAll(" ", "_").toLowerCase() === parsedname) { - console.log("MATCH!: ", newapps[key]) + console.log("MATCH!: ", newapps[newAppskey]) curaction.matching_actions.push({ - "app_name": newapps[key].name, - "app_version": newapps[key].app_version, - "app_id": newapps[key].id, + "app_name": newapps[newAppskey].name, + "app_version": newapps[newAppskey].app_version, + "app_id": newapps[newAppskey].id, "action": tmpaction, - "large_image": newapps[key].large_image, - "app_index": key, - "action_index": subkey, + "large_image": newapps[newAppskey].large_image, + "app_index": newAppskey, + "action_index": actionsSubkey, }) } } @@ -2801,12 +2804,12 @@ const AngularWorkflow = (defaultprops) => { const tmpAuth = JSON.parse(JSON.stringify(newAppAuth)); //var tmpAuth = newAppAuth - for (let [key,keyval] in tmpAuth.entries()) { - var item = tmpAuth[key]; + for (var tmpAuthKey in tmpAuth) { + var item = tmpAuth[tmpAuthKey]; const newfields = {}; - for (let [filterkey,filterkeyval] in item.fields.entries()) { - newfields[item.fields[filterkey].key] = item.fields[filterkey].value; + for (var fieldFilterKey in item.fields) { + newfields[item.fields[fieldFilterKey].key] = item.fields[fieldFilterKey].value; } item.fields = newfields; @@ -2837,20 +2840,20 @@ const AngularWorkflow = (defaultprops) => { curaction.parameters !== null && curaction.parameters.length > 0 ) { - for (let [key,keyval] in curaction.parameters.entries()) { + for (var curActionParamKey in curaction.parameters) { if ( - curaction.parameters[key].options !== undefined && - curaction.parameters[key].options !== null && - curaction.parameters[key].options.length > 0 && - curaction.parameters[key].value === "" + curaction.parameters[curActionParamKey].options !== undefined && + curaction.parameters[curActionParamKey].options !== null && + curaction.parameters[curActionParamKey].options.length > 0 && + curaction.parameters[curActionParamKey].value === "" ) { - curaction.parameters[key].value = curaction.parameters[key].options[0]; + curaction.parameters[curActionParamKey].value = curaction.parameters[curActionParamKey].options[0]; } } } else { console.log("Should check APP if it has the same params as ACTION") - for (let [key,keyval] in curapp.actions.entries()) { - const tmpaction = curapp.actions[key] + for (var actionKey in curapp.actions) { + const tmpaction = curapp.actions[actionKey] if (tmpaction.name === curaction.name) { console.log("Found action - needs change?", tmpaction) if (tmpaction.parameters !== undefined && tmpaction.parameters !== null && tmpaction.parameters.length > 0) { @@ -3195,8 +3198,8 @@ const AngularWorkflow = (defaultprops) => { // 2. Check parents in order var exampledata = GetExampleResult({ id: "exec", name: "exec" }); var parentlabel = "exec"; - for (let [paramkey,paramkeyval] in dstdata.parameters.entries()) { - const param = dstdata.parameters[paramkey]; + for (var dstdataParamKey in dstdata.parameters) { + const param = dstdata.parameters[dstdataParamKey]; // Skip authentication params if (param.configuration) { continue @@ -3210,10 +3213,10 @@ const AngularWorkflow = (defaultprops) => { const foundresult = GetParamMatch(paramname, exampledata, ""); if (foundresult.length > 0) { - console.log("FOUND ReS for field: ", dstdata.parameters[paramkey].name, foundresult) - if (dstdata.parameters[paramkey].value.length === 0) { - dstdata.parameters[paramkey].value = `$${parentlabel}${foundresult}`; - dstdata.parameters[paramkey].autocompleted = true + console.log("FOUND ReS for field: ", dstdata.parameters[dstdataParamKey].name, foundresult) + if (dstdata.parameters[dstdataParamKey].value.length === 0) { + dstdata.parameters[dstdataParamKey].value = `$${parentlabel}${foundresult}`; + dstdata.parameters[dstdataParamKey].autocompleted = true } } } @@ -3765,8 +3768,8 @@ const AngularWorkflow = (defaultprops) => { if (data.app_name !== undefined) { const allNodes = cy.nodes().jsons(); - for (let [key,keyval] in allNodes.entries()) { - const currentNode = allNodes[key]; + for (let allNodesKey in allNodes) { + const currentNode = allNodes[allNodesKey]; if (currentNode.data.attachedTo === data.id) { cy.getElementById(currentNode.data.id).remove(); } @@ -4048,11 +4051,18 @@ const AngularWorkflow = (defaultprops) => { const animationDuration = 150; const onNodeHoverOut = (event) => { + // console.log("Hover out: ", event.target.data()); + const nodedata = event.target.data(); + // console.log("nodedata", nodedata); + // console.log("nodedata.app_name: ", nodedata.app_name); if (nodedata.app_name !== undefined) { + const allNodes = cy.nodes().jsons(); - for (let [key,keyval] in allNodes.entries()) { - const currentNode = allNodes[key]; + // console.log("allNodes: ", allNodes) + for (var nodekey in allNodes) { + const currentNode = allNodes[nodekey]; + // console.log("Current node: ", currentNode); if ( currentNode.data.isButton && currentNode.data.attachedTo !== nodedata.id @@ -4071,7 +4081,7 @@ const AngularWorkflow = (defaultprops) => { // Skipping node editing if it's the selected one if (cy !== undefined) { const typeIds = cy.elements('node:selected').jsons(); - for (let [idkey,idkeyval] in typeIds.entries()) { + for (var idkey in typeIds) { const item = typeIds[idkey] if (item.data.id === nodedata.id) { return @@ -4329,8 +4339,9 @@ const AngularWorkflow = (defaultprops) => { const allNodes = cy.nodes().jsons(); var found = false; - for (let [key,keyval] in allNodes.entries()) { - const currentNode = allNodes[key]; + for (var _key in allNodes) { + const currentNode = allNodes[_key]; + // console.log("CURRENT NODE: ", currentNode) if ( (currentNode.data.isButton || currentNode.data.isSuggestion) && currentNode.data.attachedTo !== nodedata.id @@ -4380,7 +4391,7 @@ const AngularWorkflow = (defaultprops) => { } const typeIds = cy.elements('node:selected').jsons(); - for (let [idkey,idkeyval] in typeIds) { + for (var idkey in typeIds) { const item = typeIds[idkey] if (item.data.id === nodedata.id) { //console.log("items: ", item.data.id, nodedata.id) @@ -4791,8 +4802,8 @@ const AngularWorkflow = (defaultprops) => { // Verifies if a branch is valid and skips others var newedges = []; - for (let [key,keyval] in edges.entries()) { - var item = edges[key]; + for (var edgeKey in edges) { + var item = edges[edgeKey]; if (item.data === undefined) { continue; } @@ -4816,6 +4827,7 @@ const AngularWorkflow = (defaultprops) => { const removeNode = (nodeId) => { const selectedNode = cy.getElementById(nodeId); + // console.log("selected node in removenode", selectedNode); if (selectedNode.data() === undefined) { console.log("No node to remove") return; @@ -5139,6 +5151,7 @@ const AngularWorkflow = (defaultprops) => { var mappedStartnode = "" const alledges = cy.edges().jsons() + if (alledges !== undefined && alledges !== null && alledges.length > 0) { for (let [key,keyval] in alledges.entries()) { const tmp = alledges[key] console.log("TMP: ", tmp, tmp.data.source) @@ -5147,6 +5160,7 @@ const AngularWorkflow = (defaultprops) => { break } } + } alert.info("Creating schedule with name " + trigger.name); const data = { @@ -7457,8 +7471,10 @@ const AngularWorkflow = (defaultprops) => { const handleActionHover = (inside, actionId) => { var node = cy.getElementById(actionId); + console.log("Hovering over action: " + actionId) if (node.length > 0) { if (inside) { + console.log("Hovering over action: " + actionId) node.addClass("shuffle-hover-highlight"); } else { node.removeClass("shuffle-hover-highlight");