Merge pull request #12 from sartography/feature/pre_post_script_launch_button
using new bpmn-js-spiffworkflow for python scripts w/ burnettk danfunk
This commit is contained in:
commit
168aadbebb
|
@ -1069,12 +1069,13 @@ def task_show(process_instance_id: int, task_id: str) -> flask.wrappers.Response
|
|||
)
|
||||
if ui_form_contents:
|
||||
task.form_ui_schema = ui_form_contents
|
||||
elif task.type == "Manual Task":
|
||||
if task.properties and task.data:
|
||||
if task.properties["instructionsForEndUser"]:
|
||||
task.properties["instructionsForEndUser"] = render_jinja_template(
|
||||
task.properties["instructionsForEndUser"], task.data
|
||||
)
|
||||
|
||||
if task.properties and task.data and "instructionsForEndUser" in task.properties:
|
||||
print(f"task.properties['instructionsForEndUser']: {task.properties['instructionsForEndUser']}")
|
||||
if task.properties["instructionsForEndUser"]:
|
||||
task.properties["instructionsForEndUser"] = render_jinja_template(
|
||||
task.properties["instructionsForEndUser"], task.data
|
||||
)
|
||||
return make_response(jsonify(task), 200)
|
||||
|
||||
|
||||
|
|
|
@ -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);
|
||||
onLaunchScriptEditor(element, script, scriptType, eventBus, modeling);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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',
|
||||
|
|
|
@ -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<string>('');
|
||||
const [scriptType, setScriptType] = useState<string>('');
|
||||
const [scriptEventBus, setScriptEventBus] = useState<any>(null);
|
||||
const [scriptModeling, setScriptModeling] = useState(null);
|
||||
const [scriptElement, setScriptElement] = useState(null);
|
||||
const [showScriptEditor, setShowScriptEditor] = useState(false);
|
||||
|
@ -275,25 +277,39 @@ export default function ProcessModelEditDiagram() {
|
|||
}
|
||||
};
|
||||
|
||||
const onLaunchScriptEditor = (element: any, modeling: any) => {
|
||||
setScriptText(element.businessObject.script || '');
|
||||
const onLaunchScriptEditor = (
|
||||
element: any,
|
||||
script: string,
|
||||
scriptTypeString: string,
|
||||
eventBus: any,
|
||||
modeling: any
|
||||
) => {
|
||||
// TODO: modeling is only needed for script unit tests.
|
||||
// we should update this to act like updating scripts
|
||||
// where we pass an event to bpmn-js
|
||||
setScriptModeling(modeling);
|
||||
|
||||
setScriptText(script || '');
|
||||
setScriptType(scriptTypeString);
|
||||
setScriptEventBus(eventBus);
|
||||
setScriptElement(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,
|
||||
});
|
||||
};
|
||||
|
||||
const handleEditorScriptTestUnitInputChange = (value: any) => {
|
||||
|
|
|
@ -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 (
|
||||
|
|
Loading…
Reference in New Issue