ruoyi-vue-nocode/ruoyi-ui/ruoyi-bpmnjs/resources/properties-panel/provider/bpmn/parts/DocumentationProps.js
2022-08-11 16:10:41 +08:00

74 lines
2.0 KiB
JavaScript

'use strict';
var entryFactory = require('../../../factory/EntryFactory'),
cmdHelper = require('../../../helper/CmdHelper');
var ModelUtil = require('bpmn-js/lib/util/ModelUtil'),
is = ModelUtil.is,
getBusinessObject = ModelUtil.getBusinessObject;
module.exports = function(group, element, bpmnFactory, translate) {
var getValue = function(businessObject) {
return function(element) {
var documentations = businessObject && businessObject.get('documentation'),
text = (documentations && documentations.length > 0) ? documentations[0].text : '';
return { documentation: text };
};
};
var setValue = function(businessObject) {
return function(element, values) {
var newObjectList = [];
if (typeof values.documentation !== 'undefined' && values.documentation !== '') {
newObjectList.push(bpmnFactory.create('bpmn:Documentation', {
text: values.documentation
}));
}
return cmdHelper.setList(element, businessObject, 'documentation', newObjectList);
};
};
// Element Documentation
var elementDocuEntry = entryFactory.textBox({
id: 'documentation',
label: translate('Element Documentation'),
modelProperty: 'documentation'
});
elementDocuEntry.set = setValue(getBusinessObject(element));
elementDocuEntry.get = getValue(getBusinessObject(element));
group.entries.push(elementDocuEntry);
var processRef;
// Process Documentation when having a Collaboration Diagram
if (is(element, 'bpmn:Participant')) {
processRef = getBusinessObject(element).processRef;
// do not show for collapsed Pools/Participants
if (processRef) {
var processDocuEntry = entryFactory.textBox({
id: 'process-documentation',
label: translate('Process Documentation'),
modelProperty: 'documentation'
});
processDocuEntry.set = setValue(processRef);
processDocuEntry.get = getValue(processRef);
group.entries.push(processDocuEntry);
}
}
};