From 37fbb1c6f00154871cf30c0f465a776fb4e4a88e Mon Sep 17 00:00:00 2001 From: jasquat Date: Mon, 31 Oct 2022 16:51:27 -0400 Subject: [PATCH] using new bpmn-js-spiffworkflow for python scripts w/ burnettk danfunk --- .../src/components/ReactDiagramEditor.tsx | 17 ++++++---- .../src/routes/ProcessModelEditDiagram.tsx | 33 ++++++++++++++----- .../src/routes/TaskShow.tsx | 2 +- 3 files changed, 36 insertions(+), 16 deletions(-) diff --git a/spiffworkflow-frontend/src/components/ReactDiagramEditor.tsx b/spiffworkflow-frontend/src/components/ReactDiagramEditor.tsx index c8b079f3..0a604972 100644 --- a/spiffworkflow-frontend/src/components/ReactDiagramEditor.tsx +++ b/spiffworkflow-frontend/src/components/ReactDiagramEditor.tsx @@ -177,11 +177,16 @@ export default function ReactDiagramEditor({ }); } - function handleLaunchScriptEditor(element: any) { + function handleLaunchScriptEditor( + element: any, + script: string, + scriptType: string, + eventBus: any + ) { if (onLaunchScriptEditor) { setPerformingXmlUpdates(true); - const modeling = diagramModeler.get('modeling'); - onLaunchScriptEditor(element, modeling); + // const modeling = diagramModeler.get('modeling'); + onLaunchScriptEditor(element, script, scriptType, eventBus); } } @@ -199,12 +204,12 @@ export default function ReactDiagramEditor({ setDiagramModelerState(diagramModeler); - diagramModeler.on('launch.script.editor', (event: any) => { - const { error, element } = event; + diagramModeler.on('script.editor.launch', (event: any) => { + const { error, element, scriptType, script, eventBus } = event; if (error) { console.log(error); } - handleLaunchScriptEditor(element); + handleLaunchScriptEditor(element, script, scriptType, eventBus); }); // 'element.hover', diff --git a/spiffworkflow-frontend/src/routes/ProcessModelEditDiagram.tsx b/spiffworkflow-frontend/src/routes/ProcessModelEditDiagram.tsx index 2382fce7..53f335a2 100644 --- a/spiffworkflow-frontend/src/routes/ProcessModelEditDiagram.tsx +++ b/spiffworkflow-frontend/src/routes/ProcessModelEditDiagram.tsx @@ -18,7 +18,9 @@ export default function ProcessModelEditDiagram() { const [showFileNameEditor, setShowFileNameEditor] = useState(false); const handleShowFileNameEditor = () => setShowFileNameEditor(true); - const [scriptText, setScriptText] = useState(''); + const [scriptText, setScriptText] = useState(''); + const [scriptType, setScriptType] = useState(''); + const [scriptEventBus, setScriptEventBus] = useState(null); const [scriptModeling, setScriptModeling] = useState(null); const [scriptElement, setScriptElement] = useState(null); const [showScriptEditor, setShowScriptEditor] = useState(false); @@ -275,25 +277,38 @@ export default function ProcessModelEditDiagram() { } }; - const onLaunchScriptEditor = (element: any, modeling: any) => { - setScriptText(element.businessObject.script || ''); - setScriptModeling(modeling); + const onLaunchScriptEditor = ( + element: any, + script: string, + scriptType: string, + eventBus: any + ) => { + setScriptText(script || ''); + setScriptType(scriptType); + setScriptEventBus(eventBus); + // setScriptModeling(modeling); setScriptElement(element); - setScriptUnitTestElementWithIndex(0, element); + // setScriptUnitTestElementWithIndex(0, element); handleShowScriptEditor(); }; const handleScriptEditorClose = () => { + scriptEventBus.fire('script.editor.update', { + scriptType, + script: scriptText, + element: scriptElement, + }); + resetUnitTextResult(); setShowScriptEditor(false); }; const handleEditorScriptChange = (value: any) => { setScriptText(value); - (scriptModeling as any).updateProperties(scriptElement, { - scriptFormat: 'python', - script: value, - }); + // (scriptModeling as any).updateProperties(scriptElement, { + // scriptFormat: 'python', + // script: value, + // }); }; const handleEditorScriptTestUnitInputChange = (value: any) => { diff --git a/spiffworkflow-frontend/src/routes/TaskShow.tsx b/spiffworkflow-frontend/src/routes/TaskShow.tsx index 28fc8582..c1c1cfe2 100644 --- a/spiffworkflow-frontend/src/routes/TaskShow.tsx +++ b/spiffworkflow-frontend/src/routes/TaskShow.tsx @@ -144,7 +144,7 @@ export default function TaskShow() { const instructionsElement = (taskToUse: any) => { let instructions = ''; - if (taskToUse.type === 'Manual Task') { + if (taskToUse.properties.instructionsForEndUser) { instructions = taskToUse.properties.instructionsForEndUser; } return (