diff --git a/modules/ui/src/app/pages/settings/general-settings.component.html b/modules/ui/src/app/pages/settings/general-settings.component.html
index 7bdeb8dc8..36849b42e 100644
--- a/modules/ui/src/app/pages/settings/general-settings.component.html
+++ b/modules/ui/src/app/pages/settings/general-settings.component.html
@@ -58,9 +58,10 @@
[options]="vm.internetOptions">
-
+
If a port is missing from this list, you can
{
expect(mockLoaderService.setLoading).toHaveBeenCalledWith(true);
});
+ describe('#settingsDisable', () => {
+ it('should disable setting form when get settingDisable as true ', () => {
+ spyOn(component.settingForm, 'disable');
+
+ component.settingsDisable = true;
+
+ expect(component.settingForm.disable).toHaveBeenCalled();
+ });
+
+ it('should enable setting form when get settingDisable as false ', () => {
+ spyOn(component.settingForm, 'enable');
+
+ component.settingsDisable = false;
+
+ expect(component.settingForm.enable).toHaveBeenCalled();
+ });
+
+ it('should disable "Save" button when get settingDisable as true', () => {
+ component.settingsDisable = true;
+
+ const saveBtn = compiled.querySelector(
+ '.save-button'
+ ) as HTMLButtonElement;
+
+ expect(saveBtn.disabled).toBeTrue();
+ });
+
+ it('should disable "Refresh" link when settingDisable', () => {
+ component.settingsDisable = true;
+
+ const refreshLink = compiled.querySelector(
+ '.message-link'
+ ) as HTMLAnchorElement;
+
+ refreshLink.click();
+
+ expect(refreshLink.hasAttribute('aria-disabled')).toBeTrue();
+ expect(mockLoaderService.setLoading).not.toHaveBeenCalled();
+ });
+ });
+
describe('#closeSetting', () => {
beforeEach(() => {
component.ngOnInit();
@@ -152,32 +193,6 @@ describe('GeneralSettingsComponent', () => {
expect(mockSettingsStore.setDefaultFormValues).toHaveBeenCalled();
});
-
- it('should disable setting form when get settingDisable as true ', () => {
- spyOn(component.settingForm, 'disable');
-
- component.settingsDisable = true;
-
- expect(component.settingForm.disable).toHaveBeenCalled();
- });
-
- it('should enable setting form when get settingDisable as false ', () => {
- spyOn(component.settingForm, 'enable');
-
- component.settingsDisable = false;
-
- expect(component.settingForm.enable).toHaveBeenCalled();
- });
-
- it('should disable "Save" button when get settingDisable as true', () => {
- component.settingsDisable = true;
-
- const saveBtn = compiled.querySelector(
- '.save-button'
- ) as HTMLButtonElement;
-
- expect(saveBtn.disabled).toBeTrue();
- });
});
describe('#saveSetting', () => {
diff --git a/modules/ui/src/app/pages/settings/general-settings.component.ts b/modules/ui/src/app/pages/settings/general-settings.component.ts
index 5ef2b4fc2..c0e957ded 100644
--- a/modules/ui/src/app/pages/settings/general-settings.component.ts
+++ b/modules/ui/src/app/pages/settings/general-settings.component.ts
@@ -15,11 +15,13 @@
*/
import {
Component,
+ ElementRef,
EventEmitter,
Input,
OnDestroy,
OnInit,
Output,
+ ViewChild,
} from '@angular/core';
import { FormBuilder, FormControl, FormGroup } from '@angular/forms';
import { Subject, takeUntil, tap } from 'rxjs';
@@ -39,6 +41,7 @@ import { LoaderService } from '../../services/loader.service';
providers: [SettingsStore],
})
export class GeneralSettingsComponent implements OnInit, OnDestroy {
+ @ViewChild('reloadSettingLink') public reloadSettingLink!: ElementRef;
@Output() closeSettingEvent = new EventEmitter();
private isSettingsDisable = false;
@@ -98,6 +101,9 @@ export class GeneralSettingsComponent implements OnInit, OnDestroy {
}
reloadSetting(): void {
+ if (this.settingsDisable) {
+ return;
+ }
this.showLoading();
this.getSystemInterfaces();
this.settingsStore.getSystemConfig();
@@ -122,11 +128,13 @@ export class GeneralSettingsComponent implements OnInit, OnDestroy {
}
private disableSettings(): void {
- this.settingForm.disable();
+ this.settingForm?.disable();
+ this.reloadSettingLink?.nativeElement.setAttribute('aria-disabled', 'true');
}
private enableSettings(): void {
- this.settingForm.enable();
+ this.settingForm?.enable();
+ this.reloadSettingLink?.nativeElement.removeAttribute('aria-disabled');
}
private createSettingForm() {