From 0c035b6ac73a71712571584c651253582ac745a9 Mon Sep 17 00:00:00 2001 From: monilprajapati Date: Wed, 17 Jul 2024 15:14:03 +0530 Subject: [PATCH] Fixed the paramChange Issue and finally done with the rendering issue of Subflow --- .../src/components/ShuffleCodeEditor1.jsx | 54 +++++++++++-- frontend/src/views/AngularWorkflow.jsx | 75 ++++++------------- 2 files changed, 68 insertions(+), 61 deletions(-) diff --git a/frontend/src/components/ShuffleCodeEditor1.jsx b/frontend/src/components/ShuffleCodeEditor1.jsx index ab4fee06..667fafe3 100644 --- a/frontend/src/components/ShuffleCodeEditor1.jsx +++ b/frontend/src/components/ShuffleCodeEditor1.jsx @@ -109,6 +109,7 @@ const CodeEditor = (props) => { setActiveDialog, fieldname, contentLoading, + selectedTrigger, } = props const [localcodedata, setlocalcodedata] = React.useState(codedata === undefined || codedata === null || codedata.length === 0 ? "" : codedata); @@ -436,7 +437,8 @@ const CodeEditor = (props) => { } const autoFormat = (input) => { - // Check if it's default too + if(selectedAction && selectedAction.parameters && selectedAction.parameters.length > 0){ + // Check if it's default too if (validation !== true) { // Should try to automatically fix this input @@ -475,6 +477,48 @@ const CodeEditor = (props) => { if (input !== localcodedata) { setlocalcodedata(input) } + } + + if(selectedTrigger && selectedTrigger.parameters && selectedTrigger.parameters.length > 0){ + if (validation !== true) { + + // Should try to automatically fix this input + console.log("Running AI input fixer") + if (aiSubmit !== undefined && parameterName !== undefined && selectedTrigger !== undefined) { + + // Should remove params from selectedAction that aren't parameterName + var tmpAction = JSON.parse(JSON.stringify(selectedTrigger)) + var tmpParams = selectedTrigger.parameters.filter((param) => param.name === parameterName) + + var aiMsg = `Make it valid for trigger ${tmpAction.label} with parameter ${parameterName}: ` + if (tmpParams.length > 0) { + aiMsg += tmpParams[0].value + } + + + if (localcodedata.startsWith("//")) { + aiMsg = localcodedata + } + + tmpAction.parameters = tmpParams + console.log("Parameters: ", tmpParams.length) + + aiSubmit(aiMsg, tmpAction) + } + + return + } + + try { + input = JSON.stringify(JSON.parse(input), null, 4) + } catch (e) { + console.log("Failed magic JSON stringification: ", e) + } + + if (input !== localcodedata) { + setlocalcodedata(input) + } + } } const findIndex = (line, loc) => { @@ -1767,7 +1811,6 @@ const CodeEditor = (props) => { // This is to make it so we don't need to handle these fixes on the // backend by itself var fixedcodedata = localcodedata - console.log("Fixedcodedata: ", fixedcodedata) const valid = validateJson(localcodedata, true) if (valid.valid) { fixedcodedata = JSON.stringify(valid.result, null, 2) @@ -1780,11 +1823,6 @@ const CodeEditor = (props) => { setcodedata(fixedcodedata); setExpansionModalOpen(false) } else if (changeActionParameterCodeMirror !== undefined) { - console.log("Entering in Submit onCLick") - console.log("Data passing to chnageActionParameterCodeMirror: ", fixedcodedata) - console.log("Fieldcount: ", fieldCount) - console.log("Actionlist: ", actionlist) - console.log("Event: ", event) //changeActionParameterCodeMirror(event, fieldCount, fixedcodedata) changeActionParameterCodeMirror(event, fieldCount, fixedcodedata, actionlist) setExpansionModalOpen(false) @@ -1808,4 +1846,4 @@ const CodeEditor = (props) => { ) } -export default CodeEditor; +export default CodeEditor; \ No newline at end of file diff --git a/frontend/src/views/AngularWorkflow.jsx b/frontend/src/views/AngularWorkflow.jsx index 61d6fbfe..e9bb7b4c 100755 --- a/frontend/src/views/AngularWorkflow.jsx +++ b/frontend/src/views/AngularWorkflow.jsx @@ -1,5 +1,5 @@ /* eslint-disable react/no-multi-comp */ -import React, { useState, useEffect, useLayoutEffect, memo, useMemo, useRef } from "react"; +import React, { useState, useEffect, useLayoutEffect } from "react"; import ReactDOM from "react-dom" import theme from "../theme.jsx"; @@ -922,14 +922,8 @@ const releaseToConnectLabel = "Release to Connect" setSubflowActionlist(newActionList); - },[selectedTrigger, workflowExecutions]); - - - useEffect(() => { - if(selectedTrigger.parameters !== undefined && selectedTrigger.parameters.length > 1){ - setSubflowExec(selectedTrigger?.parameters[1]?.value) - } - },[selectedTrigger,selectedTriggerIndex,subflowActionList]); + },[selectedTrigger, workflowExecutions, workflow.workflow_variables, workflow.execution_variables, workflow.branches,workflow]); + const [executionArgumentModalOpen, setExecutionArgumentModalOpen] = React.useState(false); @@ -4671,7 +4665,6 @@ const releaseToConnectLabel = "Release to Connect" } - console.log("Selected Trigger: ", selectedTrigger) // Nodeselectbatching: // https://stackoverflow.com/questions/16677856/cy-onselect-callback-only-once // onNodeClick @@ -4686,8 +4679,6 @@ const releaseToConnectLabel = "Release to Connect" if ((data.parameters !== undefined) && (data?.parameters?.length > 0)) { getWorkflowApps(data.parameters[0].value) } - console.log("data", data) - // setSubflowExec(data?.parameters[1]?.value) } if (data.buttonType == "ACTIONSUGGESTION") { @@ -12976,9 +12967,14 @@ const releaseToConnectLabel = "Release to Connect" if (selectedTrigger.name === "Shuffle Workflow") { const toComplete = selectedTrigger.parameters[1].value + "$" + values[0].autocomplete - selectedTrigger.parameters[1].value = toComplete - // setSubflowExec(selectedTrigger.parameters[1].value) - setSelectedTrigger(selectedTrigger) + // selectedTrigger.parameters[1].value = toComplete + workflow.triggers[selectedTriggerIndex].parameters[1].value = toComplete + const foundfield = document.getElementById("subflow_field") + if (foundfield !== undefined && foundfield !== null) { + foundfield.value = toComplete + } + // setSelectedTrigger(selectedTrigger) + // setSubflowExec(toComplete) setWorkflow(workflow) } @@ -12987,16 +12983,6 @@ const releaseToConnectLabel = "Release to Connect" setMenuPosition(null); }; - const handleSubflowExecChange = (e) => { - setSubflowExec(e.target.value) - // if(selectedTrigger.length > 0){ - // selectedTrigger.parameters[1].value = e.target.value - // setSelectedTrigger(selectedTrigger) - // setWorkflow(workflow) - // setLastSaved(false) - // } - } - const SubflowSidebar = Object.getOwnPropertyNames(selectedTrigger).length === 0 || workflow.triggers[selectedTriggerIndex] === undefined || selectedTrigger.trigger_type !== "SUBFLOW" ? null :
@@ -13287,6 +13273,7 @@ const releaseToConnectLabel = "Release to Connect" value: data } }) + document.activeElement.blur(); }} > @@ -13302,11 +13289,6 @@ const releaseToConnectLabel = "Release to Connect" backgroundColor: theme.palette.inputColor, borderRadius: theme.palette.borderRadius, }} - sx={{ - '& .MuiInputLabel-root': { - transition: 'none', // Disable the animation for the label - }, - }} {...params} label="Find your workflow" variant="outlined" @@ -13414,11 +13396,6 @@ const releaseToConnectLabel = "Release to Connect" backgroundColor: theme.palette.inputColor, borderRadius: theme.palette.borderRadius, }} - sx={{ - '& .MuiInputLabel-root': { - transition: 'none', // Disable the animation for the label - }, - }} {...params} label="Select a start-node (optional)" variant="outlined" @@ -13481,7 +13458,7 @@ const releaseToConnectLabel = "Release to Connect" }} /> - + { @@ -13503,23 +13480,15 @@ const releaseToConnectLabel = "Release to Connect" fullWidth color="primary" placeholder="Some execution data" - // defaultValue={ - // workflow?.triggers[selectedTriggerIndex]?.parameters[1]?.value - // } - value={subflowExec} - onChange={(e) => { - // handleSubflowExecChange(e) - setSubflowExec(e.target.value) - // workflow.triggers[selectedTriggerIndex].parameters[1].value = e.target.value - // setWorkflow(workflow) + defaultValue={ + workflow?.triggers[selectedTriggerIndex]?.parameters[1]?.value + } + onBlur={(e) => { + workflow.triggers[selectedTriggerIndex].parameters[1].value = e.target.value + setWorkflow(workflow) + setLastSaved(false) }} - // onBlur={(e) => { - // setLastSaved(false) - - // // workflow.triggers[selectedTriggerIndex].parameters[1].value = e.target.value - // // setWorkflow(workflow) - // }} /> {!showDropdown ? null :