diff --git a/projects/workflows-creator/src/lib/classes/nodes/abstract-workflow-action.class.ts b/projects/workflows-creator/src/lib/classes/nodes/abstract-workflow-action.class.ts index 7356955..eb75aac 100644 --- a/projects/workflows-creator/src/lib/classes/nodes/abstract-workflow-action.class.ts +++ b/projects/workflows-creator/src/lib/classes/nodes/abstract-workflow-action.class.ts @@ -4,4 +4,14 @@ import {AbstractWorkflowNode} from './abstract-workflow-node.class'; export abstract class WorkflowAction extends AbstractWorkflowNode { abstract isElseAction: boolean; type = NodeTypes.ACTION; + + private static _isEnabled = true; + + isEnabled(): boolean { + return (this.constructor as typeof WorkflowAction)._isEnabled; + } + + static setEnabled(value: boolean): void { + this._isEnabled = value; + } } diff --git a/projects/workflows-creator/src/lib/classes/nodes/abstract-workflow-event.class.ts b/projects/workflows-creator/src/lib/classes/nodes/abstract-workflow-event.class.ts index bca0b23..42f5fe5 100644 --- a/projects/workflows-creator/src/lib/classes/nodes/abstract-workflow-event.class.ts +++ b/projects/workflows-creator/src/lib/classes/nodes/abstract-workflow-event.class.ts @@ -5,4 +5,13 @@ export abstract class WorkflowEvent extends AbstractWorkflowNode { abstract trigger: boolean; type = NodeTypes.EVENT; startElement: string; + private static _isEnabled = true; + + isEnabled(): boolean { + return (this.constructor as typeof WorkflowEvent)._isEnabled; + } + + static setEnabled(value: boolean): void { + this._isEnabled = value; + } } diff --git a/projects/workflows-creator/src/lib/services/bpmn/node.service.ts b/projects/workflows-creator/src/lib/services/bpmn/node.service.ts index 07f0ab7..2b07987 100644 --- a/projects/workflows-creator/src/lib/services/bpmn/node.service.ts +++ b/projects/workflows-creator/src/lib/services/bpmn/node.service.ts @@ -43,6 +43,7 @@ export class BpmnNodesService extends NodeService { const actions = this.nodes .map(Node => new Node(localizedStrings, this.utils.uuid())) .filter(n => n.type === NodeTypes.ACTION) + .filter(action => (action as WorkflowAction).isEnabled()) .sort((a, b) => a.name.toString().localeCompare(b.name.toString(), undefined, { sensitivity: 'base', @@ -83,7 +84,8 @@ export class BpmnNodesService extends NodeService { ), ) .filter(n => n.type === NodeTypes.EVENT) - .filter(instance => trigger === (instance as WorkflowEvent).trigger); + .filter(instance => trigger === (instance as WorkflowEvent).trigger) + .filter(instance => (instance as WorkflowEvent).isEnabled()); } /**