[KON-591]: Total Commit
[KON-670]: Bugfix (DSGVO-filter)

Signed-off-by: Dennis Schmitt <dennis.schmitt@pta.de>
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 8ca0601..0d1d60c 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,12 @@
     field: 'note',
     colId: 'note',
     headerName: 'Contacts.Note',
+    maxWidth: 130,
+    tooltip: params => {
+      if (params.value.length >= 20) {
+        return params.value;
+      }
+    },
     filter: 'agTextColumnFilter',
     filterParams: {
       debounceMs: 1000,
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 636fe40..77f72ee 100644
--- a/src/app/pages/contacts/contacts-list/contacts-list.component.html
+++ b/src/app/pages/contacts/contacts-list/contacts-list.component.html
@@ -44,7 +44,7 @@
             type="button"
             style="color: #495057;"
             class="btn btn-default btn-sm"
-            (click)="isDSGVOFilterAdvancedVisible = !isDSGVOFilterAdvancedVisible"
+            (click)="showAdvancedDSGVOFilter()"
             title="{{ 'Contacts.DSGVO-advanced-filter' | translate }}"
           >
             DSGVO
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 222b05f..3c9044c 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
@@ -211,4 +211,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 8576d49..f2756f2 100644
--- a/src/app/pages/contacts/contacts-list/contacts-list.component.ts
+++ b/src/app/pages/contacts/contacts-list/contacts-list.component.ts
@@ -158,6 +158,29 @@
     this.modifiedContacts = { ...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/shared/models/modifiedContacts.model.ts b/src/app/shared/models/modifiedContacts.model.ts
index e7817a9..6ecea6d 100644
--- a/src/app/shared/models/modifiedContacts.model.ts
+++ b/src/app/shared/models/modifiedContacts.model.ts
@@ -5,9 +5,9 @@
   public contactTypeId: string = '';
   public sort: string = 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 || {})