From 95c794e4e1fa9ff0832dbf59f2761772eb705318 Mon Sep 17 00:00:00 2001 From: Akanksha Singh Date: Sat, 31 Jan 2026 15:27:34 +0530 Subject: [PATCH 1/2] feat(core): allow events and action to enable disabke based on toggle feature --- .../src/lib/classes/nodes/abstract-workflow-node.class.ts | 2 ++ .../workflows-creator/src/lib/services/bpmn/node.service.ts | 4 +++- .../src/lib/services/statement/actions/changecolumn.action.ts | 4 ++++ .../src/lib/services/statement/actions/readcolumn.action.ts | 4 ++++ .../src/lib/services/statement/actions/sendmail.action.ts | 4 ++++ .../src/lib/services/statement/events/onadditem.event.ts | 4 ++++ .../src/lib/services/statement/events/onchange.event.ts | 4 ++++ .../src/lib/services/statement/events/oninterval.event.ts | 4 ++++ .../src/lib/services/statement/events/onvalue.event.ts | 4 ++++ 9 files changed, 33 insertions(+), 1 deletion(-) diff --git a/projects/workflows-creator/src/lib/classes/nodes/abstract-workflow-node.class.ts b/projects/workflows-creator/src/lib/classes/nodes/abstract-workflow-node.class.ts index 9ae2cc8..7e5d9df 100644 --- a/projects/workflows-creator/src/lib/classes/nodes/abstract-workflow-node.class.ts +++ b/projects/workflows-creator/src/lib/classes/nodes/abstract-workflow-node.class.ts @@ -12,7 +12,9 @@ export abstract class AbstractWorkflowNode { abstract state: State; abstract name: string; static identifier: string; + static isEnabled: boolean; id: string; abstract getIdentifier(): string; + abstract checkIsEnabled(): boolean; } 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..7fd153e 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).checkIsEnabled()) .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).checkIsEnabled()); } /** diff --git a/projects/workflows-creator/src/lib/services/statement/actions/changecolumn.action.ts b/projects/workflows-creator/src/lib/services/statement/actions/changecolumn.action.ts index 3c5b473..1779a1c 100644 --- a/projects/workflows-creator/src/lib/services/statement/actions/changecolumn.action.ts +++ b/projects/workflows-creator/src/lib/services/statement/actions/changecolumn.action.ts @@ -6,6 +6,7 @@ import {LocalizedStringKeys} from '../../../enum'; import {RecordOfAnyType} from '../../../types'; export class ChangeColumnValueAction extends BpmnAction { + static isEnabled = true; isElseAction: boolean; groupType: string; groupId: string; @@ -34,4 +35,7 @@ export class ChangeColumnValueAction extends BpmnAction { getIdentifier(): string { return ChangeColumnValueAction.identifier; } + checkIsEnabled(): boolean { + return ChangeColumnValueAction.isEnabled; + } } diff --git a/projects/workflows-creator/src/lib/services/statement/actions/readcolumn.action.ts b/projects/workflows-creator/src/lib/services/statement/actions/readcolumn.action.ts index c8a193a..1c49ffc 100644 --- a/projects/workflows-creator/src/lib/services/statement/actions/readcolumn.action.ts +++ b/projects/workflows-creator/src/lib/services/statement/actions/readcolumn.action.ts @@ -2,6 +2,7 @@ import {RecordOfAnyType} from '../../../types'; import {BpmnAction} from '../../../types/bpmn.types'; export class ReadColumnValueAction extends BpmnAction { + static isEnabled = true; isElseAction: boolean; groupType: string; groupId: string; @@ -27,4 +28,7 @@ export class ReadColumnValueAction extends BpmnAction { getIdentifier(): string { return ReadColumnValueAction.identifier; } + checkIsEnabled(): boolean { + return ReadColumnValueAction.isEnabled; + } } diff --git a/projects/workflows-creator/src/lib/services/statement/actions/sendmail.action.ts b/projects/workflows-creator/src/lib/services/statement/actions/sendmail.action.ts index 7628718..8d7c17d 100644 --- a/projects/workflows-creator/src/lib/services/statement/actions/sendmail.action.ts +++ b/projects/workflows-creator/src/lib/services/statement/actions/sendmail.action.ts @@ -9,6 +9,7 @@ import { } from '../inputs/email.input'; export class SendEmailAction extends BpmnAction { + static isEnabled = true; isElseAction: boolean; groupType: string; groupId: string; @@ -40,4 +41,7 @@ export class SendEmailAction extends BpmnAction { getIdentifier(): string { return SendEmailAction.identifier; } + checkIsEnabled(): boolean { + return SendEmailAction.isEnabled; + } } diff --git a/projects/workflows-creator/src/lib/services/statement/events/onadditem.event.ts b/projects/workflows-creator/src/lib/services/statement/events/onadditem.event.ts index 6599080..383a2a6 100644 --- a/projects/workflows-creator/src/lib/services/statement/events/onadditem.event.ts +++ b/projects/workflows-creator/src/lib/services/statement/events/onadditem.event.ts @@ -4,6 +4,7 @@ import {BpmnEvent} from '../../../types/bpmn.types'; import {TriggerOnAddItem} from '../../bpmn/elements/tasks/trigger-on-add-item.task'; export class OnAddItemEvent extends BpmnEvent { + static isEnabled = true; groupType: string; groupId: string; trigger = true; @@ -34,4 +35,7 @@ export class OnAddItemEvent extends BpmnEvent { getIdentifier(): string { return OnAddItemEvent.identifier; } + checkIsEnabled(): boolean { + return OnAddItemEvent.isEnabled; + } } diff --git a/projects/workflows-creator/src/lib/services/statement/events/onchange.event.ts b/projects/workflows-creator/src/lib/services/statement/events/onchange.event.ts index a2ca5e2..07fa984 100644 --- a/projects/workflows-creator/src/lib/services/statement/events/onchange.event.ts +++ b/projects/workflows-creator/src/lib/services/statement/events/onchange.event.ts @@ -8,6 +8,7 @@ import {TriggerColumnInput, ValueTypeInput} from '../inputs'; import {ValueInput} from '../inputs/value.input'; export class OnChangeEvent extends BpmnEvent { + static isEnabled = true; groupType: string; groupId: string; trigger = true; @@ -43,4 +44,7 @@ export class OnChangeEvent extends BpmnEvent { getIdentifier(): string { return OnChangeEvent.identifier; } + checkIsEnabled(): boolean { + return OnChangeEvent.isEnabled; + } } diff --git a/projects/workflows-creator/src/lib/services/statement/events/oninterval.event.ts b/projects/workflows-creator/src/lib/services/statement/events/oninterval.event.ts index 26fa0f1..c1bbdc9 100644 --- a/projects/workflows-creator/src/lib/services/statement/events/oninterval.event.ts +++ b/projects/workflows-creator/src/lib/services/statement/events/oninterval.event.ts @@ -7,6 +7,7 @@ import {IntervalInput} from '../inputs/interval.input'; import {StepperInput} from '../inputs/stepper.input'; export class OnIntervalEvent extends BpmnEvent { + static isEnabled = true; groupType: string; groupId: string; trigger = true; @@ -39,4 +40,7 @@ export class OnIntervalEvent extends BpmnEvent { getIdentifier(): string { return OnIntervalEvent.identifier; } + checkIsEnabled(): boolean { + return OnIntervalEvent.isEnabled; + } } diff --git a/projects/workflows-creator/src/lib/services/statement/events/onvalue.event.ts b/projects/workflows-creator/src/lib/services/statement/events/onvalue.event.ts index f792117..9e65eb3 100644 --- a/projects/workflows-creator/src/lib/services/statement/events/onvalue.event.ts +++ b/projects/workflows-creator/src/lib/services/statement/events/onvalue.event.ts @@ -8,6 +8,7 @@ import {CriteriaInput} from '../inputs/criteria.input'; import {ValueInput} from '../inputs/value.input'; export class OnValueEvent extends BpmnEvent { + static isEnabled = true; groupType: string; groupId: string; trigger = false; @@ -38,4 +39,7 @@ export class OnValueEvent extends BpmnEvent { getIdentifier(): string { return OnValueEvent.identifier; } + checkIsEnabled(): boolean { + return OnValueEvent.isEnabled; + } } From bc5c99654cbfe3cf5ac6096b6d8d2c1ca946d67b Mon Sep 17 00:00:00 2001 From: Akanksha Singh Date: Sat, 31 Jan 2026 16:53:41 +0530 Subject: [PATCH 2/2] feat(core): fix all event change req --- .../classes/nodes/abstract-workflow-action.class.ts | 10 ++++++++++ .../lib/classes/nodes/abstract-workflow-event.class.ts | 9 +++++++++ .../lib/classes/nodes/abstract-workflow-node.class.ts | 2 -- .../src/lib/services/bpmn/node.service.ts | 4 ++-- .../services/statement/actions/changecolumn.action.ts | 4 ---- .../services/statement/actions/readcolumn.action.ts | 4 ---- .../lib/services/statement/actions/sendmail.action.ts | 4 ---- .../lib/services/statement/events/onadditem.event.ts | 4 ---- .../lib/services/statement/events/onchange.event.ts | 4 ---- .../lib/services/statement/events/oninterval.event.ts | 4 ---- .../src/lib/services/statement/events/onvalue.event.ts | 4 ---- 11 files changed, 21 insertions(+), 32 deletions(-) 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/classes/nodes/abstract-workflow-node.class.ts b/projects/workflows-creator/src/lib/classes/nodes/abstract-workflow-node.class.ts index 7e5d9df..9ae2cc8 100644 --- a/projects/workflows-creator/src/lib/classes/nodes/abstract-workflow-node.class.ts +++ b/projects/workflows-creator/src/lib/classes/nodes/abstract-workflow-node.class.ts @@ -12,9 +12,7 @@ export abstract class AbstractWorkflowNode { abstract state: State; abstract name: string; static identifier: string; - static isEnabled: boolean; id: string; abstract getIdentifier(): string; - abstract checkIsEnabled(): boolean; } 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 7fd153e..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,7 +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).checkIsEnabled()) + .filter(action => (action as WorkflowAction).isEnabled()) .sort((a, b) => a.name.toString().localeCompare(b.name.toString(), undefined, { sensitivity: 'base', @@ -85,7 +85,7 @@ export class BpmnNodesService extends NodeService { ) .filter(n => n.type === NodeTypes.EVENT) .filter(instance => trigger === (instance as WorkflowEvent).trigger) - .filter(instance => (instance as WorkflowEvent).checkIsEnabled()); + .filter(instance => (instance as WorkflowEvent).isEnabled()); } /** diff --git a/projects/workflows-creator/src/lib/services/statement/actions/changecolumn.action.ts b/projects/workflows-creator/src/lib/services/statement/actions/changecolumn.action.ts index 1779a1c..3c5b473 100644 --- a/projects/workflows-creator/src/lib/services/statement/actions/changecolumn.action.ts +++ b/projects/workflows-creator/src/lib/services/statement/actions/changecolumn.action.ts @@ -6,7 +6,6 @@ import {LocalizedStringKeys} from '../../../enum'; import {RecordOfAnyType} from '../../../types'; export class ChangeColumnValueAction extends BpmnAction { - static isEnabled = true; isElseAction: boolean; groupType: string; groupId: string; @@ -35,7 +34,4 @@ export class ChangeColumnValueAction extends BpmnAction { getIdentifier(): string { return ChangeColumnValueAction.identifier; } - checkIsEnabled(): boolean { - return ChangeColumnValueAction.isEnabled; - } } diff --git a/projects/workflows-creator/src/lib/services/statement/actions/readcolumn.action.ts b/projects/workflows-creator/src/lib/services/statement/actions/readcolumn.action.ts index 1c49ffc..c8a193a 100644 --- a/projects/workflows-creator/src/lib/services/statement/actions/readcolumn.action.ts +++ b/projects/workflows-creator/src/lib/services/statement/actions/readcolumn.action.ts @@ -2,7 +2,6 @@ import {RecordOfAnyType} from '../../../types'; import {BpmnAction} from '../../../types/bpmn.types'; export class ReadColumnValueAction extends BpmnAction { - static isEnabled = true; isElseAction: boolean; groupType: string; groupId: string; @@ -28,7 +27,4 @@ export class ReadColumnValueAction extends BpmnAction { getIdentifier(): string { return ReadColumnValueAction.identifier; } - checkIsEnabled(): boolean { - return ReadColumnValueAction.isEnabled; - } } diff --git a/projects/workflows-creator/src/lib/services/statement/actions/sendmail.action.ts b/projects/workflows-creator/src/lib/services/statement/actions/sendmail.action.ts index 8d7c17d..7628718 100644 --- a/projects/workflows-creator/src/lib/services/statement/actions/sendmail.action.ts +++ b/projects/workflows-creator/src/lib/services/statement/actions/sendmail.action.ts @@ -9,7 +9,6 @@ import { } from '../inputs/email.input'; export class SendEmailAction extends BpmnAction { - static isEnabled = true; isElseAction: boolean; groupType: string; groupId: string; @@ -41,7 +40,4 @@ export class SendEmailAction extends BpmnAction { getIdentifier(): string { return SendEmailAction.identifier; } - checkIsEnabled(): boolean { - return SendEmailAction.isEnabled; - } } diff --git a/projects/workflows-creator/src/lib/services/statement/events/onadditem.event.ts b/projects/workflows-creator/src/lib/services/statement/events/onadditem.event.ts index 383a2a6..6599080 100644 --- a/projects/workflows-creator/src/lib/services/statement/events/onadditem.event.ts +++ b/projects/workflows-creator/src/lib/services/statement/events/onadditem.event.ts @@ -4,7 +4,6 @@ import {BpmnEvent} from '../../../types/bpmn.types'; import {TriggerOnAddItem} from '../../bpmn/elements/tasks/trigger-on-add-item.task'; export class OnAddItemEvent extends BpmnEvent { - static isEnabled = true; groupType: string; groupId: string; trigger = true; @@ -35,7 +34,4 @@ export class OnAddItemEvent extends BpmnEvent { getIdentifier(): string { return OnAddItemEvent.identifier; } - checkIsEnabled(): boolean { - return OnAddItemEvent.isEnabled; - } } diff --git a/projects/workflows-creator/src/lib/services/statement/events/onchange.event.ts b/projects/workflows-creator/src/lib/services/statement/events/onchange.event.ts index 07fa984..a2ca5e2 100644 --- a/projects/workflows-creator/src/lib/services/statement/events/onchange.event.ts +++ b/projects/workflows-creator/src/lib/services/statement/events/onchange.event.ts @@ -8,7 +8,6 @@ import {TriggerColumnInput, ValueTypeInput} from '../inputs'; import {ValueInput} from '../inputs/value.input'; export class OnChangeEvent extends BpmnEvent { - static isEnabled = true; groupType: string; groupId: string; trigger = true; @@ -44,7 +43,4 @@ export class OnChangeEvent extends BpmnEvent { getIdentifier(): string { return OnChangeEvent.identifier; } - checkIsEnabled(): boolean { - return OnChangeEvent.isEnabled; - } } diff --git a/projects/workflows-creator/src/lib/services/statement/events/oninterval.event.ts b/projects/workflows-creator/src/lib/services/statement/events/oninterval.event.ts index c1bbdc9..26fa0f1 100644 --- a/projects/workflows-creator/src/lib/services/statement/events/oninterval.event.ts +++ b/projects/workflows-creator/src/lib/services/statement/events/oninterval.event.ts @@ -7,7 +7,6 @@ import {IntervalInput} from '../inputs/interval.input'; import {StepperInput} from '../inputs/stepper.input'; export class OnIntervalEvent extends BpmnEvent { - static isEnabled = true; groupType: string; groupId: string; trigger = true; @@ -40,7 +39,4 @@ export class OnIntervalEvent extends BpmnEvent { getIdentifier(): string { return OnIntervalEvent.identifier; } - checkIsEnabled(): boolean { - return OnIntervalEvent.isEnabled; - } } diff --git a/projects/workflows-creator/src/lib/services/statement/events/onvalue.event.ts b/projects/workflows-creator/src/lib/services/statement/events/onvalue.event.ts index 9e65eb3..f792117 100644 --- a/projects/workflows-creator/src/lib/services/statement/events/onvalue.event.ts +++ b/projects/workflows-creator/src/lib/services/statement/events/onvalue.event.ts @@ -8,7 +8,6 @@ import {CriteriaInput} from '../inputs/criteria.input'; import {ValueInput} from '../inputs/value.input'; export class OnValueEvent extends BpmnEvent { - static isEnabled = true; groupType: string; groupId: string; trigger = false; @@ -39,7 +38,4 @@ export class OnValueEvent extends BpmnEvent { getIdentifier(): string { return OnValueEvent.identifier; } - checkIsEnabled(): boolean { - return OnValueEvent.isEnabled; - } }