[SI-745 - SI-2525/SI-2533] bugfixes

Signed-off-by: Peter Buschmann <peter.buschmann@pta.de>
diff --git a/i18n/general.de.json b/i18n/general.de.json
index dd0753c..3c87613 100644
--- a/i18n/general.de.json
+++ b/i18n/general.de.json
@@ -56,5 +56,6 @@
   "SelectedDistributionGroupAlreadyAssigned": "Die ausgewählte Verteilergruppe ist der Störinfo bereits zugeordnet.",
   "SelectedStationAlreadyAssigned": "Die ausgewählte Station ist der Störungsmeldung bereits zugeordnet.",
   "PostcodeNotNumber": "Bitte geben Sie eine Postleitzahl bestehend aus genau fünf Ziffern ein.",
-  "PostcodeAlreadyAssigned": "Diese Postleitzahl ist bereits zugeordnet"
+  "PostcodeAlreadyAssigned": "Diese Postleitzahl ist bereits zugeordnet.",
+  "NoPostcodeSelected": "Es wurde keine Postleitzahl eingegeben."
 }
diff --git a/projects/grid-failure-information-app/src/app/pages/distribution-group/distribution-group-member-postcodes/distribution-group-member-postcodes.component.spec.ts b/projects/grid-failure-information-app/src/app/pages/distribution-group/distribution-group-member-postcodes/distribution-group-member-postcodes.component.spec.ts
index 7e73899..a8ac196 100644
--- a/projects/grid-failure-information-app/src/app/pages/distribution-group/distribution-group-member-postcodes/distribution-group-member-postcodes.component.spec.ts
+++ b/projects/grid-failure-information-app/src/app/pages/distribution-group/distribution-group-member-postcodes/distribution-group-member-postcodes.component.spec.ts
@@ -14,15 +14,18 @@
 import { DistributionGroupMemberPostcodesComponent } from '@grid-failure-information-app/app/pages/distribution-group/distribution-group-member-postcodes/distribution-group-member-postcodes.component';
 import { DistributionGroupMember } from '@grid-failure-information-app/shared/models';
 import { Subscription } from 'rxjs';
