diff --git a/modules/ui/src/app/pages/general-settings/general-settings.component.spec.ts b/modules/ui/src/app/pages/general-settings/general-settings.component.spec.ts index ac71f0903..4a8a0b181 100644 --- a/modules/ui/src/app/pages/general-settings/general-settings.component.spec.ts +++ b/modules/ui/src/app/pages/general-settings/general-settings.component.spec.ts @@ -60,6 +60,8 @@ describe('GeneralSettingsComponent', () => { 'updateSystemConfig', 'setIsSubmitting', 'setDefaultFormValues', + 'setFormDisable', + 'setFormEnable', 'getSystemConfig', 'viewModel$', 'systemStatus$', @@ -140,19 +142,15 @@ describe('GeneralSettingsComponent', () => { describe('#settingsDisable', () => { it('should disable setting form when get settingDisable as true ', () => { - spyOn(component.settingForm, 'disable'); - component.settingsDisable = true; - expect(component.settingForm.disable).toHaveBeenCalled(); + expect(mockSettingsStore.setFormDisable).toHaveBeenCalled(); }); it('should enable setting form when get settingDisable as false ', () => { - spyOn(component.settingForm, 'enable'); - component.settingsDisable = false; - expect(component.settingForm.enable).toHaveBeenCalled(); + expect(mockSettingsStore.setFormEnable).toHaveBeenCalled(); }); it('should disable "Save" button when get settingDisable as true', () => { diff --git a/modules/ui/src/app/pages/general-settings/general-settings.component.ts b/modules/ui/src/app/pages/general-settings/general-settings.component.ts index 639fc9cbd..2ea4a2671 100644 --- a/modules/ui/src/app/pages/general-settings/general-settings.component.ts +++ b/modules/ui/src/app/pages/general-settings/general-settings.component.ts @@ -159,9 +159,12 @@ export class GeneralSettingsComponent implements OnInit, OnDestroy { .pipe(takeUntil(this.destroy$)) .subscribe(systemStatus => { if (systemStatus?.status) { - this.settingsDisable = this.testRunService.testrunInProgress( + const isTestrunInProgress = this.testRunService.testrunInProgress( systemStatus.status ); + if (isTestrunInProgress !== this.isSettingsDisable) { + this.settingsDisable = isTestrunInProgress; + } } }); } @@ -187,11 +190,11 @@ export class GeneralSettingsComponent implements OnInit, OnDestroy { } private disableSettings(): void { - this.settingForm?.disable(); + this.settingsStore.setFormDisable(this.settingForm); } private enableSettings(): void { - this.settingForm?.enable(); + this.settingsStore.setFormEnable(this.settingForm); } private createSettingForm() { diff --git a/modules/ui/src/app/pages/general-settings/general-settings.store.ts b/modules/ui/src/app/pages/general-settings/general-settings.store.ts index 870262452..ec2b5c99f 100644 --- a/modules/ui/src/app/pages/general-settings/general-settings.store.ts +++ b/modules/ui/src/app/pages/general-settings/general-settings.store.ts @@ -166,6 +166,26 @@ export class GeneralSettingsStore extends ComponentStore ); }); + setFormDisable = this.effect((formGroup$: Observable) => { + return formGroup$.pipe( + tap(formGroup => { + formGroup.disable(); + }) + ); + }); + + setFormEnable = this.effect((formGroup$: Observable) => { + return formGroup$.pipe( + withLatestFrom(this.systemConfig$), + tap(([formGroup, config]) => { + formGroup.enable(); + if (config.single_intf) { + this.disableInternetInterface(formGroup); + } + }) + ); + }); + setDefaultFormValues = this.effect((formGroup$: Observable) => { return formGroup$.pipe( switchMap(formGroup =>