mirror of
https://github.com/sartography/bpmn-js.git
synced 2025-02-17 03:16:32 +00:00
parent
a41f5d034e
commit
9bcdd3b958
@ -2,6 +2,7 @@
|
||||
|
||||
var find = require('lodash/collection/find'),
|
||||
any = require('lodash/collection/any'),
|
||||
filter = require('lodash/collection/filter'),
|
||||
forEach = require('lodash/collection/forEach'),
|
||||
inherits = require('inherits');
|
||||
|
||||
@ -91,6 +92,13 @@ BpmnRules.prototype.init = function() {
|
||||
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;
|
||||
|
@ -64,7 +64,7 @@ describe('features - context-pad', function() {
|
||||
inject(function (elementRegistry, contextPad, customRules) {
|
||||
|
||||
// given
|
||||
customRules.addRule('elements.delete', function() {
|
||||
customRules.addRule('elements.delete', 1500, function() {
|
||||
return true;
|
||||
});
|
||||
|
||||
@ -82,7 +82,7 @@ describe('features - context-pad', function() {
|
||||
inject(function(elementRegistry, contextPad, customRules) {
|
||||
|
||||
// given
|
||||
customRules.addRule('elements.delete', function() {
|
||||
customRules.addRule('elements.delete', 1500, function() {
|
||||
return false;
|
||||
});
|
||||
|
||||
@ -101,7 +101,7 @@ describe('features - context-pad', function() {
|
||||
// given
|
||||
var element = elementRegistry.get('StartEvent_1');
|
||||
|
||||
customRules.addRule('elements.delete', function(context) {
|
||||
customRules.addRule('elements.delete', 1500, function(context) {
|
||||
|
||||
// element array is actually passed
|
||||
expect(context.elements).to.eql([ element ]);
|
||||
@ -120,7 +120,7 @@ describe('features - context-pad', function() {
|
||||
inject(function(elementRegistry, contextPad, customRules) {
|
||||
|
||||
// given
|
||||
customRules.addRule('elements.delete', function(context) {
|
||||
customRules.addRule('elements.delete', 1500, function(context) {
|
||||
return context.elements;
|
||||
});
|
||||
|
||||
@ -138,7 +138,7 @@ describe('features - context-pad', function() {
|
||||
inject(function(elementRegistry, contextPad, customRules) {
|
||||
|
||||
// given
|
||||
customRules.addRule('elements.delete', function() {
|
||||
customRules.addRule('elements.delete', 1500, function() {
|
||||
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