+import { UtilService } from '@grid-failure-information-app/shared/utility/utility.service';
 
 describe('DistributionGroupMemberPostcodesComponent', () => {
   let component: DistributionGroupMemberPostcodesComponent;
   let sandbox: DistributionGroupSandbox;
+  let utilService: UtilService;
   interface PostcodeInterface {
     postcode: string;
   }
 
   beforeEach(() => {
+    utilService = { displayNotification() {} } as any;
     sandbox = {
       getSelectedDistributionGroupMember() {
         return new DistributionGroupMember();
@@ -30,8 +33,9 @@
       displayPostcodeNotNumberNotification() {},
       updateDistributionGroupMember() {},
       deletePostcode() {},
+      addPostcode() {},
     } as any;
-    component = new DistributionGroupMemberPostcodesComponent(sandbox);
+    component = new DistributionGroupMemberPostcodesComponent(sandbox, utilService);
   });
 
   it('should create', () => {
@@ -45,6 +49,20 @@
     expect(spy).toHaveBeenCalled();
   });
 
+  it('should not call deletePostcode method for other than delete event', () => {
+    const spy: any = spyOn(sandbox as any, 'deletePostcode');
+    component.ngOnInit();
+    component.gridOptions.context.eventSubject.next({ type: 'test', data: new DistributionGroupMember() });
+    expect(spy).not.toHaveBeenCalled();
+  });
+
+  it('should call appropriate function for updating meber with new postcode when called with numeric input', () => {
+    const spy: any = spyOn(sandbox, 'addPostcode');
+    const input = '07744';
+    component.assignPostcode(input);
+    expect(spy).toHaveBeenCalled();
+  });
+
   it('should call appropriate function for updating meber with new postcode when called with non-numeric input', () => {
     const spy: any = spyOn(sandbox, 'displayPostcodeNotNumberNotification');
     const input = '0774A';
@@ -52,6 +70,13 @@
     expect(spy).toHaveBeenCalled();
   });
 
+  it('should display Notification if no postcode input is provided', () => {
+    const spy: any = spyOn(component['_utilService'], 'displayNotification');
+    const input = null;
+    component.assignPostcode(input);
+    expect(spy).toHaveBeenCalled();
+  });
+
   it('should clear postcode input', () => {
     component.postcodeInput = { nativeElement: { value: 'x' } };
     component.clearPostcodeInput();
diff --git a/projects/grid-failure-information-app/src/app/pages/distribution-group/distribution-group-member-postcodes/distribution-group-member-postcodes.component.ts b/projects/grid-failure-information-app/src/app/pages/distribution-group/distribution-group-member-postcodes/distribution-group-member-postcodes.component.ts
index 7e98b0b..59af493 100644
--- a/projects/grid-failure-information-app/src/app/pages/distribution-group/distribution-group-member-postcodes/distribution-group-member-postcodes.component.ts
+++ b/projects/grid-failure-information-app/src/app/pages/distribution-group/distribution-group-member-postcodes/distribution-group-member-postcodes.component.ts
@@ -16,7 +16,7 @@
 import { Subscription } from 'rxjs';
 import { DISTRIBUTION_GROUP_MEMBER_POSTCODES_COLDEF } from '@grid-failure-information-app/app/pages/distribution-group/distribution-group-member-postcodes/distribution-group-member-postcodes-col-def';
 import { SetFilterComponent } from '@grid-failure-information-app/shared/filters/ag-grid/set-filter/set-filter.component';
-import { DIGITS_REGEXP } from '@grid-failure-information-app/shared/constants/regex.constants';
+import { UtilService } from '@grid-failure-information-app/shared/utility/utility.service';
 
 @Component({
   selector: 'app-distribution-group-member-postcodes',
@@ -30,7 +30,7 @@
 
   private _subscription: Subscription;
 
-  constructor(public sandbox: DistributionGroupSandbox) {
+  constructor(public sandbox: DistributionGroupSandbox, private _utilService: UtilService) {
     super();
     this.frameworkComponents = { setFilterComponent: SetFilterComponent };
   }
@@ -56,6 +56,8 @@
       } else {
         this.sandbox.displayPostcodeNotNumberNotification();
       }
+    } else {
+      this._utilService.displayNotification('NoPostcodeSelected');
     }
   }
 
diff --git a/projects/grid-failure-information-app/src/app/pages/distribution-group/distribution-group.sandbox.ts b/projects/grid-failure-information-app/src/app/pages/distribution-group/distribution-group.sandbox.ts
index f8496bd..8da9df9 100644
--- a/projects/grid-failure-information-app/src/app/pages/distribution-group/distribution-group.sandbox.ts
+++ b/projects/grid-failure-information-app/src/app/pages/distribution-group/distribution-group.sandbox.ts
@@ -70,6 +70,7 @@
     this._clear();
     this.appState$.dispatch(new MarkAsTouchedAction(distributionGroupFormReducer.FORM_ID));
     this.selectedTemplate = DistributionPublicationStatusEnum.PUBLISH;
+    this.oldSelectedTemplate = DistributionPublicationStatusEnum.PUBLISH;
     this.appState$.select(store.getInitialEmailContent).subscribe((initialEmailContent: InitialEmailContent) => {
       this.appState$.dispatch(new SetValueAction(INITIAL_STATE.controls.emailSubjectView.id, initialEmailContent.emailSubjectPublishInit));
       this.appState$.dispatch(new SetValueAction(INITIAL_STATE.controls.emailSubjectPublish.id, initialEmailContent.emailSubjectPublishInit));
@@ -309,7 +310,7 @@
     this.disableMemberButton = false;
   }
 
-  public changeEmailTemplate(templateValue: string, oldTemplateValue: string) {
+  public changeEmailTemplate(templateValue: string, oldTemplateValue: string = DistributionPublicationStatusEnum.PUBLISH) {
     let emailsubject: string;
     let distributionText: string;
     let emailsubjectOld: string = this.currentFormState.value.emailSubjectView;