Browse Source

UI: Refactoring

pull/9825/head
Artem Dzhereleiko 3 years ago
parent
commit
e9a9d93b0b
  1. 30
      ui-ngx/src/app/modules/home/pages/notification/settings/notification-settings.component.ts

30
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<AbstractControl> = [];
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];
});
}

Loading…
Cancel
Save