UI: Fixed incorrect updated allow delivery method disable state

This commit is contained in:
Vladyslav Prykhodko 2023-05-02 20:18:15 +03:00
parent cbaaee657a
commit 64ed2646cc

View File

@ -16,7 +16,6 @@
import {
NotificationDeliveryMethod,
NotificationDeliveryMethodTranslateMap,
NotificationRequest,
NotificationRequestPreview,
NotificationTarget,
@ -81,6 +80,8 @@ export class SentNotificationDialogComponent extends
private authUser: AuthUser = getCurrentAuthUser(this.store);
private allowNotificationDeliveryMethods: Array<NotificationDeliveryMethod>;
constructor(protected store: Store<AppState>,
protected router: Router,
protected dialogRef: MatDialogRef<SentNotificationDialogComponent, NotificationRequest>,
@ -127,6 +128,7 @@ export class SentNotificationDialogComponent extends
} else {
this.notificationRequestForm.get('templateId').disable({emitEvent: false});
this.notificationRequestForm.get('template').enable({emitEvent: false});
this.updateDeliveryMethodsDisableState();
}
});
@ -334,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
}
});
}
}