mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-07 01:54:15 +00:00
Merge branch 'accessibility-settings-7.6' into accessibility-settings-7_x
This commit is contained in:
@@ -2,7 +2,7 @@ import {
|
||||
AccessibilitySettingsService,
|
||||
AccessibilitySettings,
|
||||
ACCESSIBILITY_SETTINGS_METADATA_KEY,
|
||||
ACCESSIBILITY_COOKIE
|
||||
ACCESSIBILITY_COOKIE, AccessibilitySettingsFormValues, FullAccessibilitySettings
|
||||
} from './accessibility-settings.service';
|
||||
import { CookieService } from '../core/services/cookie.service';
|
||||
import { AuthService } from '../core/auth/auth.service';
|
||||
@@ -356,4 +356,27 @@ describe('accessibilitySettingsService', () => {
|
||||
});
|
||||
});
|
||||
|
||||
describe('convertFormValuesToStoredValues', () => {
|
||||
it('should reset the notificationTimeOut when timeOut is enabled but set to "0"', () => {
|
||||
const formValues: AccessibilitySettingsFormValues = {
|
||||
notificationTimeOutEnabled: true,
|
||||
notificationTimeOut: '0',
|
||||
liveRegionTimeOut: null,
|
||||
};
|
||||
|
||||
const storedValues: FullAccessibilitySettings = service.convertFormValuesToStoredValues(formValues);
|
||||
expect('notificationTimeOut' in storedValues).toBeFalse();
|
||||
});
|
||||
});
|
||||
|
||||
it('should keep the notificationTimeOut when timeOut is enabled and differs from "0"', () => {
|
||||
const formValues: AccessibilitySettingsFormValues = {
|
||||
notificationTimeOutEnabled: true,
|
||||
notificationTimeOut: '3',
|
||||
liveRegionTimeOut: null,
|
||||
};
|
||||
|
||||
const storedValues: FullAccessibilitySettings = service.convertFormValuesToStoredValues(formValues);
|
||||
expect('notificationTimeOut' in storedValues).toBeTrue();
|
||||
});
|
||||
});
|
||||
|
@@ -249,11 +249,20 @@ export class AccessibilitySettingsService {
|
||||
* Convert values in the provided accessibility settings object to values ready to be stored.
|
||||
*/
|
||||
convertFormValuesToStoredValues(settings: AccessibilitySettingsFormValues): FullAccessibilitySettings {
|
||||
return {
|
||||
const storedValues = {
|
||||
notificationTimeOut: settings.notificationTimeOutEnabled ?
|
||||
secondsToMilliseconds(settings.notificationTimeOut) : '0',
|
||||
liveRegionTimeOut: secondsToMilliseconds(settings.liveRegionTimeOut),
|
||||
};
|
||||
|
||||
// When the user enables the timeout but does not change the timeout duration from 0,
|
||||
// it is removed from the values to be stored so the default value is used.
|
||||
// Keeping it at 0 would mean the notifications are not automatically removed.
|
||||
if (settings.notificationTimeOutEnabled && settings.notificationTimeOut === '0') {
|
||||
delete storedValues.notificationTimeOut;
|
||||
}
|
||||
|
||||
return storedValues;
|
||||
}
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user