diff --git a/projects/nae-example-app/src/app/doc/builder-example/builder-tabbed-case-view/builder-tabbed-case-view.component.ts b/projects/nae-example-app/src/app/doc/builder-example/builder-tabbed-case-view/builder-tabbed-case-view.component.ts index 6bbfb9985..afd6a0a03 100644 --- a/projects/nae-example-app/src/app/doc/builder-example/builder-tabbed-case-view/builder-tabbed-case-view.component.ts +++ b/projects/nae-example-app/src/app/doc/builder-example/builder-tabbed-case-view/builder-tabbed-case-view.component.ts @@ -11,10 +11,9 @@ import { SimpleFilter, AbstractTabbedCaseViewComponent, ViewIdService, NAE_DEFAULT_HEADERS, - NAE_BASE_FILTER, AllowedNetsServiceFactory, AllowedNetsService, OverflowService + NAE_BASE_FILTER, AllowedNetsServiceFactory, AllowedNetsService, OverflowService, Case } from '@netgrif/components-core'; import {HeaderComponent} from '@netgrif/components'; -import {Case} from "../../../../../../netgrif-components-core/src/lib/resources/interface/case"; import {TranslateService} from "@ngx-translate/core"; const baseFilterFactory = (injectedData: InjectedTabbedCaseViewData) => { diff --git a/projects/nae-example-app/src/app/doc/builder-example/builder-tabs-example.component.ts b/projects/nae-example-app/src/app/doc/builder-example/builder-tabs-example.component.ts index 7dd8ddf2b..d161444d9 100644 --- a/projects/nae-example-app/src/app/doc/builder-example/builder-tabs-example.component.ts +++ b/projects/nae-example-app/src/app/doc/builder-example/builder-tabs-example.component.ts @@ -1,4 +1,4 @@ -import {ChangeDetectionStrategy, Component, OnInit} from '@angular/core'; +import {Component, OnInit} from '@angular/core'; import {NAE_TASK_FORCE_OPEN, NAE_VIEW_ID_SEGMENT, TabContent, ViewIdService} from '@netgrif/components-core'; import {BuilderTabbedCaseViewComponent} from './builder-tabbed-case-view/builder-tabbed-case-view.component'; import { @@ -14,8 +14,7 @@ import {TranslateService} from "@ngx-translate/core"; {provide: NAE_VIEW_ID_SEGMENT, useValue: 'all-cases'}, {provide: NAE_TASK_FORCE_OPEN, useValue: false}, ViewIdService - ], - changeDetection: ChangeDetectionStrategy.OnPush + ] }) export class BuilderTabsExampleComponent implements OnInit { diff --git a/projects/netgrif-components/src/lib/builder/builder.component.spec.ts b/projects/netgrif-components/src/lib/builder/builder.component.spec.ts index 64180032b..18fe38cfe 100644 --- a/projects/netgrif-components/src/lib/builder/builder.component.spec.ts +++ b/projects/netgrif-components/src/lib/builder/builder.component.spec.ts @@ -5,7 +5,7 @@ import {MatDialog} from '@angular/material/dialog'; import {ActivatedRoute, Router} from '@angular/router'; import {ImportService} from '@netgrif/petriflow'; import {of} from 'rxjs'; -import {BuilderModeService} from './builder-mode.service'; +import {BuilderModeService} from './services/builder-mode.service'; import {ArcFactory} from './modeler/edit-mode/domain/arc-builders/arc-factory.service'; import {EditModeService} from './modeler/edit-mode/edit-mode.service'; import {ExportService} from '@netgrif/petriflow'; diff --git a/projects/netgrif-components/src/lib/builder/builder.component.ts b/projects/netgrif-components/src/lib/builder/builder.component.ts index 9741aef58..b0996398c 100644 --- a/projects/netgrif-components/src/lib/builder/builder.component.ts +++ b/projects/netgrif-components/src/lib/builder/builder.component.ts @@ -1,5 +1,5 @@ -import {Component, Inject, Optional} from '@angular/core'; -import {BuilderMode, BuilderModeService} from "./builder-mode.service"; +import {ChangeDetectionStrategy, Component, Inject, Optional} from '@angular/core'; +import {BuilderMode, BuilderModeService} from "./services/builder-mode.service"; import {ModelService} from "./modeler/services/model/model.service"; import {ActivatedRoute, Router} from "@angular/router"; import {MatDialog} from "@angular/material/dialog"; @@ -52,8 +52,9 @@ import {MatPaginatorIntl} from '@angular/material/paginator'; import {BuilderPaginatorIntl} from './modeler/components/master-detail/main-master/builder-paginator-inpl'; import {MAT_FORM_FIELD_DEFAULT_OPTIONS} from '@angular/material/form-field'; import {I18nControlService} from './modeler/i18n-mode/i18n-control.service'; -import {BuilderIntegrationService} from "./builder-integration.service"; +import {BuilderIntegrationService} from "./services/builder-integration.service"; import {TaskModeService} from "./modeler/task-mode/task-mode.service"; +import {LocalStorageService} from "./services/local-storage.service"; @Component({ selector: 'nc-builder', @@ -108,7 +109,8 @@ import {TaskModeService} from "./modeler/task-mode/task-mode.service"; BuilderModeService, I18nControlService, BuilderIntegrationService, - TaskModeService + TaskModeService, + LocalStorageService ] }) export class BuilderComponent { diff --git a/projects/netgrif-components/src/lib/builder/dialogs/dialog-manage-roles/dialog-manage-roles.component.ts b/projects/netgrif-components/src/lib/builder/dialogs/dialog-manage-roles/dialog-manage-roles.component.ts index 725432716..fad5a2983 100644 --- a/projects/netgrif-components/src/lib/builder/dialogs/dialog-manage-roles/dialog-manage-roles.component.ts +++ b/projects/netgrif-components/src/lib/builder/dialogs/dialog-manage-roles/dialog-manage-roles.component.ts @@ -9,6 +9,7 @@ import {ModelerConfig} from '../../modeler/modeler-config'; import {HistoryService} from '../../modeler/services/history/history.service'; import {ModelService} from '../../modeler/services/model/model.service'; import {CanvasToolContext} from "../../modeler/edit-mode/services/modes/canvas-tool-context"; +import {LocalStorageService} from "../../services/local-storage.service"; export enum RoleRefType { TRANSITION = 'transition', @@ -25,6 +26,7 @@ export interface ManagePermissionData { processUserRefs?: Array; modelService: ModelService; historyService: HistoryService; + localStorageService: LocalStorageService; } @Component({ @@ -50,12 +52,14 @@ export class DialogManageRolesComponent implements OnInit, OnDestroy { private modelService: ModelService; private historyService: HistoryService; + private _localStorageService: LocalStorageService; constructor( - @Inject(MAT_DIALOG_DATA) public data: ManagePermissionData, + @Inject(MAT_DIALOG_DATA) public data: ManagePermissionData ) { this.modelService = data.modelService; this.historyService = data.historyService; + this._localStorageService = data.localStorageService; if (this.data.type === RoleRefType.TRANSITION) { const arrayRoleRefs = [...this.data.rolesRefs]; this.addDefaultRoleRefs(arrayRoleRefs); @@ -127,12 +131,12 @@ export class DialogManageRolesComponent implements OnInit, OnDestroy { this.dataSource.sort = this.sort; this.usersDataSource.sort = this.userSort; this.sort.sort(({ - id: localStorage.getItem(ModelerConfig.LOCALSTORAGE.PERMISSION_DIALOG.ROLE_SORT), - start: localStorage.getItem(ModelerConfig.LOCALSTORAGE.PERMISSION_DIALOG.ROLE_DIRECTION) + id: this._localStorageService.getItem(ModelerConfig.LOCALSTORAGE.PERMISSION_DIALOG.ROLE_SORT), + start: this._localStorageService.getItem(ModelerConfig.LOCALSTORAGE.PERMISSION_DIALOG.ROLE_DIRECTION) }) as MatSortable); this.userSort.sort(({ - id: localStorage.getItem(ModelerConfig.LOCALSTORAGE.PERMISSION_DIALOG.USER_REF_SORT), - start: localStorage.getItem(ModelerConfig.LOCALSTORAGE.PERMISSION_DIALOG.USER_REF_DIRECTION) + id: this._localStorageService.getItem(ModelerConfig.LOCALSTORAGE.PERMISSION_DIALOG.USER_REF_SORT), + start: this._localStorageService.getItem(ModelerConfig.LOCALSTORAGE.PERMISSION_DIALOG.USER_REF_DIRECTION) }) as MatSortable); } @@ -250,13 +254,13 @@ export class DialogManageRolesComponent implements OnInit, OnDestroy { } sortRoleRefs(sort: Sort): void { - localStorage.setItem(ModelerConfig.LOCALSTORAGE.PERMISSION_DIALOG.ROLE_SORT, sort.active); - localStorage.setItem(ModelerConfig.LOCALSTORAGE.PERMISSION_DIALOG.ROLE_DIRECTION, sort.direction); + this._localStorageService.setItem(ModelerConfig.LOCALSTORAGE.PERMISSION_DIALOG.ROLE_SORT, sort.active); + this._localStorageService.setItem(ModelerConfig.LOCALSTORAGE.PERMISSION_DIALOG.ROLE_DIRECTION, sort.direction); } sortUserRefs(sort: Sort): void { - localStorage.setItem(ModelerConfig.LOCALSTORAGE.PERMISSION_DIALOG.USER_REF_SORT, sort.active); - localStorage.setItem(ModelerConfig.LOCALSTORAGE.PERMISSION_DIALOG.USER_REF_DIRECTION, sort.direction); + this._localStorageService.setItem(ModelerConfig.LOCALSTORAGE.PERMISSION_DIALOG.USER_REF_SORT, sort.active); + this._localStorageService.setItem(ModelerConfig.LOCALSTORAGE.PERMISSION_DIALOG.USER_REF_DIRECTION, sort.direction); } ngOnDestroy(): void { diff --git a/projects/netgrif-components/src/lib/builder/dialogs/dialog-model-edit/dialog-model-edit.component.ts b/projects/netgrif-components/src/lib/builder/dialogs/dialog-model-edit/dialog-model-edit.component.ts index 37a6f68c7..fca77016c 100644 --- a/projects/netgrif-components/src/lib/builder/dialogs/dialog-model-edit/dialog-model-edit.component.ts +++ b/projects/netgrif-components/src/lib/builder/dialogs/dialog-model-edit/dialog-model-edit.component.ts @@ -8,9 +8,10 @@ import {ProcessActionsTool} from '../../modeler/actions-mode/tools/process-actio import {ModelChange} from '../../modeler/history-mode/model/model/model-change'; import {ModelService} from '../../modeler/services/model/model.service'; import {DialogManageRolesComponent, RoleRefType} from '../dialog-manage-roles/dialog-manage-roles.component'; -import {BuilderModeService, BuilderMode} from "../../builder-mode.service"; +import {BuilderModeService, BuilderMode} from "../../services/builder-mode.service"; import {HistoryService} from "../../modeler/services/history/history.service"; import {CanvasToolContext} from "../../modeler/edit-mode/services/modes/canvas-tool-context"; +import {LocalStorageService} from '../../services/local-storage.service'; export interface ModelEditData { model: ModelChange; @@ -36,6 +37,7 @@ export class DialogModelEditComponent { private _processTool: ProcessActionsTool; private _builderModeService: BuilderModeService; private historyService: HistoryService; + private _localStorageService: LocalStorageService; constructor( @Inject(MAT_DIALOG_DATA) public data: ModelEditData, @@ -47,6 +49,7 @@ export class DialogModelEditComponent { this._processTool = data.context.processTool; this._builderModeService = data.context.builderModeService; this.historyService = data.context.editModeService.historyService; + this._localStorageService = data.context.localStorageService; this.idCtrl = new FormControl('', [Validators.required]); this.versionCtrl = new FormControl('', [ @@ -68,7 +71,8 @@ export class DialogModelEditComponent { processUserRefs: this.modelService.model.getUserRefs(), userLists: this.modelService.model.getDataSet().filter(item => item.type === DataType.USER_LIST), modelService: this.modelService, - historyService: this.historyService + historyService: this.historyService, + localStorageService: this._localStorageService } }); } diff --git a/projects/netgrif-components/src/lib/builder/dialogs/dialog-transition-edit/dialog-transition-edit.component.ts b/projects/netgrif-components/src/lib/builder/dialogs/dialog-transition-edit/dialog-transition-edit.component.ts index 7267ee835..5e4cd6944 100644 --- a/projects/netgrif-components/src/lib/builder/dialogs/dialog-transition-edit/dialog-transition-edit.component.ts +++ b/projects/netgrif-components/src/lib/builder/dialogs/dialog-transition-edit/dialog-transition-edit.component.ts @@ -9,9 +9,10 @@ import {SelectedTransitionService} from '../../modeler/selected-transition.servi import {ModelService} from '../../modeler/services/model/model.service'; import {DialogManageRolesComponent, RoleRefType} from '../dialog-manage-roles/dialog-manage-roles.component'; import {ChangedTransition} from './changed-transition'; -import {BuilderModeService, BuilderMode} from '../../builder-mode.service'; +import {BuilderModeService, BuilderMode} from '../../services/builder-mode.service'; import {HistoryService} from "../../modeler/services/history/history.service"; import {CanvasToolContext} from "../../modeler/edit-mode/services/modes/canvas-tool-context"; +import {LocalStorageService} from '../../services/local-storage.service'; export interface TransitionEditData { transitionId: string; @@ -37,6 +38,7 @@ export class DialogTransitionEditComponent implements OnInit { private _actionsMasterDetail: ActionsMasterDetailService; private _builderModeService: BuilderModeService; private _historyService: HistoryService; + private _localStorageService: LocalStorageService; constructor( @Inject(MAT_DIALOG_DATA) public data: TransitionEditData, @@ -49,6 +51,7 @@ export class DialogTransitionEditComponent implements OnInit { this._actionsMasterDetail = data.context.actionsMasterDetail; this._builderModeService = data.context.builderModeService; this._historyService = data.context.editModeService.historyService; + this._localStorageService = data.context.localStorageService; this.transition = new ChangedTransition(undefined, this._modelService.model.getTransition(data.transitionId).clone()); this.form = new FormControl('', [ @@ -96,7 +99,8 @@ export class DialogTransitionEditComponent implements OnInit { userRefs: this.transition.transition.userRefs, userLists: this._modelService.model.getDataSet().filter(item => item.type === DataType.USER_LIST), modelService: this._modelService, - historyService: this._historyService + historyService: this._historyService, + localStorageService: this._localStorageService } }); } diff --git a/projects/netgrif-components/src/lib/builder/form-builder/edit-panel/edit-panel.component.spec.ts b/projects/netgrif-components/src/lib/builder/form-builder/edit-panel/edit-panel.component.spec.ts index f18045cfc..e0e433bee 100644 --- a/projects/netgrif-components/src/lib/builder/form-builder/edit-panel/edit-panel.component.spec.ts +++ b/projects/netgrif-components/src/lib/builder/form-builder/edit-panel/edit-panel.component.spec.ts @@ -2,7 +2,7 @@ import {NO_ERRORS_SCHEMA} from '@angular/core'; import {TestBed} from '@angular/core/testing'; import {MatDialog} from '@angular/material/dialog'; import {Router} from '@angular/router'; -import {BuilderModeService} from '../../builder-mode.service'; +import {BuilderModeService} from '../../services/builder-mode.service'; import {ArcFactory} from '../../modeler/edit-mode/domain/arc-builders/arc-factory.service'; import {ModelService} from '../../modeler/services/model/model.service'; import {SelectedTransitionService} from '../../modeler/selected-transition.service'; diff --git a/projects/netgrif-components/src/lib/builder/form-builder/edit-panel/edit-panel.component.ts b/projects/netgrif-components/src/lib/builder/form-builder/edit-panel/edit-panel.component.ts index f596d8563..dd5aa8e2a 100644 --- a/projects/netgrif-components/src/lib/builder/form-builder/edit-panel/edit-panel.component.ts +++ b/projects/netgrif-components/src/lib/builder/form-builder/edit-panel/edit-panel.component.ts @@ -36,7 +36,7 @@ import {ModelService} from '../../modeler/services/model/model.service'; import {DataFieldUtils} from '../data-field-utils'; import {ComponentDef, DataRefDef, FieldListService, PropertyDef} from '../field-list/field-list.service'; import {GridsterService} from '../gridster/gridster.service'; -import {BuilderModeService, BuilderMode} from "../../builder-mode.service"; +import {BuilderModeService, BuilderMode} from "../../services/builder-mode.service"; @Component({ selector: 'nc-builder-edit-panel', diff --git a/projects/netgrif-components/src/lib/builder/form-builder/field-list/field-list.component.spec.ts b/projects/netgrif-components/src/lib/builder/form-builder/field-list/field-list.component.spec.ts index dca46e2b4..10cb89f87 100644 --- a/projects/netgrif-components/src/lib/builder/form-builder/field-list/field-list.component.spec.ts +++ b/projects/netgrif-components/src/lib/builder/form-builder/field-list/field-list.component.spec.ts @@ -4,7 +4,7 @@ import {MatDialog} from '@angular/material/dialog'; import {MatSnackBar} from '@angular/material/snack-bar'; import {Router} from '@angular/router'; import {PetriNet} from '@netgrif/petriflow'; -import {BuilderModeService} from '../../builder-mode.service'; +import {BuilderModeService} from '../../services/builder-mode.service'; import {ModelService} from '../../modeler/services/model/model.service'; import {SelectedTransitionService} from '../../modeler/selected-transition.service'; import {GridsterService} from '../gridster/gridster.service'; diff --git a/projects/netgrif-components/src/lib/builder/form-builder/field-list/field-list.component.ts b/projects/netgrif-components/src/lib/builder/form-builder/field-list/field-list.component.ts index 60bf6defd..6925b7d95 100644 --- a/projects/netgrif-components/src/lib/builder/form-builder/field-list/field-list.component.ts +++ b/projects/netgrif-components/src/lib/builder/form-builder/field-list/field-list.component.ts @@ -11,7 +11,7 @@ import {SelectedTransitionService} from '../../modeler/selected-transition.servi import {ModelService} from '../../modeler/services/model/model.service'; import {GridsterService} from '../gridster/gridster.service'; import {ComponentDef, FieldListService} from './field-list.service'; -import {BuilderModeService, BuilderMode} from "../../builder-mode.service"; +import {BuilderModeService, BuilderMode} from "../../services/builder-mode.service"; export interface Data { title: string; diff --git a/projects/netgrif-components/src/lib/builder/form-builder/form-builder.component.spec.ts b/projects/netgrif-components/src/lib/builder/form-builder/form-builder.component.spec.ts index 0551578ba..a5309d318 100644 --- a/projects/netgrif-components/src/lib/builder/form-builder/form-builder.component.spec.ts +++ b/projects/netgrif-components/src/lib/builder/form-builder/form-builder.component.spec.ts @@ -1,11 +1,11 @@ import {CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA} from '@angular/core'; import {ComponentFixture, TestBed} from '@angular/core/testing'; import {PetriNet} from '@netgrif/petriflow'; -import {BuilderModeService} from '../builder-mode.service'; +import {BuilderModeService} from '../services/builder-mode.service'; import {ModelService} from '../modeler/services/model/model.service'; import {SelectedTransitionService} from '../modeler/selected-transition.service'; import {FormBuilderComponent} from './form-builder.component'; -import {BuilderIntegrationService} from "../builder-integration.service"; +import {BuilderIntegrationService} from "../services/builder-integration.service"; import {HistoryService} from "../modeler/services/history/history.service"; import {HttpClientTestingModule} from "@angular/common/http/testing"; import {RouterTestingModule} from "@angular/router/testing"; diff --git a/projects/netgrif-components/src/lib/builder/form-builder/form-builder.component.ts b/projects/netgrif-components/src/lib/builder/form-builder/form-builder.component.ts index 134fb42cd..467c27293 100644 --- a/projects/netgrif-components/src/lib/builder/form-builder/form-builder.component.ts +++ b/projects/netgrif-components/src/lib/builder/form-builder/form-builder.component.ts @@ -5,8 +5,8 @@ import {ModelerConfig} from '../modeler/modeler-config'; import {ModelerUtils} from '../modeler/modeler-utils'; import {SelectedTransitionService} from '../modeler/selected-transition.service'; import {ModelService} from '../modeler/services/model/model.service'; -import {BuilderMode, BuilderModeService} from "../builder-mode.service"; -import {BuilderIntegrationService} from "../builder-integration.service"; +import {BuilderMode, BuilderModeService} from "../services/builder-mode.service"; +import {BuilderIntegrationService} from "../services/builder-integration.service"; @Component({ selector: 'nc-builder-form-builder', diff --git a/projects/netgrif-components/src/lib/builder/form-builder/gridster/gridster.component.spec.ts b/projects/netgrif-components/src/lib/builder/form-builder/gridster/gridster.component.spec.ts index dd2fd5eed..264cd3f9d 100644 --- a/projects/netgrif-components/src/lib/builder/form-builder/gridster/gridster.component.spec.ts +++ b/projects/netgrif-components/src/lib/builder/form-builder/gridster/gridster.component.spec.ts @@ -1,7 +1,7 @@ import {NO_ERRORS_SCHEMA} from '@angular/core'; import {TestBed} from '@angular/core/testing'; import {Router} from '@angular/router'; -import {BuilderModeService} from '../../builder-mode.service'; +import {BuilderModeService} from '../../services/builder-mode.service'; import {ArcFactory} from '../../modeler/edit-mode/domain/arc-builders/arc-factory.service'; import {ModelService} from '../../modeler/services/model/model.service'; import {SelectedTransitionService} from '../../modeler/selected-transition.service'; @@ -10,6 +10,7 @@ import {ExportService} from '@netgrif/petriflow'; import {GridsterService} from './gridster.service'; import {FieldListService} from '../field-list/field-list.service'; import {GridsterComponent} from './gridster.component'; +import {LocalStorageService} from "../../services/local-storage.service"; describe('GridsterComponent', () => { beforeEach(() => { @@ -24,6 +25,7 @@ describe('GridsterComponent', () => { BuilderModeService, HistoryService, ExportService, + LocalStorageService, {provide: Router, useValue: {}}, ], schemas: [NO_ERRORS_SCHEMA], diff --git a/projects/netgrif-components/src/lib/builder/form-builder/gridster/gridster.component.ts b/projects/netgrif-components/src/lib/builder/form-builder/gridster/gridster.component.ts index 06c01c9fe..a1b15f1fe 100644 --- a/projects/netgrif-components/src/lib/builder/form-builder/gridster/gridster.component.ts +++ b/projects/netgrif-components/src/lib/builder/form-builder/gridster/gridster.component.ts @@ -7,7 +7,7 @@ import {ModelService} from '../../modeler/services/model/model.service'; import {FieldListService} from '../field-list/field-list.service'; import {GridsterDataField} from './classes/gridster-data-field'; import {GridsterService} from './gridster.service'; -import {BuilderModeService, BuilderMode} from "../../builder-mode.service"; +import {BuilderModeService, BuilderMode} from "../../services/builder-mode.service"; @Component({ selector: 'nc-builder-gridster-component', diff --git a/projects/netgrif-components/src/lib/builder/form-builder/info-label/info-label.component.spec.ts b/projects/netgrif-components/src/lib/builder/form-builder/info-label/info-label.component.spec.ts index e3053edd0..b7162cf66 100644 --- a/projects/netgrif-components/src/lib/builder/form-builder/info-label/info-label.component.spec.ts +++ b/projects/netgrif-components/src/lib/builder/form-builder/info-label/info-label.component.spec.ts @@ -1,6 +1,6 @@ import {NO_ERRORS_SCHEMA} from '@angular/core'; import {TestBed} from '@angular/core/testing'; -import {BuilderModeService} from '../../builder-mode.service'; +import {BuilderModeService} from '../../services/builder-mode.service'; import {ArcFactory} from '../../modeler/edit-mode/domain/arc-builders/arc-factory.service'; import {ModelService} from '../../modeler/services/model/model.service'; import {SelectedTransitionService} from '../../modeler/selected-transition.service'; diff --git a/projects/netgrif-components/src/lib/builder/form-builder/info-label/info-label.component.ts b/projects/netgrif-components/src/lib/builder/form-builder/info-label/info-label.component.ts index b7599478a..c8a65c257 100644 --- a/projects/netgrif-components/src/lib/builder/form-builder/info-label/info-label.component.ts +++ b/projects/netgrif-components/src/lib/builder/form-builder/info-label/info-label.component.ts @@ -2,7 +2,7 @@ import {Component} from '@angular/core'; import {PetriNet, Transition} from '@netgrif/petriflow'; import {SelectedTransitionService} from '../../modeler/selected-transition.service'; import {ModelService} from '../../modeler/services/model/model.service'; -import {BuilderModeService, BuilderMode} from "../../builder-mode.service"; +import {BuilderModeService, BuilderMode} from "../../services/builder-mode.service"; @Component({ selector: 'nc-builder-info-label', diff --git a/projects/netgrif-components/src/lib/builder/modeler/actions-mode/actions-master-detail.service.ts b/projects/netgrif-components/src/lib/builder/modeler/actions-mode/actions-master-detail.service.ts index 4c29e4b23..8b6b0c329 100644 --- a/projects/netgrif-components/src/lib/builder/modeler/actions-mode/actions-master-detail.service.ts +++ b/projects/netgrif-components/src/lib/builder/modeler/actions-mode/actions-master-detail.service.ts @@ -12,12 +12,14 @@ import {FunctionsTool} from './tools/functions-tool'; import {ProcessActionsTool} from './tools/process-actions-tool'; import {RoleActionsTool} from './tools/role-actions-tool'; import {TransitionActionsTool} from './tools/transition-actions-tool'; +import {LocalStorageService} from "../../services/local-storage.service"; @Injectable() export class ActionsMasterDetailService extends AbstractMasterDetailService { constructor(protected _modelService: ModelService, - protected _actionsModeService: ActionsModeService) { + protected _actionsModeService: ActionsModeService, + protected _localStorageService: LocalStorageService) { super(); } @@ -79,17 +81,17 @@ export class ActionsMasterDetailService extends AbstractMasterDetailService { constructor(protected _modelService: ModelService, - protected _historyService: HistoryService) { + protected _historyService: HistoryService, + protected _localStorageService: LocalStorageService) { super(); } @@ -54,12 +56,12 @@ export class DataMasterDetailService extends AbstractMasterDetailService item.type === DataType.USER_LIST), modelService: tool.modelService, - historyService: tool.editModeService.historyService + historyService: tool.editModeService.historyService, + localStorageService: tool.context.localStorageService } }); } diff --git a/projects/netgrif-components/src/lib/builder/modeler/edit-mode/context-menu/menu-items/transition/edit-form-menu-item.ts b/projects/netgrif-components/src/lib/builder/modeler/edit-mode/context-menu/menu-items/transition/edit-form-menu-item.ts index 52a7adc0b..c79300aa0 100644 --- a/projects/netgrif-components/src/lib/builder/modeler/edit-mode/context-menu/menu-items/transition/edit-form-menu-item.ts +++ b/projects/netgrif-components/src/lib/builder/modeler/edit-mode/context-menu/menu-items/transition/edit-form-menu-item.ts @@ -1,7 +1,7 @@ import {CanvasTransition} from '../../../domain/canvas-transition'; import {CanvasTool} from '../../../services/modes/canvas-tool'; import {MenuItem} from '../menu-item'; -import {BuilderMode} from "../../../../../builder-mode.service"; +import {BuilderMode} from "../../../../../services/builder-mode.service"; export class EditFormMenuItem extends MenuItem { diff --git a/projects/netgrif-components/src/lib/builder/modeler/edit-mode/context-menu/menu-items/transition/edit-transition-actions-menu-item.ts b/projects/netgrif-components/src/lib/builder/modeler/edit-mode/context-menu/menu-items/transition/edit-transition-actions-menu-item.ts index d3815b6aa..558f00d27 100644 --- a/projects/netgrif-components/src/lib/builder/modeler/edit-mode/context-menu/menu-items/transition/edit-transition-actions-menu-item.ts +++ b/projects/netgrif-components/src/lib/builder/modeler/edit-mode/context-menu/menu-items/transition/edit-transition-actions-menu-item.ts @@ -1,7 +1,7 @@ import {CanvasTransition} from '../../../domain/canvas-transition'; import {CanvasTool} from '../../../services/modes/canvas-tool'; import {MenuItem} from '../menu-item'; -import {BuilderMode} from "../../../../../builder-mode.service"; +import {BuilderMode} from "../../../../../services/builder-mode.service"; export class EditTransitionActionsMenuItem extends MenuItem { diff --git a/projects/netgrif-components/src/lib/builder/modeler/edit-mode/context-menu/menu-items/transition/edit-transition-permissions-menu-item.ts b/projects/netgrif-components/src/lib/builder/modeler/edit-mode/context-menu/menu-items/transition/edit-transition-permissions-menu-item.ts index fdadf3c12..1a05cca00 100644 --- a/projects/netgrif-components/src/lib/builder/modeler/edit-mode/context-menu/menu-items/transition/edit-transition-permissions-menu-item.ts +++ b/projects/netgrif-components/src/lib/builder/modeler/edit-mode/context-menu/menu-items/transition/edit-transition-permissions-menu-item.ts @@ -24,7 +24,8 @@ export class EditTransitionPermissionsMenuItem extends MenuItem { userRefs: transition.modelTransition.userRefs, userLists: tool.modelService.model.getDataSet().filter(item => item.type === DataType.USER_LIST), modelService: tool.modelService, - historyService: tool.editModeService.historyService + historyService: tool.editModeService.historyService, + localStorageService: tool.context.localStorageService } }); } diff --git a/projects/netgrif-components/src/lib/builder/modeler/edit-mode/edit-mode.component.spec.ts b/projects/netgrif-components/src/lib/builder/modeler/edit-mode/edit-mode.component.spec.ts index e87a60483..a7d995b03 100644 --- a/projects/netgrif-components/src/lib/builder/modeler/edit-mode/edit-mode.component.spec.ts +++ b/projects/netgrif-components/src/lib/builder/modeler/edit-mode/edit-mode.component.spec.ts @@ -8,8 +8,9 @@ import {HistoryService} from '../services/history/history.service'; import {ModelImportService} from '../model-import-service'; import {ExportService} from '@netgrif/petriflow'; import {EditModeComponent} from './edit-mode.component'; +import {LocalStorageService} from "../../services/local-storage.service"; -describe('BpmnModeComponent', () => { +describe('EditModeComponent', () => { beforeEach(() => { TestBed.configureTestingModule({ declarations: [EditModeComponent], @@ -18,6 +19,7 @@ describe('BpmnModeComponent', () => { ArcFactory, HistoryService, ExportService, + LocalStorageService, {provide: ModelImportService, useValue: {}}, {provide: EditModeService, useValue: {}}, {provide: MatDialog, useValue: {}}, diff --git a/projects/netgrif-components/src/lib/builder/modeler/edit-mode/edit-mode.component.ts b/projects/netgrif-components/src/lib/builder/modeler/edit-mode/edit-mode.component.ts index e91e173b9..6a31e3564 100644 --- a/projects/netgrif-components/src/lib/builder/modeler/edit-mode/edit-mode.component.ts +++ b/projects/netgrif-components/src/lib/builder/modeler/edit-mode/edit-mode.component.ts @@ -1,4 +1,4 @@ -import {AfterViewInit, Component, ElementRef, HostListener, OnDestroy, ViewChild} from '@angular/core'; +import {AfterViewInit, Component, ElementRef, HostListener, OnDestroy, ViewChild, ChangeDetectionStrategy} from '@angular/core'; import {MatDialog} from '@angular/material/dialog'; import {NgxDropzoneChangeEvent} from 'ngx-dropzone'; import {ModelImportService} from '../model-import-service'; @@ -12,7 +12,8 @@ import {EditModeService} from './edit-mode.service'; @Component({ selector: 'nc-builder-edit-mode', templateUrl: './edit-mode.component.html', - styleUrls: ['./edit-mode.component.scss'] + styleUrls: ['./edit-mode.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, }) export class EditModeComponent implements AfterViewInit, OnDestroy { diff --git a/projects/netgrif-components/src/lib/builder/modeler/edit-mode/edit-mode.service.ts b/projects/netgrif-components/src/lib/builder/modeler/edit-mode/edit-mode.service.ts index 642a69b88..904a8e647 100644 --- a/projects/netgrif-components/src/lib/builder/modeler/edit-mode/edit-mode.service.ts +++ b/projects/netgrif-components/src/lib/builder/modeler/edit-mode/edit-mode.service.ts @@ -41,10 +41,11 @@ import {RemoveTokenTool} from './services/modes/remove-token-tool'; import {ResetPositionAndZoomTool} from './services/modes/reset-position-and-zoom-tool'; import {SelectTool} from './services/modes/select-tool'; import {SwitchLabelTool} from './services/modes/switch-label-tool'; -import {BuilderModeService} from '../../builder-mode.service'; +import {BuilderModeService} from '../../services/builder-mode.service'; import {CanvasToolContext} from './services/modes/canvas-tool-context'; import {ProcessActionsTool} from "../actions-mode/tools/process-actions-tool"; -import {BuilderIntegrationService} from "../../builder-integration.service"; +import {BuilderIntegrationService} from "../../services/builder-integration.service"; +import {LocalStorageService} from '../../services/local-storage.service'; @Injectable() export class EditModeService extends CanvasModeService { @@ -76,7 +77,8 @@ export class EditModeService extends CanvasModeService { protected _actionMode: ActionsModeService, protected _actionsMasterDetail: ActionsMasterDetailService, protected _processActionsTool: ProcessActionsTool, - protected _builderIntegrationService: BuilderIntegrationService + protected _builderIntegrationService: BuilderIntegrationService, + protected _localStorageService: LocalStorageService ) { super(_arcFactory, modelService, _canvasService); this.mode = new Mode( @@ -90,7 +92,7 @@ export class EditModeService extends CanvasModeService { this._tutorialService.modeler, this._parentInjector ); - const context = new CanvasToolContext(modelService, dialog, this, router, transitionService, _actionMode, _actionsMasterDetail, _builderModeService, _processActionsTool, _builderIntegrationService); + const context = new CanvasToolContext(modelService, dialog, this, router, transitionService, _actionMode, _actionsMasterDetail, _builderModeService, _processActionsTool, _builderIntegrationService, _localStorageService); this.switchTools = new ToolGroup( new ClearModelTool(context), new ResetPositionAndZoomTool(context), @@ -343,7 +345,7 @@ export class EditModeService extends CanvasModeService { const arcRatio = arcLengthOffset / arcLength; const finalX = intersect.x + xLineLength * arcRatio; const finalY = intersect.y + yLineLength * arcRatio; - arcLine.setAttributeNS(null, 'points', `${intersect.x},${intersect.y} ${finalX},${finalY}`); + arcLine.setAttributeNS(null, 'points', `${intersect.x},${intersect.y} ${finalX ?? 0},${finalY ?? 0}`); } // OTHER diff --git a/projects/netgrif-components/src/lib/builder/modeler/edit-mode/services/modes/canvas-tool-context.ts b/projects/netgrif-components/src/lib/builder/modeler/edit-mode/services/modes/canvas-tool-context.ts index f98e0babf..b52ed899e 100644 --- a/projects/netgrif-components/src/lib/builder/modeler/edit-mode/services/modes/canvas-tool-context.ts +++ b/projects/netgrif-components/src/lib/builder/modeler/edit-mode/services/modes/canvas-tool-context.ts @@ -5,9 +5,10 @@ import {ActionsModeService} from '../../../actions-mode/actions-mode.service'; import {SelectedTransitionService} from '../../../selected-transition.service'; import {ModelService} from '../../../services/model/model.service'; import {EditModeService} from '../../edit-mode.service'; -import {BuilderModeService} from '../../../../builder-mode.service'; +import {BuilderModeService} from '../../../../services/builder-mode.service'; import {ProcessActionsTool} from "../../../actions-mode/tools/process-actions-tool"; -import {BuilderIntegrationService} from "../../../../builder-integration.service"; +import {BuilderIntegrationService} from "../../../../services/builder-integration.service"; +import {LocalStorageService} from '../../../../services/local-storage.service'; export class CanvasToolContext { constructor( @@ -20,6 +21,7 @@ export class CanvasToolContext { public readonly actionsMasterDetail: ActionsMasterDetailService, public readonly builderModeService: BuilderModeService, public readonly processTool: ProcessActionsTool, - public readonly builderIntegrationService: BuilderIntegrationService + public readonly builderIntegrationService: BuilderIntegrationService, + public readonly localStorageService: LocalStorageService, ) {} } diff --git a/projects/netgrif-components/src/lib/builder/modeler/edit-mode/services/modes/canvas-tool.ts b/projects/netgrif-components/src/lib/builder/modeler/edit-mode/services/modes/canvas-tool.ts index 41c1f1faa..4aa2b955b 100644 --- a/projects/netgrif-components/src/lib/builder/modeler/edit-mode/services/modes/canvas-tool.ts +++ b/projects/netgrif-components/src/lib/builder/modeler/edit-mode/services/modes/canvas-tool.ts @@ -28,7 +28,7 @@ import {CanvasPlace} from '../../domain/canvas-place'; import {CanvasTransition} from '../../domain/canvas-transition'; import {EditModeService} from '../../edit-mode.service'; import {Hotkey} from './domain/hotkey'; -import {BuilderModeService} from '../../../../builder-mode.service'; +import {BuilderModeService} from '../../../../services/builder-mode.service'; import {CanvasToolContext} from './canvas-tool-context'; export abstract class CanvasTool extends CanvasListenerTool { diff --git a/projects/netgrif-components/src/lib/builder/modeler/edit-mode/services/modes/select-tool.ts b/projects/netgrif-components/src/lib/builder/modeler/edit-mode/services/modes/select-tool.ts index 8da7eb87e..aed2f4c4e 100644 --- a/projects/netgrif-components/src/lib/builder/modeler/edit-mode/services/modes/select-tool.ts +++ b/projects/netgrif-components/src/lib/builder/modeler/edit-mode/services/modes/select-tool.ts @@ -18,7 +18,7 @@ import {CanvasTransition} from '../../domain/canvas-transition'; import {CanvasTool} from './canvas-tool'; import {CanvasToolContext} from './canvas-tool-context'; import {Hotkey} from './domain/hotkey'; -import {BuilderMode} from '../../../../builder-mode.service'; +import {BuilderMode} from '../../../../services/builder-mode.service'; export class SelectTool extends CanvasTool { diff --git a/projects/netgrif-components/src/lib/builder/modeler/history-mode/history-master-detail.service.ts b/projects/netgrif-components/src/lib/builder/modeler/history-mode/history-master-detail.service.ts index 4eaff4e9b..a2924e0af 100644 --- a/projects/netgrif-components/src/lib/builder/modeler/history-mode/history-master-detail.service.ts +++ b/projects/netgrif-components/src/lib/builder/modeler/history-mode/history-master-detail.service.ts @@ -5,11 +5,13 @@ import {AbstractMasterDetailService} from '../components/master-detail/abstract- import {ModelerConfig} from '../modeler-config'; import {HistoryChange} from '../services/history/history-change'; import {HistoryService} from '../services/history/history.service'; +import {LocalStorageService} from "../../services/local-storage.service"; @Injectable() export class HistoryMasterDetailService extends AbstractMasterDetailService> { - constructor(protected _historyService: HistoryService) { + constructor(protected _historyService: HistoryService, + protected _localStorageService: LocalStorageService) { super(); } @@ -37,13 +39,13 @@ export class HistoryMasterDetailService extends AbstractMasterDetailService { constructor(protected _modelService: ModelService, - protected _historyService: HistoryService) { + protected _historyService: HistoryService, + protected _localStorageService: LocalStorageService) { super(); } @@ -51,12 +53,12 @@ export class RoleMasterDetailService extends AbstractMasterDetailService { } getSortFromLocalStorage(): Sort { - return {active: localStorage.getItem(ModelerConfig.LOCALSTORAGE.MASTER_DETAIL.ROLE_SORT), - direction: localStorage.getItem(ModelerConfig.LOCALSTORAGE.MASTER_DETAIL.ROLE_DIRECTION)} as Sort; + return {active: this._localStorageService.getItem(ModelerConfig.LOCALSTORAGE.MASTER_DETAIL.ROLE_SORT), + direction: this._localStorageService.getItem(ModelerConfig.LOCALSTORAGE.MASTER_DETAIL.ROLE_DIRECTION)} as Sort; } setSortToLocalStorage(sort: Sort) { - localStorage.setItem(ModelerConfig.LOCALSTORAGE.MASTER_DETAIL.ROLE_SORT, sort.active); - localStorage.setItem(ModelerConfig.LOCALSTORAGE.MASTER_DETAIL.ROLE_DIRECTION, sort.direction); + this._localStorageService.setItem(ModelerConfig.LOCALSTORAGE.MASTER_DETAIL.ROLE_SORT, sort.active); + this._localStorageService.setItem(ModelerConfig.LOCALSTORAGE.MASTER_DETAIL.ROLE_DIRECTION, sort.direction); } } diff --git a/projects/netgrif-components/src/lib/builder/modeler/services/canvas/canvas-mode-service.ts b/projects/netgrif-components/src/lib/builder/modeler/services/canvas/canvas-mode-service.ts index 072d9d9b3..71b00088e 100644 --- a/projects/netgrif-components/src/lib/builder/modeler/services/canvas/canvas-mode-service.ts +++ b/projects/netgrif-components/src/lib/builder/modeler/services/canvas/canvas-mode-service.ts @@ -64,7 +64,7 @@ export abstract class CanvasModeService extends ModeService { const svgTransition = new PetriflowSvgTransition(new SvgTransition(modelTransition.id, this.labelText(modelTransition), new DOMPoint(modelTransition.x, modelTransition.y)), modelTransition.icon); const canvasTransition = new CanvasTransition(modelTransition, svgTransition); this.elements.addTransition(canvasTransition); - this.canvas.addTransition(svgTransition.canvasElement); + this.canvas?.addTransition(svgTransition.canvasElement); return canvasTransition; } @@ -72,7 +72,7 @@ export abstract class CanvasModeService extends ModeService { const svgPlace = new PetriflowSvgPlace(new SvgPlace(modelPlace.id, this.labelText(modelPlace), modelPlace.marking, new DOMPoint(modelPlace.x, modelPlace.y))); const canvasPlace = new CanvasPlace(modelPlace, svgPlace); this.elements.addPlace(canvasPlace); - this.canvas.addPlace(svgPlace.canvasElement); + this.canvas?.addPlace(svgPlace.canvasElement); return canvasPlace; } @@ -84,7 +84,7 @@ export abstract class CanvasModeService extends ModeService { const canvasArc = new CanvasArc(modelArc, svgArc); svgArc.setMultiplicity(this.multiplicityText(canvasArc)); this.elements.addArc(canvasArc); - this.canvas.addArc(svgArc.element); + this.canvas?.addArc(svgArc.element); return canvasArc; } diff --git a/projects/netgrif-components/src/lib/builder/modeler/services/history/history.service.ts b/projects/netgrif-components/src/lib/builder/modeler/services/history/history.service.ts index e8f40cfe4..1d162527c 100644 --- a/projects/netgrif-components/src/lib/builder/modeler/services/history/history.service.ts +++ b/projects/netgrif-components/src/lib/builder/modeler/services/history/history.service.ts @@ -7,6 +7,7 @@ import {ModelerConfig} from '../../modeler-config'; import {ModelService} from '../model/model.service'; import {History} from './history'; import {HistoryChange} from './history-change'; +import {LocalStorageService} from "../../../services/local-storage.service"; @Injectable() export class HistoryService { @@ -17,6 +18,7 @@ export class HistoryService { constructor( private modelService: ModelService, private exportService: ExportService, + protected _localStorageService: LocalStorageService ) { this._history = new History(); this._historyChange = new Subject(); @@ -61,10 +63,12 @@ export class HistoryService { } async saveToLocalStorage(model: PetriNet): Promise { - localStorage.setItem(ModelerConfig.LOCALSTORAGE.DRAFT_MODEL.KEY, this.exportService.exportXml(model)); - localStorage.setItem(ModelerConfig.LOCALSTORAGE.DRAFT_MODEL.TIMESTAMP, new Date().toLocaleString()); - localStorage.setItem(ModelerConfig.LOCALSTORAGE.DRAFT_MODEL.ID, `${model.id}`); - localStorage.setItem(ModelerConfig.LOCALSTORAGE.DRAFT_MODEL.TITLE, `${model.title.value}`); + if (this._localStorageService.prefix === '') { + this._localStorageService.setItem(ModelerConfig.LOCALSTORAGE.DRAFT_MODEL.KEY, this.exportService.exportXml(model)); + this._localStorageService.setItem(ModelerConfig.LOCALSTORAGE.DRAFT_MODEL.TIMESTAMP, new Date().toLocaleString()); + this._localStorageService.setItem(ModelerConfig.LOCALSTORAGE.DRAFT_MODEL.ID, `${model.id}`); + this._localStorageService.setItem(ModelerConfig.LOCALSTORAGE.DRAFT_MODEL.TITLE, `${model.title.value}`); + } } get historyChange(): Subject> { diff --git a/projects/netgrif-components/src/lib/builder/modeler/task-mode/task-mode.component.ts b/projects/netgrif-components/src/lib/builder/modeler/task-mode/task-mode.component.ts index bfaa43b66..4f980ecdc 100644 --- a/projects/netgrif-components/src/lib/builder/modeler/task-mode/task-mode.component.ts +++ b/projects/netgrif-components/src/lib/builder/modeler/task-mode/task-mode.component.ts @@ -1,4 +1,4 @@ -import {AfterViewInit, Component, Optional, ViewChild} from '@angular/core'; +import {AfterViewInit, Component, ViewChild} from '@angular/core'; import {FlexModule} from "@ngbracket/ngx-layout"; import {HeaderComponentModule} from "../../../header/header.module"; import {PanelComponentModule} from "../../../panel/panel.module"; @@ -21,7 +21,7 @@ import { NAE_DEFAULT_HEADERS } from "@netgrif/components-core"; import {InjectedTabbedBuilderViewData} from "../../injected-builder-data"; -import {BuilderIntegrationService} from "../../builder-integration.service"; +import {BuilderIntegrationService} from "../../services/builder-integration.service"; const baseFilterFactory = (injectedData: InjectedTabbedBuilderViewData) => { const caseId = injectedData?.processCase?.stringId ?? "__EMPTY__" diff --git a/projects/netgrif-components/src/lib/builder/public-api.ts b/projects/netgrif-components/src/lib/builder/public-api.ts index 974c1c6c2..31380ebc7 100644 --- a/projects/netgrif-components/src/lib/builder/public-api.ts +++ b/projects/netgrif-components/src/lib/builder/public-api.ts @@ -9,7 +9,7 @@ export * from './modeler/actions-mode/action-editor/action-editor-list/action-ed // SERVICES -export * from './builder-mode.service'; +export * from './services/builder-mode.service'; export * from './modeler/gridster-field-to-engine-field.service'; export * from './modeler/model-import-service'; export * from './modeler/mortgage.service'; diff --git a/projects/netgrif-components/src/lib/builder/builder-integration.service.ts b/projects/netgrif-components/src/lib/builder/services/builder-integration.service.ts similarity index 67% rename from projects/netgrif-components/src/lib/builder/builder-integration.service.ts rename to projects/netgrif-components/src/lib/builder/services/builder-integration.service.ts index c0646b85e..49e906096 100644 --- a/projects/netgrif-components/src/lib/builder/builder-integration.service.ts +++ b/projects/netgrif-components/src/lib/builder/services/builder-integration.service.ts @@ -1,25 +1,37 @@ import {Injectable} from "@angular/core"; -import {HistoryService} from "./modeler/services/history/history.service"; -import {Case, LoggerService, TaskResourceService, extractFieldValueFromData, TaskEventOutcome} from "@netgrif/components-core"; +import {HistoryService} from "../modeler/services/history/history.service"; +import { + Case, + extractFieldValueFromData, + LoadingEmitter, + LoggerService, + TaskEventOutcome, + TaskResourceService +} from "@netgrif/components-core"; import {ExportService, PetriNet} from "@netgrif/petriflow"; -import {HistoryChange} from "./modeler/services/history/history-change"; +import {HistoryChange} from "../modeler/services/history/history-change"; import {Observable, of, Subject} from "rxjs"; @Injectable() export class BuilderIntegrationService { - protected _isIntegrated: boolean = false; + protected _isIntegrated: boolean; protected _processCase: Case; protected _editTaskId: string; - protected _isAssigned: boolean = false; - private _onlyTaskView: boolean = true; + protected _isAssigned: boolean; + protected _onlyTaskView: boolean; - protected _reloadCase: Subject = new Subject(); - protected _reloadModes: Subject = new Subject(); + protected _reloadCase: Subject; + protected _reloadModes: Subject; + protected _loading: LoadingEmitter; constructor(protected _historyService: HistoryService, protected _taskResourceService: TaskResourceService, protected _exportService: ExportService, protected _log: LoggerService) { + this._onlyTaskView = true; + this._reloadCase = new Subject(); + this._reloadModes = new Subject(); + this._loading = new LoadingEmitter(); this._historyService.historyChange.subscribe(history => { if (this._isIntegrated && this._editTaskId) { if (!this._isAssigned) { @@ -30,7 +42,7 @@ export class BuilderIntegrationService { this.setData(history); }); } else { - this.setData(history); + this.setData(history); } } }); @@ -84,18 +96,33 @@ export class BuilderIntegrationService { this._reloadModes.next(value); } + get loading$(): Observable { + return this._loading.asObservable(); + } + + public isLoading(): boolean { + return this._loading.value; + } + protected setData(history: HistoryChange) { + if (this._loading.value) { + return; + } const body = {}; body[this._editTaskId] = {}; body[this._editTaskId]['xml_text'] = { type: 'text', value: this._exportService.exportXml(history.record) }; - this._taskResourceService.setData(this._editTaskId, body).subscribe(outcome => { - if ((outcome.outcome as TaskEventOutcome)?.task?.user?.email !== undefined) { - this._isAssigned = true; + this._taskResourceService.setData(this._editTaskId, body).subscribe({ + next: outcome => { + if ((outcome.outcome as TaskEventOutcome)?.task?.user?.email !== undefined) { + this._isAssigned = true; + } + this._log.debug('Data set successfully'); + }, error: error => { + this._log.error('Data set failed', error.message); } - this._log.debug('Data set successfully'); }); } @@ -133,11 +160,22 @@ export class BuilderIntegrationService { type: 'text', value: model.title?.value }; - this._taskResourceService.setData(this._editTaskId, body).subscribe(outcome => { - if ((outcome.outcome as TaskEventOutcome)?.task?.user?.email !== undefined) { - this._isAssigned = true; + body[this._editTaskId]['xml_text'] = { + type: 'text', + value: this._exportService.exportXml(model) + }; + this._loading.next(true); + this._taskResourceService.setData(this._editTaskId, body).subscribe({ + next: outcome => { + this._loading.next(false); + if ((outcome.outcome as TaskEventOutcome)?.task?.user?.email !== undefined) { + this._isAssigned = true; + } + this._log.debug('Data set successfully'); + }, error: error => { + this._loading.next(false); + this._log.error('Data set failed', error.message); } - this._log.debug('Data set successfully'); }); } } diff --git a/projects/netgrif-components/src/lib/builder/builder-mode.service.spec.ts b/projects/netgrif-components/src/lib/builder/services/builder-mode.service.spec.ts similarity index 100% rename from projects/netgrif-components/src/lib/builder/builder-mode.service.spec.ts rename to projects/netgrif-components/src/lib/builder/services/builder-mode.service.spec.ts diff --git a/projects/netgrif-components/src/lib/builder/builder-mode.service.ts b/projects/netgrif-components/src/lib/builder/services/builder-mode.service.ts similarity index 100% rename from projects/netgrif-components/src/lib/builder/builder-mode.service.ts rename to projects/netgrif-components/src/lib/builder/services/builder-mode.service.ts diff --git a/projects/netgrif-components/src/lib/builder/services/local-storage.service.ts b/projects/netgrif-components/src/lib/builder/services/local-storage.service.ts new file mode 100644 index 000000000..5c41e86e2 --- /dev/null +++ b/projects/netgrif-components/src/lib/builder/services/local-storage.service.ts @@ -0,0 +1,25 @@ +import {Inject, Injectable, Optional} from "@angular/core"; +import {InjectedTabbedBuilderViewData} from "../injected-builder-data"; +import {NAE_TAB_DATA} from "@netgrif/components-core"; + +@Injectable() +export class LocalStorageService { + + protected _prefix = ''; + + constructor(@Optional() @Inject(NAE_TAB_DATA) injectedTabData: InjectedTabbedBuilderViewData) { + this._prefix = injectedTabData?.processCase ? injectedTabData?.processCase?.stringId + '_' : ''; + } + + get prefix(): string { + return this._prefix; + } + + public getItem(key: string): string | null { + return localStorage.getItem(this._prefix + key); + } + + public setItem(key: string, value: string): void { + localStorage.setItem(this._prefix + key, value); + } +}