SI-65 comments from review

Signed-off-by: Peter Buschmann <peter.buschmann@pta.de>
diff --git a/.gitignore b/.gitignore
index 626a2c2..26eedf6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -50,3 +50,4 @@
 /projects/grid-failure-information-app/unittests
 /projects/grid-failure-information-app/.scannerwork
 /.scannerwork
+/i18n/de.json
diff --git a/i18n/de.json b/i18n/de.json
deleted file mode 100644
index be7eade..0000000
--- a/i18n/de.json
+++ /dev/null
@@ -1,251 +0,0 @@
-{
-  "ServerError401": "Zugriff nicht erlaubt.Bitte einloggen",
-  "ServerError403": "Zugriffe verweigert. Bitte geben Sie korrekte Daten an.",
-  "ServerError404": "Nicht gefunden. Bitte kontaktieren Sie den Administrator.",
-  "ServerError409": "Die Aktion kann nicht durchgeführt werden, weil eine Abhängigkeit zu einem anderen Datensatz existiert.",
-  "ServerError500": "Ein Fehler ist aufgetreten. Bitte kontaktieren Sie den Administrator.",
-  "SuccessNotificationTitle": "Erfolg",
-  "ErrorNotificationTitle": "Fehler",
-  "InfoNotificationTitle": "Info",
-  "WarningNotificationTitle": "Warnung",
-  "SaveBtn": "Speichern",
-  "EditBtn": "Bearbeiten",
-  "NewBtn": "Neu",
-  "CancelBtn": "Abbrechen",
-  "BackBtn": "Zurück",
-  "GridEmptyLabel": "Keine Daten vorhanden!",
-  "Filtering": "Filterung",
-  "Sorting": "Sortierung",
-  "NoSorting": "Keine Sortierung",
-  "AscendingSorting": "Aufsteigend sortieren",
-  "DescendingSorting": "Absteigend sortieren",
-  "Column": "Spalte",
-  "MandatoryFieldsNotFilled": "Es ist mindestens ein Pflichtfeld nicht gefüllt.",
-  "SelectOption": "Bitte auswählen",
-  "Search": "Suchen",
-
-  "ConfirmDialog": {
-    "Title": "Bitte bestätigen Sie",
-    "Content": "Möchten Sie das Formular ohne Speichern verlassen?",
-    "Deletion": "Möchten Sie den Datensatz wirklich löschen?",
-    "SubmitBtn": "Ja",
-    "CancelBtn": "Nein",
-    "Anonymization": "Wollen Sie diesen Kontakt wirklich anonymisieren? Dieser Vorgang kann nicht rückgängig gemacht werden. Sämtliche zu diesem Kontakt gehörenden Daten werden anonymisiert. Diese Daten können nicht wiederhergestellt werden.",
-    "Action": {
-      "delete": "Datensatz löschen",
-      "edit": "Änderung verwerfen",
-      "anonymize": "Kontakt anonymisieren"
-    }
-  },
-  "Tools": "Tools",
-  "MandatoryFieldError": "Es ist mindestens ein Pflichtfeld nicht gefüllt."
-,
-  "PageNotFound": {
-    "Title": "Seite nicht gefunden",
-    "Subtitle": "Bitte zur vorherigen Seite navigieren",
-    "Button": "Zurück"
-  },
-
-  "TableFilter": {
-    "Contains": "enthält",
-    "NotContains": "enthält nicht",
-    "StartsWith": "beginnt mit",
-    "EndsWith": "endet mit",
-    "AndCondition": "UND",
-    "OrCondition": "ODER",
-    "Equals": "ist gleich",
-    "NotEqual": "ist nicht gleich"
-  },
-
-  "Pagination": {
-    "Last": ">>",
-    "First": "<<",
-    "Next": ">",
-    "Previous": "<"
-  }
-,
-  "Contacts": {
-    "Title": "Übersicht Kontakte",
-    "Name": "Name",
-    "Mail": "E-Mail",
-    "FirstName": "Vorname",
-    "LastName": "Nachname",
-    "ContactType": "Kontakttyp",
-    "Note": "Notiz",
-    "MainAddress": "Hauptadresse",
-    "Street": "Straße",
-    "Community": "Ort",
-    "CreateNewContact": "Neuen Kontakt anlegen",
-    "InternalContact": "Interner Kontakt",
-    "ExternalContact": "Externer Kontakt",
-    "Company": "Unternehmen",
-    "AddressList": "Adressliste",
-    "AllContactTypes": "Alle Kontakttypen",
-    "Department": "Abteilung",
-    "CommunicationsDataList": "Kommunikationskanäle",
-    "ContactPersonList": "Ansprechpartner",
-    "ModuleAssignment": "Modulzuordnung",
-    "AllModuleAssignments": "Alle Modulzuordnungen",
-    "WithoutModuleAssignment": "Keine Modulzuordnung",
-    "DSGVO-advanced-filter": "DSGVO - Filtererweiterung",
-    "DSGVO-advanced-filter-deletion-lock-exceeded": "Filterung nach Kontakten mit abgelaufener Löschsperre",
-    "DSGVO-advanced-filter-expiring-data-in-past": "Filterung nach Kontakten mit überschrittenem Ablaufdatum",
-    "DeleteLockExpired": "Löschsperre abgelaufen",
-    "ExpieringDateExceed": "Ablaufdatum überschritten"
-  }
-,
-  "External": {
-    "Title": "Externe Person",
-    "FirstName": "Vorname",
-    "LastName": "Name",
-    "PersonTitle": "Titel",
-    "PersonType": "Personentyp",
-    "Salutation": "Anrede",
-    "Note": "Notiz"
-  },
-  "Internal": {
-    "Title": "Interne Person",
-    "FirstName": "Vorname",
-    "LastName": "Name",
-    "PersonTitle": "Titel",
-    "PersonType": "Personentyp",
-    "Salutation": "Anrede",
-    "Note": "Notiz",
-    "Uid": "LDAP User",
-    "Userref": "Portal User",
-    "Department": "Abteilung"
-  },
-  "InternalError": {
-    "UniqueUid": "Es gibt bereits eine interne Person mit der gleichen LDAP User-ID.",
-    "UniqueUserref": "Es gibt bereits eine interne Person mit der gleichen Portal User-ID.",
-    "UserRefOrUid": "LDAP User und Portal User können nicht gleichzeitig befüllt sein."
-  }
-,
-  "Company": {
-    "Title": "Unternehmen",
-    "Name": "Name",
-    "CompanyType": "Rechtsform",
-    "HrNumber": "Handelsregisternummer",
-    "Note": "Notiz"
-  },
-  "ContactPerson": {
-    "Title": "Ansprechpartner",
-    "FirstName": "Vorname",
-    "LastName": "Name",
-    "PersonTitle": "Titel",
-    "CompanyName": "Unternehmensname",
-    "CompanyType": "Unternehmenstyp",
-    "CompanyHrNumber": "Handelsregisternummer",
-    "PersonType": "Personentyp",
-    "Salutation": "Anrede",
-    "EMail": "E-Mail",
-    "Note": "Notiz",
-    "NewContactPerson": "Neuen Ansprechpartner anlegen",
-    "CompanyBtn": "Zum Unternehmen",
-    "ContactOverviewBtn": "Zur Kontaktübersicht"
-  }
-,
-  "Salutations": {
-    "Link":         "Anreden verwalten",
-    "Title":        "Übersicht Anrede",
-    "DetailsTitle": "Anrede Details",
-    "Type":         "Typ",
-    "Description":  "Beschreibung"
-  },
-  "CommunicationTypes": {
-    "Link":         "Kommunikationstypen verwalten",
-    "Title":        "Übersicht Kommunikationstypen",
-    "DetailsTitle": "Kommunikationstypen Details",
-    "Type":         "Typ",
-    "Description":  "Beschreibung",
-    "Editable":     "Editierbar",
-    "MappingLdap":  "LDAP Mapping"
-  },
-  "PersonTypes": {
-    "Link":         "Personentypen verwalten",
-    "Title":        "Übersicht Personentypen",
-    "DetailsTitle": "Personentypen Details",
-    "Type":         "Typ",
-    "Description":  "Beschreibung"
-  },
-  "AddressTypes": {
-    "Link":         "Adresstypen verwalten",
-    "Title":        "Übersicht Adresstypen",
-    "DetailsTitle": "Adresstypen Details",
-    "Type":         "Typ",
-    "Description":  "Beschreibung"
-  }
-,
-    "Address": {
-        "AddressType": "Adresstyp",
-        "MainAddress": "Hauptadresse",
-        "Postcode": "Postleitzahl",
-        "Community": "Ort",
-        "CommunitySuffix": "Adresse (Zusatz)",
-        "Street": "Straße",
-        "Housenumber": "Hausnummer",
-        "Note": "Notiz",
-        "NewAddress": "Neue Adresse anlegen",
-        "EditAddress": "Adresse bearbeiten",
-        "Wgs84Zone": "WGS84-Zone",
-        "Longitude": "Längengrad",
-        "Latitude": "Breitengrad",
-        "UrlMap": "Google maps-URL"
-  }
-,
-    "CommunicationsData": {
-        "CommunicationType": "Typ",
-        "CommunicationData": "Daten",
-        "Note": "Notiz",
-        "NewCommunicationsData": "Neuen Kommunikationskanal hinzufügen",
-        "EditCommunicationsData": "Kommunikationskanal bearbeiten"
-  }
-,
-  "UserModuleAssignment": {
-    "ModuleName": "Modulname",
-    "AssignmentDate": "Zuweisungsdatum",
-    "ExpiringDate": "Ablaufdatum",
-    "DeletionLockUntil": "Löschsperre bis",
-    "AssignmentNote": "Notiz",
-    "NewUserModuleAssignment": "Neue Modulzuordnung anlegen",
-    "EditUserModuleAssignment": "Modulzuordnung bearbeiten"
-  }
-,
-  "Logout": {
-    "Loggedout": "Sie wurden ausgeloggt ...",
-    "PortalNewLogin": "Über das Portal können Sie sich erneut einloggen.",
-    "CloseTab": "Browser-Tab schließen",
-    "SubmitLogout": "Wollen Sie sich abmelden?"
-  }
-,
-  "GridFailures": {
-    "Title": "Übersicht Störungsmeldungen",
-    "New": "Neue Störungsmeldung anlegen"
-  },
-  "GridFailure": {
-    "Title": "Störungsmeldung",
-    "Branch": "Sparte",
-    "BranchColorCode": "Farbe der Sparte",
-    "City": "Ortsteil",
-    "District": "Ort (betroffene Orte)",
-    "FailureBegin": "Störungsbeginn (gemeldet)",
-    "FailureClassification": "Klassifikation",
-    "FailureEndPlanned": "Störungsende (geplant)",
-    "FailureEndResupplied": "Störungsende (wiederversorgt)",
-    "FailureType": "Typ",
-    "Housenumber": "Hausnummer",
-    "InternExtern": "Meldung durch (intern / extern)",
-    "InternalRemark": "Interne Bemerkungen",
-    "Postcode": "Postleitzahl",
-    "PressureLevel": "Druckstufe [ND, MD, HD]",
-    "ProbableReason": "Voraussichtlicher Grund",
-    "Radius": "Radius",
-    "Responsibility": "Zuständigkeit",
-    "StationCoords": "Koordination",
-    "StationDescription": "Beschreibung",
-    "StatusExtern": "Status (extern)",
-    "StatusIntern": "Status (intern)",
-    "Street": "Straße (betroffene Straße)",
-    "VoltageLevel": "Spannungsebene [NS, MS, HS]"
-  }
-}
diff --git a/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure.module.ts b/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure.module.ts
index f5149d1..fe98910 100644
--- a/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure.module.ts
+++ b/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure.module.ts
@@ -37,7 +37,7 @@
 import { StoreModule } from '@ngrx/store';
 import { gridFailureReducers } from '@app/shared/store';
 import { NgbDatepickerModule } from '@ng-bootstrap/ng-bootstrap';
