Merge branch 'KON-605-NEW' of ssh://git.eclipse.org:29418/openk-coremodules/org.eclipse.openk-coremodules.contactBaseData.frontend into KON-605-NEW
diff --git a/i18n/admin.de.json b/i18n/admin.de.json
index 2f2278e..dc2864a 100644
--- a/i18n/admin.de.json
+++ b/i18n/admin.de.json
@@ -1,7 +1,7 @@
 {
   "Salutations": {
     "Link": "Anreden verwalten",
-    "Title": "Übersicht Anrede",
+    "Title": "Übersicht Anreden",
     "DetailsTitle": "Anrede Details",
     "Type": "Typ",
     "Description": "Beschreibung",
@@ -10,7 +10,7 @@
   "CommunicationTypes": {
     "Link": "Kommunikationstypen verwalten",
     "Title": "Übersicht Kommunikationstypen",
-    "DetailsTitle": "Kommunikationstypen Details",
+    "DetailsTitle": "Kommunikationstyp Details",
     "Type": "Typ",
     "Description": "Beschreibung",
     "Editable": "Editierbar",
@@ -20,7 +20,7 @@
   "PersonTypes": {
     "Link": "Personentypen verwalten",
     "Title": "Übersicht Personentypen",
-    "DetailsTitle": "Personentypen Details",
+    "DetailsTitle": "Personentyp Details",
     "Type": "Typ",
     "Description": "Beschreibung",
     "New": "Neuen Personentyp anlegen"
@@ -28,7 +28,7 @@
   "AddressTypes": {
     "Link": "Adresstypen verwalten",
     "Title": "Übersicht Adresstypen",
-    "DetailsTitle": "Adresstypen Details",
+    "DetailsTitle": "Adresstyp Details",
     "Type": "Typ",
     "Description": "Beschreibung",
     "New": "Neuen Adresstyp anlegen"
diff --git a/src/app/pages/contacts/contacts-list/contacts-list-column-definition.ts b/src/app/pages/contacts/contacts-list/contacts-list-column-definition.ts
index 940f047..5b4a5f4 100644
--- a/src/app/pages/contacts/contacts-list/contacts-list-column-definition.ts
+++ b/src/app/pages/contacts/contacts-list/contacts-list-column-definition.ts
@@ -46,6 +46,14 @@
     field: 'note',
     colId: 'note',
     headerName: 'Contacts.Note',
+    maxWidth: 130,
+    tooltipValueGetter: params => {
+      if (!!params.value && params.value.length >= 20) {
+        return params.value;
+      } else {
+        return '';
+      }
+    },
     filter: 'agTextColumnFilter',
     filterParams: {
       debounceMs: 1000,
@@ -53,11 +61,12 @@
   },
   {
     valueGetter: function(params) {
-      if (params.data.community || params.data.street || params.data.housenumber) {
-        return `${params.data.community}, ${params.data.street} ${params.data.housenumber}`;
-      } else {
-        return '';
-      }
+      let result = '';
+      if (params.data.community) result += `${params.data.community}`;
+      if (params.data.street) result += ',' + ` ${params.data.street}`;
+      if (params.data.housenumber) result += ` ${params.data.housenumber}`;
+
+      return result;
     },
     colId: 'mainaddress',
     headerName: 'Contacts.MainAddress',
diff --git a/src/app/pages/contacts/contacts-list/contacts-list.component.html b/src/app/pages/contacts/contacts-list/contacts-list.component.html
index da6b23c..37e26c1 100644
--- a/src/app/pages/contacts/contacts-list/contacts-list.component.html
+++ b/src/app/pages/contacts/contacts-list/contacts-list.component.html
@@ -150,7 +150,7 @@
       [queryParameter]="modifiedContacts"
       autoResizeColumns
       class="ag-theme-balham"
-      style="min-width: 984px; height: calc(100vh - 279px);"
+      style="min-width: 1130px; height: calc(100vh - 276px);"
       [gridOptions]="gridOptions"
       [columnDefs]="columnDefinition"
       [rowSelection]="'single'"
diff --git a/src/app/pages/contacts/contacts-list/contacts-list.component.scss b/src/app/pages/contacts/contacts-list/contacts-list.component.scss
index 5177a30..f71da6d 100644
--- a/src/app/pages/contacts/contacts-list/contacts-list.component.scss
+++ b/src/app/pages/contacts/contacts-list/contacts-list.component.scss
@@ -22,7 +22,7 @@
   display: flex;
   justify-content: space-between;
   align-content: center;
-  min-width: 982px;
+  min-width: 1130px;
   background-color: #f5f7f7;
   border: 1px solid rgb(189, 195, 199);
   padding: 7px 7px 5px 7px;
diff --git a/src/app/pages/contacts/contacts-list/contacts-list.component.spec.ts b/src/app/pages/contacts/contacts-list/contacts-list.component.spec.ts
index 5533293..3ed2d3e 100644
--- a/src/app/pages/contacts/contacts-list/contacts-list.component.spec.ts
+++ b/src/app/pages/contacts/contacts-list/contacts-list.component.spec.ts
@@ -236,4 +236,20 @@
     expect(component.modifiedContacts.moduleName).toBe(moduleName);
     expect(component.modifiedContacts.withoutAssignedModule).toBeFalsy();
   });
+
+  it('checks if function _resetDSGVOFilter works', () => {
+    (component as any)._deletionLockExceeded = true;
+    (component as any)._resetDSGVOFilter();
+    expect((component as any)._deletionLockExceeded).toBeFalsy();
+  });
+
+  it('checks if function showAdvancedDSGVOFilter() works', () => {
+    const spy = spyOn(component as any, '_resetDSGVOFilter');
+    component.isDSGVOFilterAdvancedVisible = true;
+    component.modifiedContacts.expiringDataInPast = true;
+    component.showAdvancedDSGVOFilter();
+
+    expect(component.isDSGVOFilterAdvancedVisible).toBeFalsy();
+    expect(spy).toHaveBeenCalled();
+  });
 });
diff --git a/src/app/pages/contacts/contacts-list/contacts-list.component.ts b/src/app/pages/contacts/contacts-list/contacts-list.component.ts
index d0cadd5..7a631da 100644
--- a/src/app/pages/contacts/contacts-list/contacts-list.component.ts
+++ b/src/app/pages/contacts/contacts-list/contacts-list.component.ts
@@ -205,6 +205,29 @@
     sessionStorage.setItem(Globals.SESSSION_STORAGE_KEYS.contactListSearchFilterKey, JSON.stringify(this.modifiedContacts));
   }
 
+  public showAdvancedDSGVOFilter() {
+    this.isDSGVOFilterAdvancedVisible = !this.isDSGVOFilterAdvancedVisible;
+    if (
+      !this.isDSGVOFilterAdvancedVisible &&
+      (this.modifiedContacts.moduleName != null ||
+        this.modifiedContacts.withoutAssignedModule ||
+        this.modifiedContacts.deletionLockExceeded ||
+        this.modifiedContacts.expiringDataInPast)
+    ) {
+      this._resetDSGVOFilter();
+    }
+  }
+
+  private _resetDSGVOFilter() {
+    this._deletionLockExceeded = false;
+    this._expiringDataInPast = false;
+    this.modifiedContacts.moduleName = null;
+    this.modifiedContacts.withoutAssignedModule = false;
+    this.modifiedContacts.deletionLockExceeded = false;
+    this.modifiedContacts.expiringDataInPast = false;
+    this.modifiedContacts = { ...this.modifiedContacts };
+  }
+
   private _setModifiedContactsSort() {
     if (this._sortingOrder && this._sortingContactType) {
       const sort = this._sortingContactType + ',' + this._sortingOrder;
diff --git a/src/app/pages/persons/internal-person/internal-person-details/internal-person-details.component.html b/src/app/pages/persons/internal-person/internal-person-details/internal-person-details.component.html
index 7865c91..a8950ec 100644
--- a/src/app/pages/persons/internal-person/internal-person-details/internal-person-details.component.html
+++ b/src/app/pages/persons/internal-person/internal-person-details/internal-person-details.component.html
@@ -49,6 +49,13 @@
           </div>
         </div>
 
+        <div class="syncAlertMessage" *ngIf="internalPersonSandBox.showSyncAlertMessage">
+          <span>
+            Achtung: <br />Dieser Kontakt wird mit einem anderen System synchronisiert. <br />
+            Manuelle Änderungen gehen möglicherweise verloren.
+          </span>
+        </div>
+
         <!-- title -->
         <div class="form-group row">
           <label for="title" class="col-sm-2 col-form-label">{{ 'Internal.PersonTitle' | translate }}</label>
@@ -123,7 +130,7 @@
               autocomplete="off"
             />
           </div>
-          <button type="button" (click)="internalPersonSandBox.setLdapUidValue(null)" class="tool-icon">
+          <button type="button" style="flex-basis: 10px;" (click)="internalPersonSandBox.setLdapUidValue(null)" class="tool-icon">
             <fa name="trash"></fa>
           </button>
         </div>
diff --git a/src/app/pages/persons/internal-person/internal-person-details/internal-person-details.component.scss b/src/app/pages/persons/internal-person/internal-person-details/internal-person-details.component.scss
index d73298c..a2ba532 100644
--- a/src/app/pages/persons/internal-person/internal-person-details/internal-person-details.component.scss
+++ b/src/app/pages/persons/internal-person/internal-person-details/internal-person-details.component.scss
@@ -52,3 +52,13 @@
 .expandable-module-assignment .collapse5 {
   height: 338px;
 }
+.syncAlertMessage {
+  position: absolute;
+  right: 0px;
+  top: 0px;
+  margin: 20px;
+  padding: 14px;
+  font-size: 13px;
+  background-color: rgba(255, 178, 0, 0.2);
+  border: 1px solid rgba(0, 0, 0, 0.15);
+}
diff --git a/src/app/pages/persons/internal-person/internal-person-details/internal-person-details.sandbox.ts b/src/app/pages/persons/internal-person/internal-person-details/internal-person-details.sandbox.ts
index 707545e..b242671 100644
--- a/src/app/pages/persons/internal-person/internal-person-details/internal-person-details.sandbox.ts
+++ b/src/app/pages/persons/internal-person/internal-person-details/internal-person-details.sandbox.ts
@@ -49,7 +49,7 @@
   public isCommunicationsDataDetailViewVisible: boolean = false;
   public isAddressDataDetailViewVisible: boolean = false;
   public existMainAddress = false;
-  public showSynchAlertMessage = false;
+  public showSyncAlertMessage = false;
   public isCurrentAddressMainAddress = false;
   public internalPersonContactId: string;
   private _currentInternalPerson: InternalPerson = null;
@@ -255,6 +255,8 @@
     // subscribes to formState
     this.internalPersonDetailsFormState$.pipe(takeUntil(this._endSubscriptions$)).subscribe((formState: FormGroupState<InternalPerson>) => {
       this.internalPersonDetailsCurrentFormState = formState;
+
+      this.showSyncAlertMessage = !!formState.value && (!!formState.value.uid || !!formState.value.userRef) ? true : false;
     });
   }
 
diff --git a/src/app/shared/models/modifiedContacts.model.ts b/src/app/shared/models/modifiedContacts.model.ts
index ab6c092..233ca62 100644
--- a/src/app/shared/models/modifiedContacts.model.ts
+++ b/src/app/shared/models/modifiedContacts.model.ts
@@ -16,9 +16,9 @@
   public sort: string = null;
   public isDSGVOFilterAdvancedVisible: boolean = null;
   public moduleName: string = null;
-  public withoutAssignedModule: boolean = null;
-  public expiringDataInPast: boolean = null;
-  public deletionLockExceeded: boolean = null;
+  public withoutAssignedModule: boolean = false;
+  public expiringDataInPast: boolean = false;
+  public deletionLockExceeded: boolean = false;
 
   public constructor(data: any = null) {
     Object.keys(data || {})