UI: Fixed incorrect updated allow delivery method disable state
This commit is contained in:
		
							parent
							
								
									cbaaee657a
								
							
						
					
					
						commit
						64ed2646cc
					
				@ -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
 | 
			
		||||
      }
 | 
			
		||||
    });
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user