Merge branch 'DEVELOP_FE' of ssh://172.18.22.160:29418/oK/PlannedGridMeasures/Frontend into DEVELOP_FE
diff --git a/src/app/pages/grid-measure-detail-header/grid-measure-detail-header.component.html b/src/app/pages/grid-measure-detail-header/grid-measure-detail-header.component.html
index 687e824..54de233 100644
--- a/src/app/pages/grid-measure-detail-header/grid-measure-detail-header.component.html
+++ b/src/app/pages/grid-measure-detail-header/grid-measure-detail-header.component.html
@@ -59,7 +59,7 @@
           <label class="form-field-label" for="titleControl">Titel der Maßnahme</label>
           <input maxlength="256" placeholder="Bitte Titel der Maßnahme ausfüllen" [required]="true" type="text" name="title"
             id="titleControl" [(ngModel)]="gridMeasureDetail.title" #gmTitle (keyup)="onGridMeasureTitleChange(gmTitle.value)"
-            class="form-control" />
+            (blur)="onGridMeasureTitleBlur(gmTitle.value)" class="form-control" />
         </div>
       </div>
 
diff --git a/src/app/pages/grid-measure-detail-header/grid-measure-detail-header.component.spec.ts b/src/app/pages/grid-measure-detail-header/grid-measure-detail-header.component.spec.ts
index c942e0b..9d1b6e3 100644
--- a/src/app/pages/grid-measure-detail-header/grid-measure-detail-header.component.spec.ts
+++ b/src/app/pages/grid-measure-detail-header/grid-measure-detail-header.component.spec.ts
@@ -63,7 +63,6 @@
     sessionContext.setCurrUser(USERS[0]);
     sessionContext.setAllUsers(USERS);
     component = fixture.componentInstance;
-    // component.gridMeasureDetail.branchId = null;
     fixture.detectChanges();
   });
 
@@ -73,11 +72,8 @@
 
   it('should enable save button after filling required field', () => {
     spyOn(component, 'onGridMeasureTitleChange').and.callThrough();
-
     const newVal = 'TitleTest';
     component.gridMeasureDetail.title = newVal;
-
-    // Todo call the change Event over dispatcher for Example not the method itself
     component.onGridMeasureTitleChange(newVal);
     fixture.detectChanges();
 
@@ -93,11 +89,8 @@
 
   it('should disable save button after cleaning required field', () => {
     spyOn(component, 'onGridMeasureTitleChange').and.callThrough();
-
     const newVal = '';
     component.gridMeasureDetail.title = newVal;
-
-    // Todo call the change Event over dispatcher for Example not the method itself
     component.onGridMeasureTitleChange(newVal);
     fixture.detectChanges();
 
@@ -109,6 +102,22 @@
 
   });
 
+  it('should set single grid measure title on blur if empty', () => {
+    spyOn(component, 'onGridMeasureTitleBlur').and.callThrough();
+
+    const newVal = '';
+    component.gridMeasureDetail.title = newVal;
+
+    component.onGridMeasureTitleBlur(newVal);
+    fixture.detectChanges();
+
+    fixture.whenRenderingDone().then(() => {
+      fixture.detectChanges();
+      expect(component.onGridMeasureTitleBlur).toHaveBeenCalled();
+    });
+
+  });
+
   it('should set form to readonly', () => {
     component.readOnlyForm = false;
     fixture.detectChanges();
diff --git a/src/app/pages/grid-measure-detail-header/grid-measure-detail-header.component.ts b/src/app/pages/grid-measure-detail-header/grid-measure-detail-header.component.ts
index acadea5..dee69c1 100644
--- a/src/app/pages/grid-measure-detail-header/grid-measure-detail-header.component.ts
+++ b/src/app/pages/grid-measure-detail-header/grid-measure-detail-header.component.ts
@@ -33,7 +33,7 @@
   @Input() gridMeasureDetail: GridMeasure = new GridMeasure();
   @Input() isReadOnlyForm: boolean;
   @Output() isValidForSave: EventEmitter<boolean> = new EventEmitter<boolean>();
-
+  @Output() titleChange: EventEmitter<string> = new EventEmitter<string>();
   @ViewChild('gridMeasureDetailHeaderForm') gridMeasureDetailHeaderForm: FormGroup;
   @ViewChild('gridMeasureDetailHeaderContainer') gridMeasureDetailHeaderContainer: ElementRef;
 
@@ -90,6 +90,10 @@
     }
   }
 
+  onGridMeasureTitleBlur(value) {
+    this.titleChange.emit(value);
+  }
+
   ngOnChanges(changes: SimpleChanges): void {
 
     if (changes['isReadOnlyForm']) {
diff --git a/src/app/pages/grid-measure-detail/grid-measure-detail.component.html b/src/app/pages/grid-measure-detail/grid-measure-detail.component.html
index 0239997..e8bd55c 100644
--- a/src/app/pages/grid-measure-detail/grid-measure-detail.component.html
+++ b/src/app/pages/grid-measure-detail/grid-measure-detail.component.html
@@ -34,8 +34,8 @@
     </div>
     <div id="collapse1" class="panel-collapse collapse in">
       <div class="panel-body">
-        <app-grid-measure-detail-header (isValidForSave)="this.validForSave = $event;" [isReadOnlyForm]="readOnlyForm"
-          [id]="id" [showSpinnerGrid]="showSpinner" [gridMeasureDetail]="gridMeasureDetail">
+        <app-grid-measure-detail-header (titleChange)="setSingleGridMeasureTitle()" (isValidForSave)="this.validForSave = $event;"
+          [isReadOnlyForm]="readOnlyForm" [id]="id" [showSpinnerGrid]="showSpinner" [gridMeasureDetail]="gridMeasureDetail">
         </app-grid-measure-detail-header>
       </div>
     </div>
diff --git a/src/app/pages/grid-measure-detail/grid-measure-detail.component.ts b/src/app/pages/grid-measure-detail/grid-measure-detail.component.ts
index e6f3464..ab29edc 100644
--- a/src/app/pages/grid-measure-detail/grid-measure-detail.component.ts
+++ b/src/app/pages/grid-measure-detail/grid-measure-detail.component.ts
@@ -370,7 +370,7 @@
       this.gridMeasureDetail.listSingleGridmeasures.push(singleGM);
       this.currentSingleGridMeasure = singleGM;
       Util.showSingleGridmeasureTab(singleGM.sortorder);
-      this.setSingleGridMeasureTitle(singleGM);
+      this.setSingleGridMeasureTitle();
     }
   }
 
@@ -426,12 +426,12 @@
     if (singleGridmeasure !== this.currentSingleGridMeasure) {
       this.currentSingleGridMeasure = singleGridmeasure;
     }
-    this.setSingleGridMeasureTitle(singleGridmeasure);
+    this.setSingleGridMeasureTitle();
   }
 
-  setSingleGridMeasureTitle(singleGridmeasure: SingleGridMeasure) {
-    if (!singleGridmeasure.title) {
-      singleGridmeasure.title = this.gridMeasureDetail.title;
+  setSingleGridMeasureTitle() {
+    if (!this.currentSingleGridMeasure.title) {
+      this.currentSingleGridMeasure.title = this.gridMeasureDetail.title;
     }
   }