Skip to content

Commit 37455a8

Browse files
committed
119602: Make AccessibilitySettings cookie expiration configurable
1 parent 82fd953 commit 37455a8

6 files changed

Lines changed: 30 additions & 6 deletions

File tree

config/config.example.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -394,3 +394,8 @@ liveRegion:
394394
messageTimeOutDurationMs: 30000
395395
# The visibility of the live region. Setting this to true is only useful for debugging purposes.
396396
isVisible: false
397+
398+
# Configuration for storing accessibility settings, used by the AccessibilitySettingsService
399+
accessibility:
400+
# The duration in days after which the accessibility settings cookie expires
401+
cookieExpirationDuration: 7
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import { Config } from '../../config/config.interface';
2+
3+
/**
4+
* Configuration interface used by the AccessibilitySettingsService
5+
*/
6+
export class AccessibilitySettingsConfig implements Config {
7+
/**
8+
* The duration in days after which the accessibility settings cookie expires
9+
*/
10+
cookieExpirationDuration: number;
11+
}

src/app/accessibility/accessibility-settings.service.ts

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import { EPerson } from '../core/eperson/models/eperson.model';
88
import { EPersonDataService } from '../core/eperson/eperson-data.service';
99
import { getFirstCompletedRemoteData } from '../core/shared/operators';
1010
import cloneDeep from 'lodash/cloneDeep';
11+
import { environment } from '../../environments/environment';
1112

1213
/**
1314
* Name of the cookie used to store the settings locally
@@ -19,11 +20,6 @@ export const ACCESSIBILITY_COOKIE = 'dsAccessibilityCookie';
1920
*/
2021
export const ACCESSIBILITY_SETTINGS_METADATA_KEY = 'dspace.accessibility.settings';
2122

22-
/**
23-
* The duration in days after which the accessibility settings cookie expires
24-
*/
25-
export const ACCESSIBILITY_SETTINGS_COOKIE_STORAGE_DURATION = 7;
26-
2723
/**
2824
* Enum containing all possible accessibility settings.
2925
* When adding new settings, the {@link AccessibilitySettingsService#getInputType} method and the i18n keys for the
@@ -208,7 +204,7 @@ export class AccessibilitySettingsService {
208204
*/
209205
setSettingsInCookie(settings: AccessibilitySettings) {
210206
if (isNotEmpty(settings)) {
211-
this.cookieService.set(ACCESSIBILITY_COOKIE, settings, { expires: ACCESSIBILITY_SETTINGS_COOKIE_STORAGE_DURATION });
207+
this.cookieService.set(ACCESSIBILITY_COOKIE, settings, { expires: environment.accessibility.cookieExpirationDuration });
212208
} else {
213209
this.cookieService.remove(ACCESSIBILITY_COOKIE);
214210
}

src/config/app-config.interface.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import { MarkdownConfig } from './markdown-config.interface';
2323
import { FilterVocabularyConfig } from './filter-vocabulary-config';
2424
import { DiscoverySortConfig } from './discovery-sort.config';
2525
import { LiveRegionConfig } from '../app/shared/live-region/live-region.config';
26+
import { AccessibilitySettingsConfig } from '../app/accessibility/accessibility-settings.config';
2627

2728
interface AppConfig extends Config {
2829
ui: UIServerConfig;
@@ -50,6 +51,7 @@ interface AppConfig extends Config {
5051
vocabularies: FilterVocabularyConfig[];
5152
comcolSelectionSort: DiscoverySortConfig;
5253
liveRegion: LiveRegionConfig;
54+
accessibility: AccessibilitySettingsConfig;
5355
}
5456

5557
/**

src/config/default-app-config.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import { MarkdownConfig } from './markdown-config.interface';
2323
import { FilterVocabularyConfig } from './filter-vocabulary-config';
2424
import { DiscoverySortConfig } from './discovery-sort.config';
2525
import { LiveRegionConfig } from '../app/shared/live-region/live-region.config';
26+
import { AccessibilitySettingsConfig } from '../app/accessibility/accessibility-settings.config';
2627

2728
export class DefaultAppConfig implements AppConfig {
2829
production = false;
@@ -439,4 +440,9 @@ export class DefaultAppConfig implements AppConfig {
439440
messageTimeOutDurationMs: 30000,
440441
isVisible: false,
441442
};
443+
444+
// Accessibility settings configuration, used by the AccessibilitySettingsService
445+
accessibility: AccessibilitySettingsConfig = {
446+
cookieExpirationDuration: 7,
447+
};
442448
}

src/environments/environment.test.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -319,4 +319,8 @@ export const environment: BuildConfig = {
319319
messageTimeOutDurationMs: 30000,
320320
isVisible: false,
321321
},
322+
323+
accessibility: {
324+
cookieExpirationDuration: 7,
325+
},
322326
};

0 commit comments

Comments
 (0)