From 3b19624d98c26ec4f8913ad49f7a5e806a505a90 Mon Sep 17 00:00:00 2001 From: kurilova Date: Wed, 15 Jan 2025 08:57:42 +0000 Subject: [PATCH 1/3] Reset form values for new device --- .../device-qualification-from.component.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/ui/src/app/pages/devices/components/device-qualification-from/device-qualification-from.component.ts b/modules/ui/src/app/pages/devices/components/device-qualification-from/device-qualification-from.component.ts index 899266123..97195f05e 100644 --- a/modules/ui/src/app/pages/devices/components/device-qualification-from/device-qualification-from.component.ts +++ b/modules/ui/src/app/pages/devices/components/device-qualification-from/device-qualification-from.component.ts @@ -107,6 +107,8 @@ export class DeviceQualificationFromComponent implements OnInit, OnDestroy { const device = this.initialDevice(); if (device && device.mac_addr) { this.fillDeviceForm(this.format, device); + } else { + this.deviceQualificationForm.reset(); } }); From f375cb8a1aec37bf5c81968c18b1b85dadd1a998 Mon Sep 17 00:00:00 2001 From: kurilova Date: Wed, 15 Jan 2025 09:58:43 +0000 Subject: [PATCH 2/3] Reset form to default values --- .../device-tests/device-tests.component.ts | 13 ++++++++++--- .../device-qualification-from.component.ts | 8 +++++++- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/modules/ui/src/app/components/device-tests/device-tests.component.ts b/modules/ui/src/app/components/device-tests/device-tests.component.ts index 5ad9d4336..a0df852e4 100644 --- a/modules/ui/src/app/components/device-tests/device-tests.component.ts +++ b/modules/ui/src/app/components/device-tests/device-tests.component.ts @@ -16,6 +16,8 @@ import { ChangeDetectionStrategy, Component, + effect, + input, Input, OnInit, } from '@angular/core'; @@ -39,11 +41,15 @@ import { MatCheckboxModule } from '@angular/material/checkbox'; }) export class DeviceTestsComponent implements OnInit { @Input() deviceForm!: FormGroup; - @Input() deviceTestModules?: TestModules | null; @Input() testModules: TestModule[] = []; // For initiate test run form tests should be displayed and disabled for change @Input() disabled = false; + deviceTestModules = input(); + deviceTestModulesEffect = effect(() => { + this.fillTestModulesFormControls(); + }); + get test_modules() { return this.deviceForm?.controls['test_modules'] as FormArray; } @@ -54,11 +60,12 @@ export class DeviceTestsComponent implements OnInit { fillTestModulesFormControls() { this.test_modules.controls = []; - if (this.deviceTestModules) { + if (this.deviceTestModules()) { this.testModules.forEach(test => { this.test_modules.push( new FormControl( - (this.deviceTestModules as TestModules)[test.name]?.enabled || false + (this.deviceTestModules() as TestModules)[test.name]?.enabled || + false ) ); }); diff --git a/modules/ui/src/app/pages/devices/components/device-qualification-from/device-qualification-from.component.ts b/modules/ui/src/app/pages/devices/components/device-qualification-from/device-qualification-from.component.ts index 97195f05e..eff9c63e8 100644 --- a/modules/ui/src/app/pages/devices/components/device-qualification-from/device-qualification-from.component.ts +++ b/modules/ui/src/app/pages/devices/components/device-qualification-from/device-qualification-from.component.ts @@ -108,7 +108,7 @@ export class DeviceQualificationFromComponent implements OnInit, OnDestroy { if (device && device.mac_addr) { this.fillDeviceForm(this.format, device); } else { - this.deviceQualificationForm.reset(); + this.resetForm(); } }); @@ -195,6 +195,12 @@ export class DeviceQualificationFromComponent implements OnInit, OnDestroy { this.delete.emit(this.initialDevice()!); } + resetForm() { + this.deviceQualificationForm.reset({ + test_pack: TestingType.Qualification, + }); + } + private fillDeviceForm(format: QuestionFormat[], device: Device): void { format.forEach((question, index) => { const answer = device.additional_info?.find( From acec18ef1e2c6861f1ac3817d82993797e1bec1d Mon Sep 17 00:00:00 2001 From: kurilova Date: Wed, 15 Jan 2025 10:24:09 +0000 Subject: [PATCH 3/3] Fix test --- .../components/device-tests/device-tests.component.spec.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/ui/src/app/components/device-tests/device-tests.component.spec.ts b/modules/ui/src/app/components/device-tests/device-tests.component.spec.ts index 0599af372..b959bc1db 100644 --- a/modules/ui/src/app/components/device-tests/device-tests.component.spec.ts +++ b/modules/ui/src/app/components/device-tests/device-tests.component.spec.ts @@ -65,14 +65,14 @@ describe('DeviceTestsComponent', () => { }); it('should fill tests with device test values if device not present', () => { - component.deviceTestModules = { + fixture.componentRef.setInput('deviceTestModules', { connection: { enabled: false, }, dns: { enabled: true, }, - }; + }); component.ngOnInit(); expect(component.test_modules.controls[0].value).toEqual(false);