diff --git a/src-ui/src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.spec.ts b/src-ui/src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.spec.ts index efd9dab8b..9e1661a13 100644 --- a/src-ui/src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.spec.ts +++ b/src-ui/src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.spec.ts @@ -48,13 +48,13 @@ describe('CorrespondentEditDialogComponent', () => { }) it('should support create and edit modes', () => { - component.dialogMode = EditDialogMode.CREATE + component.dialogMode.set(EditDialogMode.CREATE) const createTitleSpy = jest.spyOn(component, 'getCreateTitle') const editTitleSpy = jest.spyOn(component, 'getEditTitle') fixture.detectChanges() expect(createTitleSpy).toHaveBeenCalled() expect(editTitleSpy).not.toHaveBeenCalled() - component.dialogMode = EditDialogMode.EDIT + component.dialogMode.set(EditDialogMode.EDIT) fixture.detectChanges() expect(editTitleSpy).toHaveBeenCalled() }) diff --git a/src-ui/src/app/components/common/edit-dialog/custom-field-edit-dialog/custom-field-edit-dialog.component.spec.ts b/src-ui/src/app/components/common/edit-dialog/custom-field-edit-dialog/custom-field-edit-dialog.component.spec.ts index 54d98cbb2..970c7f364 100644 --- a/src-ui/src/app/components/common/edit-dialog/custom-field-edit-dialog/custom-field-edit-dialog.component.spec.ts +++ b/src-ui/src/app/components/common/edit-dialog/custom-field-edit-dialog/custom-field-edit-dialog.component.spec.ts @@ -51,26 +51,26 @@ describe('CustomFieldEditDialogComponent', () => { }) it('should support create and edit modes', () => { - component.dialogMode = EditDialogMode.CREATE + component.dialogMode.set(EditDialogMode.CREATE) const createTitleSpy = jest.spyOn(component, 'getCreateTitle') const editTitleSpy = jest.spyOn(component, 'getEditTitle') fixture.detectChanges() expect(createTitleSpy).toHaveBeenCalled() expect(editTitleSpy).not.toHaveBeenCalled() - component.dialogMode = EditDialogMode.EDIT + component.dialogMode.set(EditDialogMode.EDIT) fixture.detectChanges() expect(editTitleSpy).toHaveBeenCalled() }) it('should disable data type select on edit', () => { - component.dialogMode = EditDialogMode.EDIT + component.dialogMode.set(EditDialogMode.EDIT) fixture.detectChanges() component.ngOnInit() expect(component.objectForm.get('data_type').disabled).toBeTruthy() }) it('should initialize select options on edit', () => { - component.dialogMode = EditDialogMode.EDIT + component.dialogMode.set(EditDialogMode.EDIT) component.object = { id: 1, name: 'Field 1', @@ -91,7 +91,7 @@ describe('CustomFieldEditDialogComponent', () => { }) it('should support add / remove select options', () => { - component.dialogMode = EditDialogMode.CREATE + component.dialogMode.set(EditDialogMode.CREATE) fixture.detectChanges() component.ngOnInit() expect( @@ -115,7 +115,7 @@ describe('CustomFieldEditDialogComponent', () => { const selectOptionInputs = component[ 'selectOptionInputs' ] as QueryList - component.dialogMode = EditDialogMode.CREATE + component.dialogMode.set(EditDialogMode.CREATE) component.objectForm.get('data_type').setValue(CustomFieldDataType.Select) component.ngOnInit() component.ngAfterViewInit() @@ -125,7 +125,7 @@ describe('CustomFieldEditDialogComponent', () => { }) it('should send all select options including those changed in form on save', () => { - component.dialogMode = EditDialogMode.EDIT + component.dialogMode.set(EditDialogMode.EDIT) component.object = { id: 1, name: 'Field 1', diff --git a/src-ui/src/app/components/common/edit-dialog/custom-field-edit-dialog/custom-field-edit-dialog.component.ts b/src-ui/src/app/components/common/edit-dialog/custom-field-edit-dialog/custom-field-edit-dialog.component.ts index 8e8bddfab..78fd7e748 100644 --- a/src-ui/src/app/components/common/edit-dialog/custom-field-edit-dialog/custom-field-edit-dialog.component.ts +++ b/src-ui/src/app/components/common/edit-dialog/custom-field-edit-dialog/custom-field-edit-dialog.component.ts @@ -149,7 +149,7 @@ export class CustomFieldEditDialogComponent } get typeFieldDisabled(): boolean { - return this.dialogMode === EditDialogMode.EDIT + return this.dialogMode() === EditDialogMode.EDIT } private updateSelectOptions() { diff --git a/src-ui/src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.spec.ts b/src-ui/src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.spec.ts index 335b842fb..c107c39d3 100644 --- a/src-ui/src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.spec.ts +++ b/src-ui/src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.spec.ts @@ -48,13 +48,13 @@ describe('DocumentTypeEditDialogComponent', () => { }) it('should support create and edit modes', () => { - component.dialogMode = EditDialogMode.CREATE + component.dialogMode.set(EditDialogMode.CREATE) const createTitleSpy = jest.spyOn(component, 'getCreateTitle') const editTitleSpy = jest.spyOn(component, 'getEditTitle') fixture.detectChanges() expect(createTitleSpy).toHaveBeenCalled() expect(editTitleSpy).not.toHaveBeenCalled() - component.dialogMode = EditDialogMode.EDIT + component.dialogMode.set(EditDialogMode.EDIT) fixture.detectChanges() expect(editTitleSpy).toHaveBeenCalled() }) diff --git a/src-ui/src/app/components/common/edit-dialog/edit-dialog.component.spec.ts b/src-ui/src/app/components/common/edit-dialog/edit-dialog.component.spec.ts index 08cef5a46..e16e8a3d8 100644 --- a/src-ui/src/app/components/common/edit-dialog/edit-dialog.component.spec.ts +++ b/src-ui/src/app/components/common/edit-dialog/edit-dialog.component.spec.ts @@ -136,7 +136,7 @@ describe('EditDialogComponent', () => { it('should interpolate object permissions', () => { component.getMatchingAlgorithms() // coverage component.object = tag - component.dialogMode = EditDialogMode.EDIT + component.dialogMode.set(EditDialogMode.EDIT) component.ngOnInit() expect(component.objectForm.get('permissions_form').value).toEqual({ @@ -153,7 +153,7 @@ describe('EditDialogComponent', () => { })) it('should set default owner when in create mode if unset', () => { - component.dialogMode = EditDialogMode.CREATE + component.dialogMode.set(EditDialogMode.CREATE) component.ngOnInit() expect(component.objectForm.get('permissions_form').value.owner).toEqual( currentUser.id @@ -164,7 +164,7 @@ describe('EditDialogComponent', () => { }) it('should set default perms when in create mode if set', () => { - component.dialogMode = EditDialogMode.CREATE + component.dialogMode.set(EditDialogMode.CREATE) settingsService.set(SETTINGS_KEYS.DEFAULT_PERMS_OWNER, 11) settingsService.set(SETTINGS_KEYS.DEFAULT_PERMS_VIEW_USERS, [1, 2]) settingsService.set(SETTINGS_KEYS.DEFAULT_PERMS_VIEW_GROUPS, [3]) @@ -203,18 +203,18 @@ describe('EditDialogComponent', () => { }) it('should support create and edit modes', () => { - component.dialogMode = EditDialogMode.CREATE + component.dialogMode.set(EditDialogMode.CREATE) const createTitleSpy = jest.spyOn(component, 'getCreateTitle') const editTitleSpy = jest.spyOn(component, 'getEditTitle') - fixture.detectChanges() + component.getTitle() expect(createTitleSpy).toHaveBeenCalled() expect(editTitleSpy).not.toHaveBeenCalled() - component.dialogMode = EditDialogMode.EDIT - fixture.detectChanges() + component.dialogMode.set(EditDialogMode.EDIT) + component.getTitle() expect(editTitleSpy).toHaveBeenCalled() // coverage - component.dialogMode = null - fixture.detectChanges() + component.dialogMode.set(null) + component.getTitle() }) it('should close on cancel', () => { @@ -225,14 +225,14 @@ describe('EditDialogComponent', () => { it('should update an object on save in edit mode', () => { const updateSpy = jest.spyOn(tagService, 'update') - component.dialogMode = EditDialogMode.EDIT + component.dialogMode.set(EditDialogMode.EDIT) component.save() expect(updateSpy).toHaveBeenCalled() }) it('should not submit owner or permissions for non-owner edits', () => { component.object = tag - component.dialogMode = EditDialogMode.EDIT + component.dialogMode.set(EditDialogMode.EDIT) component.ngOnInit() component.objectForm.get('name').setValue('Updated tag') @@ -251,7 +251,7 @@ describe('EditDialogComponent', () => { it('should create an object on save in edit mode', () => { const createSpy = jest.spyOn(tagService, 'create') - component.dialogMode = EditDialogMode.CREATE + component.dialogMode.set(EditDialogMode.CREATE) component.save() expect(createSpy).toHaveBeenCalled() }) diff --git a/src-ui/src/app/components/common/edit-dialog/edit-dialog.component.ts b/src-ui/src/app/components/common/edit-dialog/edit-dialog.component.ts index 00f28ab2b..ca92aa5bb 100644 --- a/src-ui/src/app/components/common/edit-dialog/edit-dialog.component.ts +++ b/src-ui/src/app/components/common/edit-dialog/edit-dialog.component.ts @@ -5,7 +5,7 @@ import { OnInit, Output, inject, - signal, + model, } from '@angular/core' import { FormGroup } from '@angular/forms' import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap' @@ -46,19 +46,10 @@ export abstract class EditDialogComponent< protected settingsService = inject(SettingsService) protected permissionsService = inject(PermissionsService) - private dialogModeState = signal(EditDialogMode.CREATE, { + dialogMode = model(EditDialogMode.CREATE, { equal: () => false, }) - @Input() - get dialogMode(): EditDialogMode { - return this.dialogModeState() - } - - set dialogMode(dialogMode: EditDialogMode) { - this.dialogModeState.set(dialogMode) - } - @Input() object: T @@ -81,7 +72,7 @@ export abstract class EditDialogComponent< objectForm: FormGroup = this.getForm() ngOnInit(): void { - if (this.object != null && this.dialogMode !== EditDialogMode.CREATE) { + if (this.object != null && this.dialogMode() !== EditDialogMode.CREATE) { this.object['permissions_form'] = { owner: (this.object as ObjectWithPermissions).owner, set_permissions: (this.object as ObjectWithPermissions).permissions, @@ -135,7 +126,7 @@ export abstract class EditDialogComponent< } getTitle() { - switch (this.dialogMode) { + switch (this.dialogMode()) { case EditDialogMode.CREATE: return this.getCreateTitle() case EditDialogMode.EDIT: @@ -162,7 +153,7 @@ export abstract class EditDialogComponent< protected shouldSubmitPermissions(): boolean { return ( - this.dialogMode === EditDialogMode.CREATE || + this.dialogMode() === EditDialogMode.CREATE || this.permissionsService.currentUserOwnsObject(this.object) ) } @@ -183,7 +174,7 @@ export abstract class EditDialogComponent< delete newObject['set_permissions'] } var serverResponse: Observable - switch (this.dialogMode) { + switch (this.dialogMode()) { case EditDialogMode.CREATE: serverResponse = this.service.create(newObject) break diff --git a/src-ui/src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.spec.ts b/src-ui/src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.spec.ts index 86977840a..b7002853b 100644 --- a/src-ui/src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.spec.ts +++ b/src-ui/src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.spec.ts @@ -52,13 +52,13 @@ describe('GroupEditDialogComponent', () => { }) it('should support create and edit modes', () => { - component.dialogMode = EditDialogMode.CREATE + component.dialogMode.set(EditDialogMode.CREATE) const createTitleSpy = jest.spyOn(component, 'getCreateTitle') const editTitleSpy = jest.spyOn(component, 'getEditTitle') fixture.detectChanges() expect(createTitleSpy).toHaveBeenCalled() expect(editTitleSpy).not.toHaveBeenCalled() - component.dialogMode = EditDialogMode.EDIT + component.dialogMode.set(EditDialogMode.EDIT) fixture.detectChanges() expect(editTitleSpy).toHaveBeenCalled() }) diff --git a/src-ui/src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.spec.ts b/src-ui/src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.spec.ts index 5881eaced..c4925881f 100644 --- a/src-ui/src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.spec.ts +++ b/src-ui/src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.spec.ts @@ -65,13 +65,13 @@ describe('MailAccountEditDialogComponent', () => { }) it('should support create and edit modes', () => { - component.dialogMode = EditDialogMode.CREATE + component.dialogMode.set(EditDialogMode.CREATE) const createTitleSpy = jest.spyOn(component, 'getCreateTitle') const editTitleSpy = jest.spyOn(component, 'getEditTitle') fixture.detectChanges() expect(createTitleSpy).toHaveBeenCalled() expect(editTitleSpy).not.toHaveBeenCalled() - component.dialogMode = EditDialogMode.EDIT + component.dialogMode.set(EditDialogMode.EDIT) fixture.detectChanges() expect(editTitleSpy).toHaveBeenCalled() }) diff --git a/src-ui/src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.spec.ts b/src-ui/src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.spec.ts index 831702402..a818c752b 100644 --- a/src-ui/src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.spec.ts +++ b/src-ui/src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.spec.ts @@ -82,13 +82,13 @@ describe('MailRuleEditDialogComponent', () => { }) it('should support create and edit modes', () => { - component.dialogMode = EditDialogMode.CREATE + component.dialogMode.set(EditDialogMode.CREATE) const createTitleSpy = jest.spyOn(component, 'getCreateTitle') const editTitleSpy = jest.spyOn(component, 'getEditTitle') fixture.detectChanges() expect(createTitleSpy).toHaveBeenCalled() expect(editTitleSpy).not.toHaveBeenCalled() - component.dialogMode = EditDialogMode.EDIT + component.dialogMode.set(EditDialogMode.EDIT) fixture.detectChanges() expect(editTitleSpy).toHaveBeenCalled() }) diff --git a/src-ui/src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.spec.ts b/src-ui/src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.spec.ts index 24fafcd6f..67bbba641 100644 --- a/src-ui/src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.spec.ts +++ b/src-ui/src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.spec.ts @@ -37,13 +37,13 @@ describe('StoragePathEditDialogComponent', () => { }) it('should support create and edit modes', () => { - component.dialogMode = EditDialogMode.CREATE + component.dialogMode.set(EditDialogMode.CREATE) const createTitleSpy = jest.spyOn(component, 'getCreateTitle') const editTitleSpy = jest.spyOn(component, 'getEditTitle') fixture.detectChanges() expect(createTitleSpy).toHaveBeenCalled() expect(editTitleSpy).not.toHaveBeenCalled() - component.dialogMode = EditDialogMode.EDIT + component.dialogMode.set(EditDialogMode.EDIT) fixture.detectChanges() expect(editTitleSpy).toHaveBeenCalled() }) diff --git a/src-ui/src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.spec.ts b/src-ui/src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.spec.ts index bf3ed9912..c16130a18 100644 --- a/src-ui/src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.spec.ts +++ b/src-ui/src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.spec.ts @@ -55,13 +55,13 @@ describe('TagEditDialogComponent', () => { }) it('should support create and edit modes', () => { - component.dialogMode = EditDialogMode.CREATE + component.dialogMode.set(EditDialogMode.CREATE) const createTitleSpy = jest.spyOn(component, 'getCreateTitle') const editTitleSpy = jest.spyOn(component, 'getEditTitle') fixture.detectChanges() expect(createTitleSpy).toHaveBeenCalled() expect(editTitleSpy).not.toHaveBeenCalled() - component.dialogMode = EditDialogMode.EDIT + component.dialogMode.set(EditDialogMode.EDIT) fixture.detectChanges() expect(editTitleSpy).toHaveBeenCalled() }) diff --git a/src-ui/src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.spec.ts b/src-ui/src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.spec.ts index b80ff4cf9..f50bf830e 100644 --- a/src-ui/src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.spec.ts +++ b/src-ui/src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.spec.ts @@ -82,13 +82,13 @@ describe('UserEditDialogComponent', () => { }) it('should support create and edit modes', () => { - component.dialogMode = EditDialogMode.CREATE + component.dialogMode.set(EditDialogMode.CREATE) const createTitleSpy = jest.spyOn(component, 'getCreateTitle') const editTitleSpy = jest.spyOn(component, 'getEditTitle') fixture.detectChanges() expect(createTitleSpy).toHaveBeenCalled() expect(editTitleSpy).not.toHaveBeenCalled() - component.dialogMode = EditDialogMode.EDIT + component.dialogMode.set(EditDialogMode.EDIT) fixture.detectChanges() expect(editTitleSpy).toHaveBeenCalled() }) diff --git a/src-ui/src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.spec.ts b/src-ui/src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.spec.ts index 2c7b56149..abc773ddf 100644 --- a/src-ui/src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.spec.ts +++ b/src-ui/src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.spec.ts @@ -194,7 +194,7 @@ describe('WorkflowEditDialogComponent', () => { }) it('should support create and edit modes, support adding triggers and actions on new workflow', () => { - component.dialogMode = EditDialogMode.CREATE + component.dialogMode.set(EditDialogMode.CREATE) const createTitleSpy = jest.spyOn(component, 'getCreateTitle') const editTitleSpy = jest.spyOn(component, 'getEditTitle') fixture.detectChanges() @@ -209,7 +209,7 @@ describe('WorkflowEditDialogComponent', () => { expect(component.object).not.toBeUndefined() expect(component.object.triggers).toHaveLength(1) - component.dialogMode = EditDialogMode.EDIT + component.dialogMode.set(EditDialogMode.EDIT) fixture.detectChanges() expect(editTitleSpy).toHaveBeenCalled() })