ResultVariable.js 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. 'use strict';
  2. var is = require('bpmn-js/lib/util/ModelUtil').is;
  3. var assign = require('lodash/assign');
  4. var entryFactory = require('../../../../factory/EntryFactory'),
  5. cmdHelper = require('../../../../helper/CmdHelper');
  6. module.exports = function(element, bpmnFactory, options, translate) {
  7. var getBusinessObject = options.getBusinessObject,
  8. hideResultVariable = options.hideResultVariable,
  9. id = options.id || 'resultVariable';
  10. var resultVariableEntry = entryFactory.textField({
  11. id: id,
  12. label: translate('Result Variable'),
  13. modelProperty: 'resultVariable',
  14. get: function(element, node) {
  15. var bo = getBusinessObject(element);
  16. return { resultVariable: bo.get('activiti:resultVariable') };
  17. },
  18. set: function(element, values, node) {
  19. var bo = getBusinessObject(element);
  20. var resultVariable = values.resultVariable || undefined;
  21. var props = {
  22. 'activiti:resultVariable': resultVariable
  23. };
  24. if (is(bo, 'activiti:DmnCapable') && !resultVariable) {
  25. props = assign({ 'activiti:mapDecisionResult': 'resultList' }, props);
  26. }
  27. return cmdHelper.updateBusinessObject(element, bo, props);
  28. },
  29. hidden: function(element, node) {
  30. if (typeof hideResultVariable === 'function') {
  31. return hideResultVariable.apply(resultVariableEntry, arguments);
  32. }
  33. }
  34. });
  35. return [ resultVariableEntry ];
  36. };