Merge branch 'KON-438' of ssh://git.eclipse.org:29418/openk-usermodules/org.eclipse.openk-usermodules.contactBaseData.frontend into KON-438
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 29c22a3..da6b23c 100644
--- a/src/app/pages/contacts/contacts-list/contacts-list.component.html
+++ b/src/app/pages/contacts/contacts-list/contacts-list.component.html
@@ -19,7 +19,7 @@
       <div class="search-options diverse-options-item">
         <input
           type="text"
-          class="item"
+          class="form-control item"
           id="search-text"
           style="position: 0px;font-size: 13px; line-height:21px; color: #495057;"
           placeholder="Suche"
@@ -150,7 +150,7 @@
       [queryParameter]="modifiedContacts"
       autoResizeColumns
       class="ag-theme-balham"
-      style="min-width: 982px; height: calc(100vh - 276px);"
+      style="min-width: 984px; height: calc(100vh - 279px);"
       [gridOptions]="gridOptions"
       [columnDefs]="columnDefinition"
       [rowSelection]="'single'"
diff --git a/src/app/shared/components/paginator/paginator.component.ts b/src/app/shared/components/paginator/paginator.component.ts
index 12f00b4..8a40216 100644
--- a/src/app/shared/components/paginator/paginator.component.ts
+++ b/src/app/shared/components/paginator/paginator.component.ts
@@ -29,7 +29,7 @@
   pageSize: number;
 
   @Input()
-  public set currrentPageNumber(pageNumber: number) {
+  public set currentPageNumber(pageNumber: number) {
     this._setActivePage({ pageIndex: pageNumber });
   }
 
@@ -116,12 +116,15 @@
       return;
     }
     this._init(1);
+
+    this.setSelectedPage({ pageIndex: 1 });
   }
 
   public isLastPage(): boolean {
     const activeItem = this.pageEventItems[this.currentPageIndex];
     return !!activeItem && activeItem.pageIndex == this.totalPages;
   }
+
   public isLastPageLastIcon(): boolean {
     const activeItem = this.pageEventItems[this.currentPageIndex];
     return !!activeItem && activeItem.pageIndex >= this.totalPages - this.visibleItemsAmount;
diff --git a/src/app/shared/directives/agGrid/server-side.directive.ts b/src/app/shared/directives/agGrid/server-side.directive.ts
index ce44135..8a4f633 100644
--- a/src/app/shared/directives/agGrid/server-side.directive.ts
+++ b/src/app/shared/directives/agGrid/server-side.directive.ts
@@ -15,9 +15,9 @@
 import { PageEvent } from '@shared/models/PageEvent';
 import { PageModel } from '@shared/models/page/page.model';
 import { AgGridAngular } from 'ag-grid-angular';
-import { map } from 'rxjs/operators';
+import { take, map } from 'rxjs/operators';
 import { ServerSideModel } from '@shared/models/server-side.model';
-import { Directive, Input, ComponentFactoryResolver, ViewContainerRef, ComponentFactory, OnInit, Output } from '@angular/core';
+import { Directive, Input, AfterViewInit, ComponentFactoryResolver, ViewContainerRef, ComponentFactory, OnInit, Output } from '@angular/core';
 import { Store, ActionsSubject } from '@ngrx/store';
 
 import * as store from '@shared/store';
@@ -37,7 +37,6 @@
   host: {},
 })
 export class ServerSideDirective implements OnInit {
-  private _currentPageNumber: number;
   private _queryParameter: any;
 
   private _matPaginator: PaginatorComponent;
@@ -50,17 +49,16 @@
 
   @Input()
   public set queryParameter(query: any) {
-    if (!!query) {
-      this._currentPageNumber = 1;
-      this.appState$.dispatch(
-        this.serverside.loadAction({
-          payload: {
-            queryParameter: query,
-            pageSize: this.serverside.pageSize,
-          } as PageRequestInterface,
-        })
-      );
-    }
+    this.appState$.dispatch(
+      this.serverside.loadAction({
+        payload: {
+          queryParameter: query,
+          pageSize: this.serverside.pageSize,
+          pageNumber: this.serverside.pageNumber,
+        } as PageRequestInterface,
+      })
+    );
+
     this._queryParameter = query;
   }
 
@@ -86,7 +84,6 @@
    * @memberof ServerSideDirective
    */
   ngOnInit() {
-    this._currentPageNumber = this.serverside.pageNumber;
     this._actionsSubject
       .pipe(
         ofType(this.serverside.successAction.type),
@@ -101,21 +98,19 @@
           this._matPaginator.totalPages = pagedItem.totalPages;
         }
 
-        this._matPaginator.currrentPageNumber = this._currentPageNumber;
         this._matPaginator.length = pagedItem.totalElements;
         this._matPaginator.pageSize = pagedItem.pageable.pageSize || 1;
         this._matPaginator.hidePageSize = false;
-        this._matPaginator.page.subscribe((selectedpage: PageEvent) => {
-          this._retrievePage(selectedpage);
+        this._matPaginator.page.pipe(take(1)).subscribe((selectedPage: PageEvent) => {
+          this._retrievePage(selectedPage);
         });
+        this._matPaginator.currentPageNumber = this.serverside.pageNumber;
         if (!!this._agGrid.api) {
           this._agGrid.api.setRowData(pagedItem.content);
         } else {
           this._agGrid.rowData = pagedItem.content;
         }
       });
-
-    this._retrievePage({ pageIndex: this.serverside.pageNumber });
   }
 
   /**
@@ -125,7 +120,6 @@
    * @memberof ServerSideDirective
    */
   private _retrievePage(event?: PageEvent) {
-    this._currentPageNumber = event.pageIndex;
     this.currentPageNumber.emit(event.pageIndex);
     this.appState$.dispatch(
       this.serverside.loadAction({