Skip to content

Commit b16cec6

Browse files
committed
119602: Add automatic notification hiding toggle
1 parent dc8a699 commit b16cec6

5 files changed

Lines changed: 30 additions & 4 deletions

File tree

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ export enum AccessibilitySetting {
3333
export type AccessibilitySettings = { [key in AccessibilitySetting]?: string };
3434

3535
export interface AccessibilitySettingsFormValues {
36+
disableNotificationTimeOut: boolean,
3637
notificationTimeOut: string,
3738
liveRegionTimeOut: string,
3839
}
@@ -231,7 +232,8 @@ export class AccessibilitySettingsService {
231232
*/
232233
convertFormValuesToStoredValues(settings: AccessibilitySettingsFormValues): AccessibilitySettings {
233234
return {
234-
'notificationTimeOut': secondsToMilliseconds(settings.notificationTimeOut),
235+
'notificationTimeOut': settings.disableNotificationTimeOut ? '0'
236+
: secondsToMilliseconds(settings.notificationTimeOut),
235237
'liveRegionTimeOut': secondsToMilliseconds(settings.liveRegionTimeOut),
236238
};
237239
}
@@ -241,6 +243,7 @@ export class AccessibilitySettingsService {
241243
*/
242244
convertStoredValuesToFormValues(settings: AccessibilitySettings): AccessibilitySettingsFormValues {
243245
return {
246+
disableNotificationTimeOut: parseFloat(settings.notificationTimeOut) === 0,
244247
notificationTimeOut: millisecondsToSeconds(settings.notificationTimeOut),
245248
liveRegionTimeOut: millisecondsToSeconds(settings.liveRegionTimeOut),
246249
};

src/app/info/accessibility-settings/accessibility-settings.component.html

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,23 @@
22
<h2>{{ 'info.accessibility-settings.title' | translate }}</h2>
33

44
<form>
5+
<div class="form-group row">
6+
<label [for]="'disableNotificationTimeOutInput'" class="col-sm-2 col-form-label">
7+
{{ 'info.accessibility-settings.disableNotificationTimeOut.label' | translate }}
8+
</label>
9+
10+
<div class="col-sm-10">
11+
<ui-switch [id]="'disableNotificationTimeOutInput'"
12+
[(ngModel)]="formValues.disableNotificationTimeOut"
13+
[ngModelOptions]="{ standalone: true }"
14+
></ui-switch>
15+
16+
<small [id]="'disableNotificationTimeOutHint'" class="form-text text-muted">
17+
{{ 'info.accessibility-settings.disableNotificationTimeOut.hint' | translate }}
18+
</small>
19+
</div>
20+
</div>
21+
522
<div class="form-group row">
623
<label [for]="'notificationTimeOutInput'" class="col-sm-2 col-form-label">
724
{{ 'info.accessibility-settings.notificationTimeOut.label' | translate }}
@@ -10,6 +27,7 @@ <h2>{{ 'info.accessibility-settings.title' | translate }}</h2>
1027
<div class="col-sm-10">
1128
<input [type]="'number'" [id]="'notificationTimeOutInput'" class="form-control"
1229
[placeholder]="getPlaceholder(AccessibilitySetting.NotificationTimeOut)"
30+
[readOnly]="formValues.disableNotificationTimeOut"
1331
[(ngModel)]="formValues.notificationTimeOut" [ngModelOptions]="{ standalone: true }"
1432
[attr.aria-describedby]="'notificationTimeOutHint'">
1533

src/app/info/accessibility-settings/accessibility-settings.component.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,8 @@ export class AccessibilitySettingsComponent implements OnInit {
4444
const convertedValues = this.settingsService.convertFormValuesToStoredValues(formValues);
4545
this.settingsService.setSettings(convertedValues).pipe(take(1)).subscribe(location => {
4646
this.notificationsService.success(null, this.translateService.instant('info.accessibility-settings.save-notification.' + location));
47+
this.updateFormValues();
4748
});
48-
49-
this.updateFormValues();
5049
}
5150

5251
/**

src/app/info/info.module.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import { ThemedFeedbackFormComponent } from './feedback/feedback-form/themed-fee
1414
import { ThemedFeedbackComponent } from './feedback/themed-feedback.component';
1515
import { FeedbackGuard } from '../core/feedback/feedback.guard';
1616
import { AccessibilitySettingsComponent } from './accessibility-settings/accessibility-settings.component';
17+
import { UiSwitchModule } from 'ngx-ui-switch';
1718

1819

1920
const DECLARATIONS = [
@@ -35,6 +36,7 @@ const DECLARATIONS = [
3536
CommonModule,
3637
SharedModule,
3738
InfoRoutingModule,
39+
UiSwitchModule,
3840
],
3941
declarations: [
4042
...DECLARATIONS

src/assets/i18n/en.json5

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1844,13 +1844,17 @@
18441844

18451845
"info.accessibility-settings.breadcrumbs": "Accessibility settings",
18461846

1847+
"info.accessibility-settings.disableNotificationTimeOut.label": "Disable automatic notification hiding",
1848+
1849+
"info.accessibility-settings.disableNotificationTimeOut.hint": "When this toggle is activated, notifications will remain until manually closed.",
1850+
18471851
"info.accessibility-settings.liveRegionTimeOut.label": "Live region time-out",
18481852

18491853
"info.accessibility-settings.liveRegionTimeOut.hint": "The duration in seconds after which a message in the live region disappears.",
18501854

18511855
"info.accessibility-settings.notificationTimeOut.label": "Notification time-out",
18521856

1853-
"info.accessibility-settings.notificationTimeOut.hint": "The duration in seconds after which a notification disappears. Set to 0 for notifications to remain indefinitely.",
1857+
"info.accessibility-settings.notificationTimeOut.hint": "The duration in seconds after which a notification disappears.",
18541858

18551859
"info.accessibility-settings.save-notification.cookie": "Successfully saved settings locally.",
18561860

0 commit comments

Comments
 (0)