-// import { UtilityModule } from '@shared/utility';
+import { UtilityModule } from '@shared/utility';
 
 @NgModule({
   imports: [
@@ -51,7 +51,7 @@
     NgrxFormsModule,
     FormsModule,
     NgbDatepickerModule,
-    // UtilityModule,
+    UtilityModule,
     StoreModule.forFeature('grid-failure', gridFailureReducers),
     AgGridModule.withComponents([SetFilterComponent]),
     EffectsModule.forFeature([GridFailuresEffects]),
diff --git a/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure.sandbox.ts b/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure.sandbox.ts
index 240d9d6..04e8e74 100644
--- a/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure.sandbox.ts
+++ b/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure.sandbox.ts
@@ -10,7 +10,6 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  ********************************************************************************/
-// import { BaseSandbox } from '@shared/sandbox/base.sandbox';
 import { Injectable } from '@angular/core';
 import { Store, ActionsSubject } from '@ngrx/store';
 import { FormGroupState, NgrxValueConverter, SetValueAction, ResetAction } from 'ngrx-forms';
@@ -30,6 +29,7 @@
 import * as fromGridFailuresDetailFormReducer from '@shared/store/reducers/grid-failures/grid-failure-details-form.reducer';
 import { NgbModal } from '@ng-bootstrap/ng-bootstrap';
 import { SafetyQueryDialogComponent } from '@shared/components/dialogs/safety-query-dialog/safety-query-dialog.component';
+import { navigateHome } from '@shared/utility';
 
 @Injectable()
 export class GridFailureSandbox extends BaseSandbox {
@@ -103,7 +103,7 @@
   clear(): void {
     this.appState$.dispatch(new SetValueAction(fromGridFailuresDetailFormReducer.FORM_ID, fromGridFailuresDetailFormReducer.INITIAL_STATE.value));
     this.appState$.dispatch(new ResetAction(fromGridFailuresDetailFormReducer.FORM_ID));
-    this.router.navigateByUrl('/grid-failures');
+    navigateHome(this.router);
   }
 
   public saveGridFailure(): void {
diff --git a/projects/grid-failure-information-app/src/app/shared/store/effects/grid-failures.effect.ts b/projects/grid-failure-information-app/src/app/shared/store/effects/grid-failures.effect.ts
index 8ac5fea..c10dae0 100644
--- a/projects/grid-failure-information-app/src/app/shared/store/effects/grid-failures.effect.ts
+++ b/projects/grid-failure-information-app/src/app/shared/store/effects/grid-failures.effect.ts
@@ -1,5 +1,3 @@
-import { getGridFailuresData } from './../index';
-import { loadGridFailureDetailSuccess, saveGridFailure } from './../actions/grid-failures.action';
 /********************************************************************************
  * Copyright (c) 2020 Contributors to the Eclipse Foundation
  *
diff --git a/projects/grid-failure-information-app/src/app/shared/store/reducers/grid-failures/grid-failure-details-form.reducer.ts b/projects/grid-failure-information-app/src/app/shared/store/reducers/grid-failures/grid-failure-details-form.reducer.ts
index 6c00684..c07bfa0 100644
--- a/projects/grid-failure-information-app/src/app/shared/store/reducers/grid-failures/grid-failure-details-form.reducer.ts
+++ b/projects/grid-failure-information-app/src/app/shared/store/reducers/grid-failures/grid-failure-details-form.reducer.ts
@@ -30,6 +30,12 @@
     street: validate(required),
     stationCoords: validate(required),
     radius: validate(required),
+    // temporarily only
+    branchId: validate(required),
+    failureTypeId: validate(required),
+    failureClassificationId: validate(required),
+    statusInternId: validate(required),
+    statusExternId: validate(required),
   })
 );