UNPKG

@yape/plugin-browser-user-task-payload-editor

Version:

Yape Plugin to support exclusive gateways configured with the camunda modeler

48 lines (38 loc) 1.31 kB
import { Plugins } from '@yape/engine'; class UserTaskPayloadEditor extends Plugins.UserTask { onActive(definition, processInstance) { const editorContainer = document.createElement('div'); document.body.appendChild(editorContainer); const editor = CodeMirror(editorContainer, { lineNumbers: true, mode: 'javascript', json: true, tabSize: 2, value: js_beautify(JSON.stringify(processInstance.payload), { indent_size: 2, }), }); const title = document.createElement('h3'); title.innerHTML = definition.name; title.style.margin = 0; title.style.background = '#444'; title.style.color = '#FFF'; title.style.padding = '12px'; title.style.fontFamily = 'Arial'; editor.doc.cm.display.wrapper.prepend(title); editor.addKeyMap({ 'Cmd-Enter': () => { // eslint-disable-next-line processInstance.payload = JSON.parse(editor.getValue()); editor.doc.cm.display.wrapper.remove(); document.body.removeChild(editorContainer); editorContainer.remove(); processInstance.run(); }, }); } } export default UserTaskPayloadEditor; if (typeof Yape !== 'undefined' && Yape.Plugins) { Yape.Plugins['browser-user-task-payload-editor'] = UserTaskPayloadEditor; }