mirror of
https://github.com/sartography/bpmn-js.git
synced 2025-02-19 20:28:06 +00:00
parent
a41f5d034e
commit
9bcdd3b958
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
var find = require('lodash/collection/find'),
|
var find = require('lodash/collection/find'),
|
||||||
any = require('lodash/collection/any'),
|
any = require('lodash/collection/any'),
|
||||||
|
filter = require('lodash/collection/filter'),
|
||||||
forEach = require('lodash/collection/forEach'),
|
forEach = require('lodash/collection/forEach'),
|
||||||
inherits = require('inherits');
|
inherits = require('inherits');
|
||||||
|
|
||||||
@ -91,6 +92,13 @@ BpmnRules.prototype.init = function() {
|
|||||||
return canAttach([ shape ], target, source, position) || canCreate(shape, target, source, position);
|
return canAttach([ shape ], target, source, position) || canCreate(shape, target, source, position);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
this.addRule([ 'elements.delete' ], function(context) {
|
||||||
|
|
||||||
|
// do not allow deletion of labels
|
||||||
|
return filter(context.elements, function(e) {
|
||||||
|
return !isLabel(e);
|
||||||
|
});
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
BpmnRules.prototype.canConnectMessageFlow = canConnectMessageFlow;
|
BpmnRules.prototype.canConnectMessageFlow = canConnectMessageFlow;
|
||||||
|
@ -64,7 +64,7 @@ describe('features - context-pad', function() {
|
|||||||
inject(function (elementRegistry, contextPad, customRules) {
|
inject(function (elementRegistry, contextPad, customRules) {
|
||||||
|
|
||||||
// given
|
// given
|
||||||
customRules.addRule('elements.delete', function() {
|
customRules.addRule('elements.delete', 1500, function() {
|
||||||
return true;
|
return true;
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -82,7 +82,7 @@ describe('features - context-pad', function() {
|
|||||||
inject(function(elementRegistry, contextPad, customRules) {
|
inject(function(elementRegistry, contextPad, customRules) {
|
||||||
|
|
||||||
// given
|
// given
|
||||||
customRules.addRule('elements.delete', function() {
|
customRules.addRule('elements.delete', 1500, function() {
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -101,7 +101,7 @@ describe('features - context-pad', function() {
|
|||||||
// given
|
// given
|
||||||
var element = elementRegistry.get('StartEvent_1');
|
var element = elementRegistry.get('StartEvent_1');
|
||||||
|
|
||||||
customRules.addRule('elements.delete', function(context) {
|
customRules.addRule('elements.delete', 1500, function(context) {
|
||||||
|
|
||||||
// element array is actually passed
|
// element array is actually passed
|
||||||
expect(context.elements).to.eql([ element ]);
|
expect(context.elements).to.eql([ element ]);
|
||||||
@ -120,7 +120,7 @@ describe('features - context-pad', function() {
|
|||||||
inject(function(elementRegistry, contextPad, customRules) {
|
inject(function(elementRegistry, contextPad, customRules) {
|
||||||
|
|
||||||
// given
|
// given
|
||||||
customRules.addRule('elements.delete', function(context) {
|
customRules.addRule('elements.delete', 1500, function(context) {
|
||||||
return context.elements;
|
return context.elements;
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -138,7 +138,7 @@ describe('features - context-pad', function() {
|
|||||||
inject(function(elementRegistry, contextPad, customRules) {
|
inject(function(elementRegistry, contextPad, customRules) {
|
||||||
|
|
||||||
// given
|
// given
|
||||||
customRules.addRule('elements.delete', function() {
|
customRules.addRule('elements.delete', 1500, function() {
|
||||||
return [];
|
return [];
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -1317,4 +1317,29 @@ describe('features/modeling/rules - BpmnRules', function() {
|
|||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
describe('labels', function() {
|
||||||
|
|
||||||
|
var testXML = require('./BpmnRules.process.bpmn');
|
||||||
|
|
||||||
|
beforeEach(bootstrapModeler(testXML, { modules: testModules }));
|
||||||
|
|
||||||
|
|
||||||
|
it('should filter labels', inject(function(elementRegistry, rules) {
|
||||||
|
|
||||||
|
// given
|
||||||
|
var startEventShape = elementRegistry.get('StartEvent_None'),
|
||||||
|
startEventLabel = startEventShape.label;
|
||||||
|
|
||||||
|
// when
|
||||||
|
var allowed = rules.allowed('elements.delete', {
|
||||||
|
elements: [ startEventShape, startEventLabel ]
|
||||||
|
});
|
||||||
|
|
||||||
|
// then
|
||||||
|
expect(allowed).to.eql([ startEventShape ]);
|
||||||
|
}));
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
Loading…
x
Reference in New Issue
Block a user