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;