From 7424b5beee120d5585c26d421216d272fc2b3349 Mon Sep 17 00:00:00 2001
From: RIHTARSIC Joze <joze.rihtarsic@ext.ec.europa.eu>
Date: Wed, 7 Feb 2024 09:51:04 +0100
Subject: [PATCH] [EDELIVERY-12621] Fix resource pagination

---
 .../edit-resources/edit-resource.component.html  |  4 ++--
 .../edit-resources/edit-resource.component.ts    | 16 ++++------------
 .../edit-resources/edit-resource.controller.ts   | 14 +++-----------
 3 files changed, 9 insertions(+), 25 deletions(-)

diff --git a/smp-angular/src/app/edit/edit-resources/edit-resource.component.html b/smp-angular/src/app/edit/edit-resources/edit-resource.component.html
index 13024006b..e74a82901 100644
--- a/smp-angular/src/app/edit/edit-resources/edit-resource.component.html
+++ b/smp-angular/src/app/edit/edit-resources/edit-resource.component.html
@@ -4,7 +4,7 @@
               text="Edit resource administration panel is a tool for resource administrators to administer the resource"
               [labelColumnContent]="searchGroupPanel">
 
-    <mat-tab-group #domainTabs
+    <mat-tab-group #resourceTabs
                    *ngIf="hasResources;else noUserAdminGroupsDataFound"
                    style="height: 100%">
       <mat-tab>
@@ -132,7 +132,7 @@
         </table>
       </div>
 
-      <mat-paginator class="mat-elevation-z2" [length]="resultsLength"
+      <mat-paginator  #resourcePaginator class="mat-elevation-z2"
                      (page)="onPageChanged($event)"
                      [hidePageSize]="true"
                      [pageSize]="5"
diff --git a/smp-angular/src/app/edit/edit-resources/edit-resource.component.ts b/smp-angular/src/app/edit/edit-resources/edit-resource.component.ts
index e34c09a08..9d18d5531 100644
--- a/smp-angular/src/app/edit/edit-resources/edit-resource.component.ts
+++ b/smp-angular/src/app/edit/edit-resources/edit-resource.component.ts
@@ -18,12 +18,10 @@ export class EditResourceComponent implements OnInit, BeforeLeaveGuard {
   groupMembershipType: MemberTypeEnum = MemberTypeEnum.RESOURCE;
   displayedColumns: string[] = ['identifierValue', 'identifierScheme'];
   selected: ResourceRo;
-  filter: any = {};
-  resultsLength = 0;
   isLoadingResults = false;
 
   dataSource: MatTableDataSource<ResourceRo>;
-  @ViewChild(MatPaginator) paginator: MatPaginator;
+  @ViewChild("resourcePaginator") paginator: MatPaginator;
 
   constructor(private editResourceController: EditResourceController) {
     this.dataSource  = editResourceController;
@@ -43,9 +41,7 @@ export class EditResourceComponent implements OnInit, BeforeLeaveGuard {
 
 
   applyResourceFilter(event: Event) {
-    const filterValue = (event.target as HTMLInputElement).value;
-    this.editResourceController.filter["filter"] = filterValue.trim().toLowerCase();
-    this.editResourceController.refreshResources();
+    this.editResourceController.applyResourceFilter(event);
   }
 
   get hasResources(): boolean {
@@ -92,11 +88,11 @@ export class EditResourceComponent implements OnInit, BeforeLeaveGuard {
   }
 
   get filterResourceResults(): boolean {
-    return !!this.filter["filter"]
+    return !!this.editResourceController.resourcesFilter;
   }
 
   get disabledResourceFilter(): boolean {
-    return !this.editResourceController.selectedGroup;
+    return !this.editResourceController.filteredData;
   }
 
   isDirty(): boolean {
@@ -107,10 +103,6 @@ export class EditResourceComponent implements OnInit, BeforeLeaveGuard {
     this.editResourceController.refreshResources();
   }
 
-  get disabledResourcePagination(): boolean {
-    return !this.editResourceController.selectedGroup;
-  }
-
   get hasSubResources(): boolean {
     return this.selectedResourceDefinition?.subresourceDefinitions?.length > 0
   }
diff --git a/smp-angular/src/app/edit/edit-resources/edit-resource.controller.ts b/smp-angular/src/app/edit/edit-resources/edit-resource.controller.ts
index be213942f..a114b874c 100644
--- a/smp-angular/src/app/edit/edit-resources/edit-resource.controller.ts
+++ b/smp-angular/src/app/edit/edit-resources/edit-resource.controller.ts
@@ -30,7 +30,7 @@ export class EditResourceController extends MatTableDataSource<ResourceRo>{
 
   pageIndex: number = 0;
   pageSize: number = 10;
-  filterResources: any = {};
+  resourcesFilter: any = {};
   isLoadingResults = false;
 
 
@@ -120,7 +120,7 @@ export class EditResourceController extends MatTableDataSource<ResourceRo>{
     }
     this.isLoadingResults = true;
     this.resourceService.getGroupResourcesForResourceAdminObservable(this.selectedGroup, this.selectedDomain,
-      this.filterResources, this.pageIndex, this.pageSize)
+      this.resourcesFilter, this.pageIndex, this.pageSize)
       .subscribe((result: TableResult<ResourceRo>) => {
         this.updateResourceList(result.serviceEntities)
         this.isLoadingResults = false;
@@ -167,18 +167,10 @@ export class EditResourceController extends MatTableDataSource<ResourceRo>{
 
   applyResourceFilter(event: Event) {
     const filterValue = (event.target as HTMLInputElement).value;
-    this.filterResources["filter"] = filterValue.trim().toLowerCase();
+    this.resourcesFilter["filter"] = filterValue.trim().toLowerCase();
     this.refreshResources();
   }
 
-  get filterResourceResults(): boolean {
-    return !!this.filterResources["filter"]
-  }
-
-  get disabledResourceFilter(): boolean {
-    return !this._selectedGroup;
-  }
-
   get selectedResourceDefinition(): ResourceDefinitionRo {
 
     if (!this._selectedResource) {
-- 
GitLab