mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-07 10:04:11 +00:00
119602: Make AccessibilitySettings cookie expiration configurable
This commit is contained in:
@@ -394,3 +394,8 @@ liveRegion:
|
||||
messageTimeOutDurationMs: 30000
|
||||
# The visibility of the live region. Setting this to true is only useful for debugging purposes.
|
||||
isVisible: false
|
||||
|
||||
# Configuration for storing accessibility settings, used by the AccessibilitySettingsService
|
||||
accessibility:
|
||||
# The duration in days after which the accessibility settings cookie expires
|
||||
cookieExpirationDuration: 7
|
||||
|
11
src/app/accessibility/accessibility-settings.config.ts
Normal file
11
src/app/accessibility/accessibility-settings.config.ts
Normal file
@@ -0,0 +1,11 @@
|
||||
import { Config } from '../../config/config.interface';
|
||||
|
||||
/**
|
||||
* Configuration interface used by the AccessibilitySettingsService
|
||||
*/
|
||||
export class AccessibilitySettingsConfig implements Config {
|
||||
/**
|
||||
* The duration in days after which the accessibility settings cookie expires
|
||||
*/
|
||||
cookieExpirationDuration: number;
|
||||
}
|
@@ -8,6 +8,7 @@ import { EPerson } from '../core/eperson/models/eperson.model';
|
||||
import { EPersonDataService } from '../core/eperson/eperson-data.service';
|
||||
import { getFirstCompletedRemoteData } from '../core/shared/operators';
|
||||
import cloneDeep from 'lodash/cloneDeep';
|
||||
import { environment } from '../../environments/environment';
|
||||
|
||||
/**
|
||||
* Name of the cookie used to store the settings locally
|
||||
@@ -19,11 +20,6 @@ export const ACCESSIBILITY_COOKIE = 'dsAccessibilityCookie';
|
||||
*/
|
||||
export const ACCESSIBILITY_SETTINGS_METADATA_KEY = 'dspace.accessibility.settings';
|
||||
|
||||
/**
|
||||
* The duration in days after which the accessibility settings cookie expires
|
||||
*/
|
||||
export const ACCESSIBILITY_SETTINGS_COOKIE_STORAGE_DURATION = 7;
|
||||
|
||||
/**
|
||||
* Enum containing all possible accessibility settings.
|
||||
* When adding new settings, the {@link AccessibilitySettingsService#getInputType} method and the i18n keys for the
|
||||
@@ -208,7 +204,7 @@ export class AccessibilitySettingsService {
|
||||
*/
|
||||
setSettingsInCookie(settings: AccessibilitySettings) {
|
||||
if (isNotEmpty(settings)) {
|
||||
this.cookieService.set(ACCESSIBILITY_COOKIE, settings, { expires: ACCESSIBILITY_SETTINGS_COOKIE_STORAGE_DURATION });
|
||||
this.cookieService.set(ACCESSIBILITY_COOKIE, settings, { expires: environment.accessibility.cookieExpirationDuration });
|
||||
} else {
|
||||
this.cookieService.remove(ACCESSIBILITY_COOKIE);
|
||||
}
|
||||
|
@@ -23,6 +23,7 @@ import { MarkdownConfig } from './markdown-config.interface';
|
||||
import { FilterVocabularyConfig } from './filter-vocabulary-config';
|
||||
import { DiscoverySortConfig } from './discovery-sort.config';
|
||||
import { LiveRegionConfig } from '../app/shared/live-region/live-region.config';
|
||||
import { AccessibilitySettingsConfig } from '../app/accessibility/accessibility-settings.config';
|
||||
|
||||
interface AppConfig extends Config {
|
||||
ui: UIServerConfig;
|
||||
@@ -50,6 +51,7 @@ interface AppConfig extends Config {
|
||||
vocabularies: FilterVocabularyConfig[];
|
||||
comcolSelectionSort: DiscoverySortConfig;
|
||||
liveRegion: LiveRegionConfig;
|
||||
accessibility: AccessibilitySettingsConfig;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -23,6 +23,7 @@ import { MarkdownConfig } from './markdown-config.interface';
|
||||
import { FilterVocabularyConfig } from './filter-vocabulary-config';
|
||||
import { DiscoverySortConfig } from './discovery-sort.config';
|
||||
import { LiveRegionConfig } from '../app/shared/live-region/live-region.config';
|
||||
import { AccessibilitySettingsConfig } from '../app/accessibility/accessibility-settings.config';
|
||||
|
||||
export class DefaultAppConfig implements AppConfig {
|
||||
production = false;
|
||||
@@ -439,4 +440,9 @@ export class DefaultAppConfig implements AppConfig {
|
||||
messageTimeOutDurationMs: 30000,
|
||||
isVisible: false,
|
||||
};
|
||||
|
||||
// Accessibility settings configuration, used by the AccessibilitySettingsService
|
||||
accessibility: AccessibilitySettingsConfig = {
|
||||
cookieExpirationDuration: 7,
|
||||
};
|
||||
}
|
||||
|
@@ -319,4 +319,8 @@ export const environment: BuildConfig = {
|
||||
messageTimeOutDurationMs: 30000,
|
||||
isVisible: false,
|
||||
},
|
||||
|
||||
accessibility: {
|
||||
cookieExpirationDuration: 7,
|
||||
},
|
||||
};
|
||||
|
Reference in New Issue
Block a user