UI: Refactoring
This commit is contained in:
parent
68359d2fc6
commit
e9a9d93b0b
@ -74,23 +74,10 @@ export class NotificationSettingsComponent extends PageComponent implements OnIn
|
|||||||
|
|
||||||
private patchNotificationSettings(settings: NotificationUserSettings) {
|
private patchNotificationSettings(settings: NotificationUserSettings) {
|
||||||
const notificationSettingsControls: Array<AbstractControl> = [];
|
const notificationSettingsControls: Array<AbstractControl> = [];
|
||||||
let preparedSettings;
|
|
||||||
if (settings.prefs) {
|
if (settings.prefs) {
|
||||||
preparedSettings = this.prepareNotificationSettings(settings.prefs);
|
this.prepareNotificationSettings(settings.prefs).forEach(setting =>
|
||||||
preparedSettings.forEach((setting) => {
|
notificationSettingsControls.push(this.fb.control(setting, [Validators.required]))
|
||||||
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.notificationSettings.setControl('prefs', this.fb.array(notificationSettingsControls), {emitEvent: false});
|
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) {
|
private prepareNotificationSettings(prefs: any) {
|
||||||
return Object.entries(prefs).map((value: any) => {
|
return Object.entries(prefs).map((value: any) => {
|
||||||
value[1].name = value[0];
|
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];
|
return value[1];
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user