Fix/message variable name (#101)
* The variable name is still missing from the old models * The variable name is still missing from the old models * code rabbit suggestion and some linting --------- Co-authored-by: jasquat <jasquat@users.noreply.github.com>
This commit is contained in:
parent
ee86b31cd7
commit
7f7707838a
|
@ -1,7 +1,10 @@
|
|||
import React from 'react';
|
||||
import { useService } from 'bpmn-js-properties-panel';
|
||||
import { TextFieldEntry } from '@bpmn-io/properties-panel';
|
||||
import { getMessageElementForShapeElement, isMessageEvent } from '../../MessageHelpers';
|
||||
import {
|
||||
getMessageElementForShapeElement,
|
||||
isMessageEvent,
|
||||
} from '../../MessageHelpers';
|
||||
|
||||
/**
|
||||
* Allows the creation, or editing of messageVariable at the bpmn:sendTask level of a BPMN document.
|
||||
|
@ -15,13 +18,16 @@ export function MessageVariable(props) {
|
|||
|
||||
const getMessageVariableObject = () => {
|
||||
if (element) {
|
||||
const { extensionElements } = (isMessageEvent(element)) ? element.businessObject.eventDefinitions[0] : element.businessObject;
|
||||
if (extensionElements) {
|
||||
return extensionElements
|
||||
const { extensionElements } = isMessageEvent(element)
|
||||
? element.businessObject.eventDefinitions[0]
|
||||
: element.businessObject;
|
||||
if (extensionElements && extensionElements.get('values')) {
|
||||
let variableResp = extensionElements
|
||||
.get('values')
|
||||
.filter(function getInstanceOfType(e) {
|
||||
return e.$instanceOf('spiffworkflow:MessageVariable');
|
||||
})[0];
|
||||
return variableResp;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
|
@ -32,25 +38,49 @@ export function MessageVariable(props) {
|
|||
if (messageVariableObject) {
|
||||
return messageVariableObject.value;
|
||||
}
|
||||
|
||||
// Check : for old models where messageVariable exists on message level
|
||||
const bo = isMessageEvent(element)
|
||||
? element.businessObject.eventDefinitions[0]
|
||||
: element.businessObject;
|
||||
|
||||
const { messageRef } = bo;
|
||||
if (messageRef) {
|
||||
const { extensionElements } = messageRef;
|
||||
const messageResp = extensionElements
|
||||
? extensionElements.get('values').filter(function getInstanceOfType(e) {
|
||||
return e.$instanceOf('spiffworkflow:MessageVariable');
|
||||
})[0]
|
||||
: undefined;
|
||||
|
||||
if (messageResp) {
|
||||
setValue(messageResp.value);
|
||||
return messageResp.value;
|
||||
}
|
||||
}
|
||||
|
||||
return '';
|
||||
};
|
||||
|
||||
const setValue = (value) => {
|
||||
var extensions = (isMessageEvent(element)) ?
|
||||
element.businessObject.eventDefinitions[0].get('extensionElements') || moddle.create('bpmn:ExtensionElements') :
|
||||
element.businessObject.get('extensionElements') || moddle.create('bpmn:ExtensionElements');
|
||||
var extensions = isMessageEvent(element)
|
||||
? element.businessObject.eventDefinitions[0].get('extensionElements') ||
|
||||
moddle.create('bpmn:ExtensionElements')
|
||||
: element.businessObject.get('extensionElements') ||
|
||||
moddle.create('bpmn:ExtensionElements');
|
||||
|
||||
let messageVariableObject = getMessageVariableObject();
|
||||
if (!messageVariableObject) {
|
||||
messageVariableObject = moddle.create(
|
||||
'spiffworkflow:MessageVariable'
|
||||
);
|
||||
extensions
|
||||
.get('values')
|
||||
.push(messageVariableObject);
|
||||
messageVariableObject = moddle.create('spiffworkflow:MessageVariable');
|
||||
extensions.get('values').push(messageVariableObject);
|
||||
}
|
||||
messageVariableObject.value = value;
|
||||
(isMessageEvent(element)) ? element.businessObject.eventDefinitions[0].set('extensionElements', extensions) : element.businessObject.set('extensionElements', extensions);
|
||||
isMessageEvent(element)
|
||||
? element.businessObject.eventDefinitions[0].set(
|
||||
'extensionElements',
|
||||
extensions
|
||||
)
|
||||
: element.businessObject.set('extensionElements', extensions);
|
||||
commandStack.execute('element.updateProperties', {
|
||||
element,
|
||||
properties: {},
|
||||
|
|
Loading…
Reference in New Issue