From 4142aaa82b6c2f714a44ea58b424f8a2dea27301 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Kov=C3=A1=C4=8Dik?= Date: Thu, 23 Oct 2025 12:55:59 +0200 Subject: [PATCH 1/2] [NAB-389] Cannot change the number of columns in form editor - fix the problem with columns, add datagroup if there is no one and set it number of cols --- .../form-builder/edit-panel/edit-panel.component.ts | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/app/form-builder/edit-panel/edit-panel.component.ts b/src/app/form-builder/edit-panel/edit-panel.component.ts index 004dd14..15bb8fd 100644 --- a/src/app/form-builder/edit-panel/edit-panel.component.ts +++ b/src/app/form-builder/edit-panel/edit-panel.component.ts @@ -3,7 +3,7 @@ import {animate, state, style, transition, trigger} from '@angular/animations'; import {GridsterService} from '../gridster/gridster.service'; import { Appearance, - Component as PetriflowComponent, + Component as PetriflowComponent, DataGroup, DataRef, DataRefBehavior, DataType, @@ -11,7 +11,7 @@ import { I18nString, I18nWithDynamic, Icon, - IconType, + IconType, LayoutType, Option, Property, Template, @@ -226,7 +226,14 @@ export class EditPanelComponent implements OnInit, AfterViewInit { this.gridsterService.options.minCols = newCols; this.gridsterService.options.maxCols = newCols; this.gridsterService.options.maxItemCols = newCols; - this.modelService.model.getTransition(this.transId).dataGroups[0].cols = newCols; + if (this.modelService.model.getTransition(this.transId).dataGroups?.length > 0) { + this.modelService.model.getTransition(this.transId).dataGroups[0].cols = newCols; + } else { + const dataGroup = new DataGroup(`${this.transId}_0`); + dataGroup.layout = LayoutType.GRID; + dataGroup.cols = newCols; + this.modelService.model.getTransition(this.transId).dataGroups.push(dataGroup); + } this.gridsterService.options.api.optionsChanged(); this.registerChange(); } From 62182da972245347aafc3a63d8f919042cef23f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Kov=C3=A1=C4=8Dik?= Date: Wed, 17 Dec 2025 10:58:28 +0100 Subject: [PATCH 2/2] [NAB-389] Cannot change the number of columns in form editor - fix according to PR --- .../form-builder/edit-panel/edit-panel.component.ts | 13 +++---------- src/app/form-builder/form-builder.component.ts | 11 ++++++++++- src/app/form-builder/gridster/gridster.service.ts | 10 ++-------- 3 files changed, 15 insertions(+), 19 deletions(-) diff --git a/src/app/form-builder/edit-panel/edit-panel.component.ts b/src/app/form-builder/edit-panel/edit-panel.component.ts index 15bb8fd..004dd14 100644 --- a/src/app/form-builder/edit-panel/edit-panel.component.ts +++ b/src/app/form-builder/edit-panel/edit-panel.component.ts @@ -3,7 +3,7 @@ import {animate, state, style, transition, trigger} from '@angular/animations'; import {GridsterService} from '../gridster/gridster.service'; import { Appearance, - Component as PetriflowComponent, DataGroup, + Component as PetriflowComponent, DataRef, DataRefBehavior, DataType, @@ -11,7 +11,7 @@ import { I18nString, I18nWithDynamic, Icon, - IconType, LayoutType, + IconType, Option, Property, Template, @@ -226,14 +226,7 @@ export class EditPanelComponent implements OnInit, AfterViewInit { this.gridsterService.options.minCols = newCols; this.gridsterService.options.maxCols = newCols; this.gridsterService.options.maxItemCols = newCols; - if (this.modelService.model.getTransition(this.transId).dataGroups?.length > 0) { - this.modelService.model.getTransition(this.transId).dataGroups[0].cols = newCols; - } else { - const dataGroup = new DataGroup(`${this.transId}_0`); - dataGroup.layout = LayoutType.GRID; - dataGroup.cols = newCols; - this.modelService.model.getTransition(this.transId).dataGroups.push(dataGroup); - } + this.modelService.model.getTransition(this.transId).dataGroups[0].cols = newCols; this.gridsterService.options.api.optionsChanged(); this.registerChange(); } diff --git a/src/app/form-builder/form-builder.component.ts b/src/app/form-builder/form-builder.component.ts index 16ec358..cebdb58 100644 --- a/src/app/form-builder/form-builder.component.ts +++ b/src/app/form-builder/form-builder.component.ts @@ -2,6 +2,9 @@ import {AfterViewInit, Component, OnDestroy, OnInit} from '@angular/core'; import {Router} from '@angular/router'; import {ModelService} from '../modeler/services/model/model.service'; import {ModelerUtils} from '../modeler/modeler-utils'; +import {ModelerConfig} from "../modeler/modeler-config"; +import {SelectedTransitionService} from "../modeler/selected-transition.service"; +import {DataGroup, LayoutType} from '@netgrif/petriflow'; @Component({ selector: 'nab-form-builder', @@ -12,10 +15,16 @@ export class FormBuilderComponent implements AfterViewInit { title = 'form-builder'; width: number; - constructor(private router: Router, private modelService: ModelService) { + constructor(private router: Router, private modelService: ModelService, private transitionService: SelectedTransitionService) { if (!this.modelService.model) { this.router.navigate(['/modeler']); } + if (this.modelService.model.getTransition(this.transitionService.id)?.dataGroups?.length === 0) { + const dataGroup = new DataGroup(`${this.transitionService.id}_0`); + dataGroup.layout = LayoutType.GRID; + dataGroup.cols = ModelerConfig.LAYOUT_DEFAULT_COLS; + this.modelService.model.getTransition(this.transitionService.id).dataGroups.push(dataGroup); + } } ngAfterViewInit(): void { diff --git a/src/app/form-builder/gridster/gridster.service.ts b/src/app/form-builder/gridster/gridster.service.ts index 5406d3a..7bf367d 100644 --- a/src/app/form-builder/gridster/gridster.service.ts +++ b/src/app/form-builder/gridster/gridster.service.ts @@ -18,7 +18,7 @@ import { DataType, DataVariable, Expression, I18nWithDynamic, - LayoutType, Property, + Property, Template, Transition, TransitionLayout @@ -26,7 +26,7 @@ import { import {BehaviorSubject, ReplaySubject, Subject} from 'rxjs'; import {DataFieldUtils} from '../data-field-utils'; import {SelectedTransitionService} from '../../modeler/selected-transition.service'; -import {ComponentDef, FieldListService, PropertyDef} from '../field-list/field-list.service'; +import {FieldListService, PropertyDef} from '../field-list/field-list.service'; import {ModelerConfig} from '../../modeler/modeler-config'; import {debounceTime} from 'rxjs/operators'; @@ -221,12 +221,6 @@ export class GridsterService { dataRef.component = new Component(componentName); } const transition = this.modelService.model.getTransition(this.transitionId); - if (transition.dataGroups.length === 0) { - const dataGroup = new DataGroup(`${transition.id}_0`); - dataGroup.layout = LayoutType.GRID; - dataGroup.cols = this.options.minCols; - transition.dataGroups.push(dataGroup); - } transition.dataGroups[0].addDataRef(dataRef); if (dataVariable.type === DataType.TASK_REF && dataVariable.init?.value === this.transitionId) { dataVariable.init.value = undefined;