fix(paste): copy process with participant
Closes camunda/camunda-modeler#297
This commit is contained in:
parent
80d62b9873
commit
839ed0b8e8
|
@ -133,6 +133,10 @@ function BpmnCopyPaste(bpmnFactory, eventBus, copyPaste, clipboard, moddle, canv
|
||||||
|
|
||||||
descriptor.businessObject = businessObject = bpmnFactory.create(descriptor.type);
|
descriptor.businessObject = businessObject = bpmnFactory.create(descriptor.type);
|
||||||
|
|
||||||
|
if (descriptor.type === 'bpmn:Participant' && descriptor.processRef) {
|
||||||
|
descriptor.processRef = businessObject.processRef = bpmnFactory.create('bpmn:Process');
|
||||||
|
}
|
||||||
|
|
||||||
setProperties(businessObject, descriptor, [
|
setProperties(businessObject, descriptor, [
|
||||||
'name',
|
'name',
|
||||||
'text',
|
'text',
|
||||||
|
|
|
@ -11,7 +11,8 @@ var bpmnCopyPasteModule = require('../../../../lib/features/copy-paste'),
|
||||||
coreModule = require('../../../../lib/core');
|
coreModule = require('../../../../lib/core');
|
||||||
|
|
||||||
var map = require('lodash/collection/map'),
|
var map = require('lodash/collection/map'),
|
||||||
forEach = require('lodash/collection/forEach');
|
forEach = require('lodash/collection/forEach'),
|
||||||
|
uniq = require('lodash/array/uniq');
|
||||||
|
|
||||||
var DescriptorTree = require('./DescriptorTree');
|
var DescriptorTree = require('./DescriptorTree');
|
||||||
|
|
||||||
|
@ -432,23 +433,52 @@ describe('features/copy-paste', function() {
|
||||||
|
|
||||||
it('multiple participants', inject(integrationTest([ 'Participant_0pgdgt4', 'Participant_1id96b4' ])));
|
it('multiple participants', inject(integrationTest([ 'Participant_0pgdgt4', 'Participant_1id96b4' ])));
|
||||||
|
|
||||||
|
it('multiple participants', inject(integrationTest([ 'Participant_0pgdgt4', 'Participant_1id96b4' ])));
|
||||||
});
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
describe('data associations', function() {
|
describe('participants', function() {
|
||||||
|
|
||||||
beforeEach(bootstrapModeler(collaborationAssociations, { modules: testModules }));
|
beforeEach(bootstrapModeler(collaborationAssociations, { modules: testModules }));
|
||||||
|
|
||||||
|
|
||||||
describe('integration', function() {
|
it('copying participant should copy process as well', inject(function(elementRegistry, copyPaste, canvas) {
|
||||||
|
// given
|
||||||
|
var participants = map([ 'Participant_Input', 'Participant_Output' ], function (e) {
|
||||||
|
return elementRegistry.get(e);
|
||||||
|
});
|
||||||
|
var rootElement = canvas.getRootElement();
|
||||||
|
|
||||||
it('participant with OutputDataAssociation', inject(integrationTest([ 'Participant_Output' ])));
|
// when
|
||||||
|
copyPaste.copy(participants);
|
||||||
|
|
||||||
it('participant with InputDataAssociation', inject(integrationTest([ 'Participant_Input' ])));
|
copyPaste.paste({
|
||||||
|
element: rootElement,
|
||||||
|
point: {
|
||||||
|
x: 4000,
|
||||||
|
y: 4500
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
});
|
// then
|
||||||
|
var elements = elementRegistry.filter(function(element) {
|
||||||
|
return element.type === 'bpmn:Participant';
|
||||||
|
});
|
||||||
|
|
||||||
|
var processIds = map(elements, function (e) {
|
||||||
|
return e.businessObject.processRef.id;
|
||||||
|
});
|
||||||
|
|
||||||
|
expect(uniq(processIds)).to.have.length(4);
|
||||||
|
}));
|
||||||
|
|
||||||
|
|
||||||
|
it('participant with OutputDataAssociation', inject(integrationTest([ 'Participant_Output' ])));
|
||||||
|
|
||||||
|
|
||||||
|
it('participant with InputDataAssociation', inject(integrationTest([ 'Participant_Input' ])));
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue