Merge branch 'DEVELOP_FE' of ssh://172.18.22.160:29418/oK/PlannedGridMeasures/Frontend into DEVELOP_FE
diff --git a/src/app/model/grid-measure.ts b/src/app/model/grid-measure.ts
index 76d5596..ef10507 100644
--- a/src/app/model/grid-measure.ts
+++ b/src/app/model/grid-measure.ts
@@ -27,8 +27,8 @@
     statusId?: number;
     switchingObject?: string;
     costCenter?: string;
-    responsibleOnSiteName?: string; // TODO: gehört hier nicht rein, ist ein Attribut der SGM
-    responsibleOnSiteDepartment?: string; // TODO: gehört hier nicht rein, ist ein Attribut der SGM
+    // responsibleOnSiteName?: string; // TODO: gehört hier nicht rein, ist ein Attribut der SGM
+    // responsibleOnSiteDepartment?: string; // TODO: gehört hier nicht rein, ist ein Attribut der SGM
     approvalBy?: string;
     areaOfSwitching?: string;
     appointmentRepetition?: string;
@@ -51,6 +51,6 @@
     listEmailDistribution?: Array<EmailDistributionEntry>;
     listEmailDistributionDeleted?: Array<EmailDistributionEntry>;
     selected?: boolean;
-    _isValide ?= true;
-    _isHeaderValide ?= true;
+    _isValide?= true;
+    _isHeaderValide?= true;
 }
diff --git a/src/app/model/single-grid-measure.ts b/src/app/model/single-grid-measure.ts
index 854f2bd..9027ed4 100644
--- a/src/app/model/single-grid-measure.ts
+++ b/src/app/model/single-grid-measure.ts
@@ -22,12 +22,11 @@
     plannedEndtimeSinglemeasure?: string;
     description?: string;
     gridmeasureId?: number;
-    _isValide ?= true;
+    _isValide?= true;
     delete?: boolean;
     listSteps?: Array<Step>;
     listStepsDeleted?: Array<Step>;
-    // TODO: ist ein Attribut der SGM und so wird es Ina auch im backend implementieren
-    // responsibleOnSiteName?: string;
-    // responsibleOnSiteDepartment?: string;
-    NetworkControls?: string;
+    responsibleOnSiteName?: string;
+    responsibleOnSiteDepartment?: string;
+    networkControl?: string;
 }
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 948d81b..baaf0d2 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
@@ -71,11 +71,11 @@
         </div>
         <div class="col-md-4">
           <label class="form-field-label" for="createUserDepartment">Abteilung Ersteller</label>
-          <select [required]="true" type="text" name="createUserDepartment" id="createUserDepartment" [(ngModel)]="gridMeasureDetail.createUserDepartment"
-            class="form-control">
-            <option value=""></option>
-            <option *ngFor="let department of departmentList" value="{{ department.id }}">{{ department.name }}</option>
-          </select>
+          <input maxlength="256" [required]="true" type="text" list="departmentList" name="createUserDepartment" id="createUserDepartment"
+            [(ngModel)]="gridMeasureDetail.createUserDepartment" class="form-control" autocomplete="off" />
+          <datalist id="departmentList">
+            <option *ngFor="let department of departmentList">{{ department.name }}</option>
+          </datalist>
         </div>
         <div class="col-md-4">
           <label class="form-field-label" for="costCenter">Kostenstelle</label>
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 cc12ad4..41a3f55 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
@@ -20,6 +20,7 @@
 import { Branch } from '../../model/branch';
 import { BranchLevel } from '../../model/branch-level';
 import { BaseDataService } from '../../services/base-data.service';
+import { UserDepartment } from '../../model/user-department';
 
 @Component({
   selector: 'app-grid-measure-detail-header',
@@ -42,7 +43,7 @@
   brancheList: Branch[];
   branchLevelList: Array<BranchLevel> = [];
   areaOfSwitchingList: string[];
-  departmentList: any;
+  departmentList: UserDepartment[];
   costCenters: any;
   isBranchLevelActive: boolean;
   constructor(public sessionContext: SessionContext,
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 4b3faa1..02dd6cf 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
@@ -58,7 +58,6 @@
   startDate: Date;
   switchingObjectList: string[];
   areaOfSwitchingList: string[];
-  responsibleOnSiteDepartmentList: string[];
   responsibleOnSiteNameList: string[];
   levelList: any[];
   validForSave: boolean;
diff --git a/src/app/pages/single-grid-measure-detail-tab/single-grid-measure-detail-tab.component.html b/src/app/pages/single-grid-measure-detail-tab/single-grid-measure-detail-tab.component.html
index 77c007d..a0f9bd8 100644
--- a/src/app/pages/single-grid-measure-detail-tab/single-grid-measure-detail-tab.component.html
+++ b/src/app/pages/single-grid-measure-detail-tab/single-grid-measure-detail-tab.component.html
@@ -17,9 +17,11 @@
       </h4>
       <div class="row actions">
         <div class="col-lg-12">
-          <button class="btn btn-primary pull-right" id="createInvertedStep" (click)="duplicateSingleGM()" [disabled]="isSingleGridmeasureLimitReached()">Rückschaltung planen
+          <button class="btn btn-primary pull-right" id="createInvertedStep" (click)="duplicateSingleGM()" [disabled]="isSingleGridmeasureLimitReached()">Rückschaltung
+            planen
           </button>
-          <button class="btn btn-danger pull-left" id="deleteSingleGridMeasureBtn" (click)="onDeleteBtnClick()" [disabled]="isLastSingleGridmeasure()">Einzelmaßnahme löschen
+          <button class="btn btn-danger pull-left" id="deleteSingleGridMeasureBtn" (click)="onDeleteBtnClick()" [disabled]="isLastSingleGridmeasure()">Einzelmaßnahme
+            löschen
             <span class="glyphicon glyphicon-trash" id="deleteSingleGridMeasureBtnIcon"></span>
           </button>
         </div>
@@ -81,7 +83,7 @@
         <div class="col-md-4">
           <label class="form-field-label" for="responsibleOnSiteName">Verantwortlich Vor-Ort</label>
           <input maxlength="256" [required]="true" type="text" list="responsibleOnSiteNameList" name="responsibleOnSiteName" id="responsibleOnSiteName"
-            [(ngModel)]="gridMeasureDetail.responsibleOnSiteName" class="form-control" autocomplete="off" />
+            [(ngModel)]="singleGridMeasure.responsibleOnSiteName" class="form-control" autocomplete="off" />
           <datalist id="responsibleOnSiteNameList">
             <option value=""></option>
             <option *ngFor="let responsibleOnSiteNameString of responsibleOnSiteNameList" value="{{ responsibleOnSiteNameString }}">{{responsibleOnSiteNameString}}</option>
@@ -91,19 +93,18 @@
         <div class="col-md-4">
           <label class="form-field-label" for="responsibleOnSiteDepartment">Abteilung Verantwortlicher Vor-Ort</label>
           <input maxlength="256" [required]="false" type="text" list="responsibleOnSiteDepartmentList" name="responsibleOnSiteDepartment"
-            id="responsibleOnSiteDepartment" [(ngModel)]="gridMeasureDetail.responsibleOnSiteDepartment" class="form-control"
+            id="responsibleOnSiteDepartment" [(ngModel)]="singleGridMeasure.responsibleOnSiteDepartment" class="form-control"
             autocomplete="off" />
           <datalist id="responsibleOnSiteDepartmentList">
-            <option *ngFor="let responsibleOnSiteDepartmentString of responsibleOnSiteDepartmentList">{{responsibleOnSiteDepartmentString}}</option>
+            <option *ngFor="let department of responsibleOnSiteDepartmentList">{{ department.name }}</option>
           </datalist>
         </div>
         <div class="col-md-4">
-          <label class="form-field-label" for="NetworkControls">Netzführung / Netzservice / Genehmiger</label>
-          <input maxlength="256" [required]="false" type="text" list="NetworkControlsList" name="NetworkControls" id="NetworkControls"
-            [(ngModel)]="singleGridMeasure.NetworkControls" class="form-control" autocomplete="off" />
-          <datalist id="NetworkControlsList">
-            <option value=""></option>
-            <option *ngFor="let NetworkControlsString of NetworkControlsList" value="{{ NetworkControlsString }}">{{getNetworkControlsString}}</option>
+          <label class="form-field-label" for="networkControl">Netzführung / Netzservice / Genehmiger</label>
+          <input maxlength="256" [required]="false" type="text" list="networkControlsList" name="networkControl" id="networkControl"
+            [(ngModel)]="singleGridMeasure.networkControl" class="form-control" autocomplete="off" />
+          <datalist id="networkControlsList">
+            <option *ngFor="let networkControlsString of networkControlsList">{{networkControlsString}}</option>
           </datalist>
         </div>
       </div>
diff --git a/src/app/pages/single-grid-measure-detail-tab/single-grid-measure-detail-tab.component.ts b/src/app/pages/single-grid-measure-detail-tab/single-grid-measure-detail-tab.component.ts
index 393fca0..e10d13c 100644
--- a/src/app/pages/single-grid-measure-detail-tab/single-grid-measure-detail-tab.component.ts
+++ b/src/app/pages/single-grid-measure-detail-tab/single-grid-measure-detail-tab.component.ts
@@ -27,6 +27,7 @@
 import { RoleAccessHelperService } from '../../services/jobs/role-access-helper.service';
 import { SessionContext } from '../../common/session-context';
 import { ToasterMessageService } from '../../services/toaster-message.service';
+import { UserDepartment } from '../../model/user-department';
 
 @Component({
   selector: 'app-single-grid-measure-detail-tab',
@@ -55,8 +56,8 @@
   subscription: Subscription;
   inactiveFields: Array<string> = [];
   responsibleOnSiteNameList: string[];
-  NetworkControlsList: string[];
-  responsibleOnSiteDepartmentList: string[];
+  networkControlsList: string[];
+  responsibleOnSiteDepartmentList: UserDepartment[];
 
   @ViewChild('singleGridMeasureDetailFormCotainer') singleGridMeasureDetailFormContainer: ElementRef;
   @ViewChild('singleGridForm') singleGridForm: FormGroup;
@@ -66,9 +67,9 @@
     private toasterMessageService: ToasterMessageService) { }
 
   ngOnInit() {
-    this.NetworkControlsList = this.sessionContext.getNetworkControlsFromSingleGridmeasures();
+    this.networkControlsList = this.sessionContext.getNetworkControlsFromSingleGridmeasures();
     this.responsibleOnSiteNameList = this.sessionContext.getResponsiblesOnSiteFromGridmeasures();
-    this.responsibleOnSiteDepartmentList = ['Abteilung1', 'Abteilung2'];
+    this.responsibleOnSiteDepartmentList = this.sessionContext.getAllUserDepartments();
 
     this.inactiveFields = this.sessionContext.getInactiveFields();
     this.getRessourceTypes();
diff --git a/src/app/services/base-data.service.ts b/src/app/services/base-data.service.ts
index 1ffc7be..61491fa 100644
--- a/src/app/services/base-data.service.ts
+++ b/src/app/services/base-data.service.ts
@@ -34,7 +34,7 @@
 
   public getNetworkControlsFromSingleGridmeasures(): Observable<string[]> {
     return this.baseHttpService.callService(
-      new HttpCallInfo(Globals.GRID_MEASURES_SERVICE_NAME, HttpMethodEn.get, '/getNetworkControlsFromSingelGridmeasures', null),
+      new HttpCallInfo(Globals.GRID_MEASURES_SERVICE_NAME, HttpMethodEn.get, '/getNetworkControlsFromSingleGridmeasures', null),
       this.sessionContext);
   }
 
diff --git a/src/app/test-data/grid-measures.ts b/src/app/test-data/grid-measures.ts
index 114fcf3..ed79f4e 100644
--- a/src/app/test-data/grid-measures.ts
+++ b/src/app/test-data/grid-measures.ts
@@ -28,7 +28,6 @@
         createUserDepartment: 'Abteilung A',
         statusId: 1,
         costCenter: 'Kostenstelle',
-        responsibleOnSiteName: 'Verantwortlich Vor-Ort',
         approvalBy: 'Freigabe durch',
         areaOfSwitching: 'Gebiet (Region) der Schaltung',
         appointmentRepetition: 'Terminwiederholung täglich',
@@ -38,17 +37,21 @@
         modUserDepartment: 'Meisterabteilung',
         description: 'BeschreibungText',
         listSingleGridmeasures: [
-            { id: 3, title: 'title 1', sortorder: 11, gridmeasureId: 1111, listSteps: [
-                { id: 1, sortorder: 1, switchingObject: 'Schalter 1', targetState: 'aus', singleGridmeasureId: 3, delete: false },
-                { id: 2, sortorder: 2, switchingObject: 'Schalter 2', targetState: 'aus', singleGridmeasureId: 3, delete: false },
-                { id: 3, sortorder: 3, switchingObject: 'Schalter 3', targetState: 'aus', singleGridmeasureId: 3, delete: false }
-            ]},
-            { id: 5, title: 'title 2', sortorder: 35, gridmeasureId: 1111, listSteps: [
-                { id: 4, sortorder: 1, switchingObject: 'Schalter 42', targetState: 'aus', singleGridmeasureId: 5, delete: false },
-                { id: 5, sortorder: 2, switchingObject: 'Schalter 43', targetState: 'aus', singleGridmeasureId: 5, delete: false },
-                { id: 6, sortorder: 3, switchingObject: 'Schalter 44', targetState: 'aus', singleGridmeasureId: 5, delete: false },
-                { id: 7, sortorder: 4, switchingObject: 'Schalter 45', targetState: 'aus', singleGridmeasureId: 5, delete: false }
-            ]}
+            {
+                id: 3, title: 'title 1', sortorder: 11, gridmeasureId: 1111, listSteps: [
+                    { id: 1, sortorder: 1, switchingObject: 'Schalter 1', targetState: 'aus', singleGridmeasureId: 3, delete: false },
+                    { id: 2, sortorder: 2, switchingObject: 'Schalter 2', targetState: 'aus', singleGridmeasureId: 3, delete: false },
+                    { id: 3, sortorder: 3, switchingObject: 'Schalter 3', targetState: 'aus', singleGridmeasureId: 3, delete: false }
+                ]
+            },
+            {
+                id: 5, title: 'title 2', sortorder: 35, gridmeasureId: 1111, listSteps: [
+                    { id: 4, sortorder: 1, switchingObject: 'Schalter 42', targetState: 'aus', singleGridmeasureId: 5, delete: false },
+                    { id: 5, sortorder: 2, switchingObject: 'Schalter 43', targetState: 'aus', singleGridmeasureId: 5, delete: false },
+                    { id: 6, sortorder: 3, switchingObject: 'Schalter 44', targetState: 'aus', singleGridmeasureId: 5, delete: false },
+                    { id: 7, sortorder: 4, switchingObject: 'Schalter 45', targetState: 'aus', singleGridmeasureId: 5, delete: false }
+                ]
+            }
         ],
         emailAddresses: 'test@test.de;test2@test.de',
         listEmailDistribution: [
@@ -104,7 +107,6 @@
         createUserDepartment: 'Wasser',
         statusId: 1,
         costCenter: 'Kostenstelle',
-        responsibleOnSiteName: 'Verantwortlich Vor-Ort',
         approvalBy: 'Freigabe durch',
         areaOfSwitching: 'Gebiet (Region) der Schaltung',
         appointmentRepetition: 'Terminwiederholung täglich',