diff --git a/ui-ngx/src/app/modules/home/pages/notification/sent/sent-notification-dialog.componet.ts b/ui-ngx/src/app/modules/home/pages/notification/sent/sent-notification-dialog.componet.ts index 3d8857694b..4846cd063d 100644 --- a/ui-ngx/src/app/modules/home/pages/notification/sent/sent-notification-dialog.componet.ts +++ b/ui-ngx/src/app/modules/home/pages/notification/sent/sent-notification-dialog.componet.ts @@ -16,7 +16,6 @@ import { NotificationDeliveryMethod, - NotificationDeliveryMethodTranslateMap, NotificationRequest, NotificationRequestPreview, NotificationTarget, @@ -72,9 +71,6 @@ export class SentNotificationDialogComponent extends notificationRequestForm: FormGroup; - notificationDeliveryMethods = Object.keys(NotificationDeliveryMethod) as NotificationDeliveryMethod[]; - notificationDeliveryMethodTranslateMap = NotificationDeliveryMethodTranslateMap; - selectedIndex = 0; preview: NotificationRequestPreview = null; @@ -84,6 +80,8 @@ export class SentNotificationDialogComponent extends private authUser: AuthUser = getCurrentAuthUser(this.store); + private allowNotificationDeliveryMethods: Array; + constructor(protected store: Store, protected router: Router, protected dialogRef: MatDialogRef, @@ -130,6 +128,7 @@ export class SentNotificationDialogComponent extends } else { this.notificationRequestForm.get('templateId').disable({emitEvent: false}); this.notificationRequestForm.get('template').enable({emitEvent: false}); + this.updateDeliveryMethodsDisableState(); } }); @@ -337,15 +336,20 @@ export class SentNotificationDialogComponent extends refreshAllowDeliveryMethod() { this.notificationService.getAvailableDeliveryMethods({ignoreLoading: true}).subscribe(allowMethods => { - this.notificationDeliveryMethods.forEach(method => { - if (allowMethods.includes(method)) { - this.getDeliveryMethodsTemplatesControl(method).enable({emitEvent: true}); - } else { - this.getDeliveryMethodsTemplatesControl(method).disable({emitEvent: true}); - this.getDeliveryMethodsTemplatesControl(method).setValue(false, {emitEvent: true}); //used for notify again - } - }); + this.allowNotificationDeliveryMethods = allowMethods; + this.updateDeliveryMethodsDisableState(); this.showRefresh = (this.notificationDeliveryMethods.length !== allowMethods.length); }); } + + private updateDeliveryMethodsDisableState() { + this.notificationDeliveryMethods.forEach(method => { + if (this.allowNotificationDeliveryMethods.includes(method)) { + this.getDeliveryMethodsTemplatesControl(method).enable({emitEvent: true}); + } else { + this.getDeliveryMethodsTemplatesControl(method).disable({emitEvent: true}); + this.getDeliveryMethodsTemplatesControl(method).setValue(false, {emitEvent: true}); //used for notify again + } + }); + } } diff --git a/ui-ngx/src/app/modules/home/pages/notification/template/template-configuration.ts b/ui-ngx/src/app/modules/home/pages/notification/template/template-configuration.ts index 79612a8592..e894c62631 100644 --- a/ui-ngx/src/app/modules/home/pages/notification/template/template-configuration.ts +++ b/ui-ngx/src/app/modules/home/pages/notification/template/template-configuration.ts @@ -190,7 +190,7 @@ export abstract class TemplateConfiguration extends DialogComponent< protected getNotificationTemplateValue(): NotificationTemplate { const template: NotificationTemplate = deepClone(this.templateNotificationForm.value); this.notificationDeliveryMethods.forEach(method => { - if (template.configuration.deliveryMethodsTemplates[method].enabled) { + if (template.configuration.deliveryMethodsTemplates[method]?.enabled) { Object.assign(template.configuration.deliveryMethodsTemplates[method], this.deliveryMethodFormsMap.get(method).value, {method}); } else { delete template.configuration.deliveryMethodsTemplates[method];