119602: Set default value as actual value instead of placeholder

This commit is contained in:
Andreas Awouters
2025-02-17 11:41:38 +01:00
parent 80948d98f0
commit e838873235
4 changed files with 20 additions and 13 deletions

View File

@@ -36,7 +36,7 @@ export class AccessibilitySettingsServiceStub {
convertStoredValuesToFormValues = jasmine.createSpy('convertStoredValuesToFormValues').and.returnValue({}); convertStoredValuesToFormValues = jasmine.createSpy('convertStoredValuesToFormValues').and.returnValue({});
getPlaceholder = jasmine.createSpy('getPlaceholder').and.returnValue('placeholder'); getDefaultValue = jasmine.createSpy('getPlaceholder').and.returnValue('placeholder');
isValid = jasmine.createSpy('isValid').and.returnValue(true); isValid = jasmine.createSpy('isValid').and.returnValue(true);

View File

@@ -231,10 +231,10 @@ export class AccessibilitySettingsService {
} }
/** /**
* Retrieve the placeholder to be used for the provided AccessibilitySetting. * Retrieve the default value to be used for the provided AccessibilitySetting.
* Returns an empty string when no placeholder is specified for the provided setting. * Returns an empty string when no default value is specified for the provided setting.
*/ */
getPlaceholder(setting: AccessibilitySetting): string { getDefaultValue(setting: AccessibilitySetting): string {
switch (setting) { switch (setting) {
case 'notificationTimeOut': case 'notificationTimeOut':
return millisecondsToSeconds(environment.notifications.timeOut.toString()); return millisecondsToSeconds(environment.notifications.timeOut.toString());

View File

@@ -32,7 +32,6 @@
<input [type]="'number'" [id]="'notificationTimeOutInput'" class="form-control" <input [type]="'number'" [id]="'notificationTimeOutInput'" class="form-control"
[ngClass]="{'is-invalid': !settingsService.isValid('notificationTimeOut', formValues.notificationTimeOut)}" [ngClass]="{'is-invalid': !settingsService.isValid('notificationTimeOut', formValues.notificationTimeOut)}"
[min]="1" [min]="1"
[placeholder]="getPlaceholder('notificationTimeOut')"
[readOnly]="!formValues.notificationTimeOutEnabled" [readOnly]="!formValues.notificationTimeOutEnabled"
[(ngModel)]="formValues.notificationTimeOut" [ngModelOptions]="{ standalone: true }" [(ngModel)]="formValues.notificationTimeOut" [ngModelOptions]="{ standalone: true }"
[attr.aria-describedby]="'notificationTimeOutHint'"> [attr.aria-describedby]="'notificationTimeOutHint'">
@@ -60,7 +59,6 @@
<input [type]="'number'" [id]="'liveRegionTimeOutInput'" class="form-control" <input [type]="'number'" [id]="'liveRegionTimeOutInput'" class="form-control"
[ngClass]="{'is-invalid': !settingsService.isValid('liveRegionTimeOut', formValues.liveRegionTimeOut)}" [ngClass]="{'is-invalid': !settingsService.isValid('liveRegionTimeOut', formValues.liveRegionTimeOut)}"
[min]="1" [min]="1"
[placeholder]="getPlaceholder('liveRegionTimeOut')"
[(ngModel)]="formValues.liveRegionTimeOut" [ngModelOptions]="{ standalone: true }" [(ngModel)]="formValues.liveRegionTimeOut" [ngModelOptions]="{ standalone: true }"
[attr.aria-describedby]="'liveRegionTimeOutHint'"> [attr.aria-describedby]="'liveRegionTimeOutHint'">
<div class="invalid-feedback" [ngClass]="{ 'd-block': !settingsService.isValid('liveRegionTimeOut', formValues.liveRegionTimeOut) }"> <div class="invalid-feedback" [ngClass]="{ 'd-block': !settingsService.isValid('liveRegionTimeOut', formValues.liveRegionTimeOut) }">
@@ -82,7 +80,7 @@
<button type="submit" (click)="saveSettings()" class="btn btn-primary mr-2"> <button type="submit" (click)="saveSettings()" class="btn btn-primary mr-2">
{{ 'info.accessibility-settings.submit' | translate }} {{ 'info.accessibility-settings.submit' | translate }}
</button> </button>
<button type="reset" (click)="resetSettings()" class="btn btn-warning"> <button (click)="resetSettings()" class="btn btn-warning">
{{ 'info.accessibility-settings.reset' | translate }} {{ 'info.accessibility-settings.reset' | translate }}
</button> </button>
</div> </div>

View File

@@ -8,6 +8,7 @@ import {
import { take } from 'rxjs'; import { take } from 'rxjs';
import { NotificationsService } from '../../shared/notifications/notifications.service'; import { NotificationsService } from '../../shared/notifications/notifications.service';
import { TranslateService } from '@ngx-translate/core'; import { TranslateService } from '@ngx-translate/core';
import { isEmpty } from 'src/app/shared/empty.util';
/** /**
* Component providing the form where users can update accessibility settings. * Component providing the form where users can update accessibility settings.
@@ -32,10 +33,6 @@ export class AccessibilitySettingsComponent implements OnInit {
this.updateFormValues(); this.updateFormValues();
} }
getPlaceholder(setting: AccessibilitySetting): string {
return this.settingsService.getPlaceholder(setting);
}
/** /**
* Saves the user-configured settings * Saves the user-configured settings
*/ */
@@ -57,11 +54,23 @@ export class AccessibilitySettingsComponent implements OnInit {
} }
/** /**
* Updates the form values with the currently stored accessibility settings * Updates the form values with the currently stored accessibility settings and sets the default values for settings
* that have no stored value.
*/ */
updateFormValues() { updateFormValues() {
this.settingsService.getAll().pipe(take(1)).subscribe(storedSettings => { this.settingsService.getAll().pipe(take(1)).subscribe(storedSettings => {
this.formValues = this.settingsService.convertStoredValuesToFormValues(storedSettings); const formValues = this.settingsService.convertStoredValuesToFormValues(storedSettings);
const settingsRequiringDefaultValue: AccessibilitySetting[] = ['notificationTimeOut', 'liveRegionTimeOut'];
for (const setting of settingsRequiringDefaultValue) {
if (isEmpty(formValues[setting])) {
const defaultValue = this.settingsService.getDefaultValue(setting);
formValues[setting] = defaultValue;
}
}
this.formValues = formValues;
}); });
} }