This is an automated email from the ASF dual-hosted git repository.

zehnder pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/streampipes.git


The following commit(s) were added to refs/heads/dev by this push:
     new 9c319ccf60 Fix incorrect pagination in data lake and pipelines (#4034)
9c319ccf60 is described below

commit 9c319ccf6001b7bfa0148b9a27480d64c3f6728b
Author: Jacqueline Höllig <[email protected]>
AuthorDate: Tue Dec 9 08:42:21 2025 +0100

    Fix incorrect pagination in data lake and pipelines (#4034)
---
 ui/deployment/i18n/de.json                         |  4 ++--
 .../datalake-configuration.component.ts            | 26 ++++++++++++++++------
 ui/src/app/dataset/dataset.module.ts               | 10 ++++++++-
 .../functions-overview.component.ts                |  3 ++-
 .../pipeline-overview.component.ts                 |  4 ++--
 5 files changed, 34 insertions(+), 13 deletions(-)

diff --git a/ui/deployment/i18n/de.json b/ui/deployment/i18n/de.json
index 4a0a98f91d..388b6ceed6 100644
--- a/ui/deployment/i18n/de.json
+++ b/ui/deployment/i18n/de.json
@@ -964,11 +964,11 @@
   "List": "Liste",
   "Nested": "Verschachtelt",
   "Preview": "Vorschau",
-  "Items per page": "Artikel pro Seite",
+  "Items per page": "Einträge pro Seite",
   "Next page": "Nächste Seite",
   "Previous page": "Vorherige Seite",
   " of ": " von ",
-  " items ": " Artikel",
+  " items ": " Einträge",
   "Error Details": "Fehler-Details",
   "All {{allResourcesAlias}}": "Alle {{allResourcesAlias}}",
   "{{ widgetTitle }} Clone": "{{ widgetTitle }} Kopie"
diff --git 
a/ui/src/app/dataset/components/datalake-configuration/datalake-configuration.component.ts
 
b/ui/src/app/dataset/components/datalake-configuration/datalake-configuration.component.ts
index 4bcc8c1071..6779808799 100644
--- 
a/ui/src/app/dataset/components/datalake-configuration/datalake-configuration.component.ts
+++ 
b/ui/src/app/dataset/components/datalake-configuration/datalake-configuration.component.ts
@@ -17,6 +17,7 @@
  */
 
 import {
+    AfterViewInit,
     ChangeDetectorRef,
     Component,
     inject,
@@ -40,10 +41,9 @@ import {
     DialogService,
     PanelType,
     SpBreadcrumbService,
-    SpNavigationItem,
+    SpTableComponent,
 } from '@streampipes/shared-ui';
 import { DeleteDatalakeIndexComponent } from 
'../../dialog/delete-datalake-index/delete-datalake-index-dialog.component';
-import { SpConfigurationTabsService } from 
'../../../configuration/configuration-tabs.service';
 import { SpConfigurationRoutes } from 
'../../../configuration/configuration.routes';
 import { DataRetentionDialogComponent } from 
'../../dialog/data-retention-dialog/data-retention-dialog.component';
 import { ExportProviderComponent } from 
'../../dialog/export-provider-dialog/export-provider-dialog.component';
@@ -58,9 +58,11 @@ import { DataRetentionLogDialogComponent } from 
'../../dialog/data-retention-log
     styleUrls: ['./datalake-configuration.component.scss'],
     standalone: false,
 })
-export class DatalakeConfigurationComponent implements OnInit {
-    @ViewChild(MatPaginator) paginator: MatPaginator;
+export class DatalakeConfigurationComponent implements OnInit, AfterViewInit {
+    paginator: MatPaginator;
     @ViewChild(MatSort) sort: MatSort;
+    @ViewChild(SpTableComponent)
+    spTable!: SpTableComponent<DataLakeConfigurationEntry>;
 
     private datalakeRestService = inject(DatalakeRestService);
     private dataViewDataExplorerService = inject(ChartService);
@@ -68,7 +70,6 @@ export class DatalakeConfigurationComponent implements OnInit 
{
     private breadcrumbService = inject(SpBreadcrumbService);
     private exportProviderRestService = inject(ExportProviderService);
     private translateService = inject(TranslateService);
-    private cdr = inject(ChangeDetectorRef);
 
     dataSource: MatTableDataSource<DataLakeConfigurationEntry> =
         new MatTableDataSource([]);
@@ -96,7 +97,7 @@ export class DatalakeConfigurationComponent implements OnInit 
{
         'test',
     ];
 
-    pageSize = 15;
+    pageSize = 10;
     pageIndex = 0;
 
     ngOnInit(): void {
@@ -108,6 +109,17 @@ export class DatalakeConfigurationComponent implements 
OnInit {
         this.loadAvailableExportProvider();
     }
 
+    ngAfterViewInit() {
+        this.paginator = this.spTable.paginator;
+        this.dataSource.sort = this.sort;
+
+        this.spTable.paginator.page.subscribe(event => {
+            this.pageIndex = event.pageIndex;
+            this.pageSize = event.pageSize;
+            this.receiveMeasurementSizes(this.pageIndex);
+        });
+    }
+
     loadAvailableExportProvider() {
         this.availableExportProvider = [];
         this.exportProviderRestService
@@ -136,7 +148,6 @@ export class DatalakeConfigurationComponent implements 
OnInit {
                             if (measurement?.retentionTime != null) {
                                 entry.retention = measurement.retentionTime;
                             }
-                            console.log(entry.retention);
                             inUseMeasurements.forEach(inUseMeasurement => {
                                 if (
                                     inUseMeasurement.measureName ===
@@ -315,6 +326,7 @@ export class DatalakeConfigurationComponent implements 
OnInit {
 
     onPageChange(event: any) {
         this.pageIndex = event.pageIndex;
+        this.pageSize = event.pageSize;
         this.receiveMeasurementSizes(this.pageIndex);
     }
 
diff --git a/ui/src/app/dataset/dataset.module.ts 
b/ui/src/app/dataset/dataset.module.ts
index 6141db5427..ddaf3970b8 100644
--- a/ui/src/app/dataset/dataset.module.ts
+++ b/ui/src/app/dataset/dataset.module.ts
@@ -47,12 +47,16 @@ import { MatProgressSpinnerModule } from 
'@angular/material/progress-spinner';
 import { MatFormFieldModule } from '@angular/material/form-field';
 import { MatRadioModule } from '@angular/material/radio';
 import { MatSelectModule } from '@angular/material/select';
-import { MatPaginatorModule } from '@angular/material/paginator';
+import {
+    MatPaginatorIntl,
+    MatPaginatorModule,
+} from '@angular/material/paginator';
 import { MatInputModule } from '@angular/material/input';
 import { MatMenuModule } from '@angular/material/menu';
 import { DataRetentionNowDialogComponent } from 
'./dialog/data-retention-now-dialog/data-retention-now-dialog.component';
 import { DataRetentionLogDialogComponent } from 
'./dialog/data-retention-log-dialog/data-retention-log-dialog.component';
 import { ExportProviderConnectionTestComponent } from 
'./dialog/export-provider-connection-test/export-provider-connection-test.component';
+import { PaginatorService } from 
'projects/streampipes/shared-ui/src/lib/components/sp-table/sp-paginator/sp-paginator.component';
 
 @NgModule({
     imports: [
@@ -103,6 +107,10 @@ import { ExportProviderConnectionTestComponent } from 
'./dialog/export-provider-
         SelectDataExportComponent,
         DeleteExportProviderComponent,
     ],
+    providers: [
+        { provide: MatPaginatorIntl, useClass: PaginatorService }, // Use 
custom paginator service
+    ],
+
     exports: [],
 })
 export class DatasetModule {
diff --git 
a/ui/src/app/pipelines/components/functions-overview/functions-overview.component.ts
 
b/ui/src/app/pipelines/components/functions-overview/functions-overview.component.ts
index 632e063836..603b6c1921 100644
--- 
a/ui/src/app/pipelines/components/functions-overview/functions-overview.component.ts
+++ 
b/ui/src/app/pipelines/components/functions-overview/functions-overview.component.ts
@@ -38,7 +38,8 @@ export class FunctionsOverviewComponent implements OnInit {
     constructor(private router: Router) {}
 
     ngOnInit(): void {
-        this.dataSource = new MatTableDataSource<FunctionId>(this.functions);
+        this.dataSource = new MatTableDataSource<FunctionId>();
+        this.dataSource.data = this.functions;
     }
 
     showFunctionDetails(functionId: string): void {
diff --git 
a/ui/src/app/pipelines/components/pipeline-overview/pipeline-overview.component.ts
 
b/ui/src/app/pipelines/components/pipeline-overview/pipeline-overview.component.ts
index 6bcb5ea8b2..92c150441f 100644
--- 
a/ui/src/app/pipelines/components/pipeline-overview/pipeline-overview.component.ts
+++ 
b/ui/src/app/pipelines/components/pipeline-overview/pipeline-overview.component.ts
@@ -55,7 +55,7 @@ export class PipelineOverviewComponent implements OnInit, 
OnDestroy {
         'actions',
     ];
 
-    dataSource: MatTableDataSource<Pipeline>;
+    dataSource: MatTableDataSource<Pipeline> = new MatTableDataSource();
     @ViewChild(MatSort) sort: MatSort;
 
     starting: any;
@@ -108,7 +108,7 @@ export class PipelineOverviewComponent implements OnInit, 
OnDestroy {
     }
 
     addPipelinesToTable() {
-        this.dataSource = new MatTableDataSource<Pipeline>(this._pipelines);
+        this.dataSource.data = this._pipelines;
         this.dataSource.sortingDataAccessor = (pipeline, column) => {
             if (column === 'status') {
                 return pipeline.running;

Reply via email to