diff --git a/ui-ngx/src/app/modules/home/pages/notification/settings/notification-settings.component.ts b/ui-ngx/src/app/modules/home/pages/notification/settings/notification-settings.component.ts index fc5590039e..52a09ad3b5 100644 --- a/ui-ngx/src/app/modules/home/pages/notification/settings/notification-settings.component.ts +++ b/ui-ngx/src/app/modules/home/pages/notification/settings/notification-settings.component.ts @@ -74,23 +74,10 @@ export class NotificationSettingsComponent extends PageComponent implements OnIn private patchNotificationSettings(settings: NotificationUserSettings) { const notificationSettingsControls: Array = []; - let preparedSettings; if (settings.prefs) { - preparedSettings = this.prepareNotificationSettings(settings.prefs); - preparedSettings.forEach((setting) => { - if (!setting.enabled && Object.values(setting.enabledDeliveryMethods).some(deliveryMethod => deliveryMethod === true)) { - const enabledDeliveryMethod = deepClone(setting.enabledDeliveryMethods); - Object.keys(enabledDeliveryMethod).forEach(key => { - enabledDeliveryMethod[key] = false; - }); - setting.enabledDeliveryMethods = enabledDeliveryMethod; - } - setting.enabledDeliveryMethods = Object.assign( - this.notificationDeliveryMethods.reduce((a, v) => ({ ...a, [v]: true}), {}), - setting.enabledDeliveryMethods - ); - notificationSettingsControls.push(this.fb.control(setting, [Validators.required])); - }); + this.prepareNotificationSettings(settings.prefs).forEach(setting => + notificationSettingsControls.push(this.fb.control(setting, [Validators.required])) + ); } this.notificationSettings.setControl('prefs', this.fb.array(notificationSettingsControls), {emitEvent: false}); } @@ -98,6 +85,17 @@ export class NotificationSettingsComponent extends PageComponent implements OnIn private prepareNotificationSettings(prefs: any) { return Object.entries(prefs).map((value: any) => { value[1].name = value[0]; + if (!value[1].enabled && Object.values(value[1].enabledDeliveryMethods).some(deliveryMethod => deliveryMethod === true)) { + const enabledDeliveryMethod = deepClone(value[1].enabledDeliveryMethods); + Object.keys(enabledDeliveryMethod).forEach(key => { + enabledDeliveryMethod[key] = false; + }); + value[1].enabledDeliveryMethods = enabledDeliveryMethod; + } + value[1].enabledDeliveryMethods = Object.assign( + this.notificationDeliveryMethods.reduce((a, v) => ({ ...a, [v]: true}), {}), + value[1].enabledDeliveryMethods + ); return value[1]; }); }