From 217ecd4d3f29b85f482f34589804a9c8275f8114 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sven=20G=C3=BCnther?= Date: Mon, 22 Sep 2025 21:54:24 +0200 Subject: [PATCH] Feature/set up pagination in import activities dialog (#5527) * Set up pagination in import activities dialog * Update changelog --- CHANGELOG.md | 1 + .../import-activities-dialog.component.ts | 12 ++++- .../import-activities-dialog.html | 47 ++++++++++--------- .../activities-table.component.ts | 4 ++ 4 files changed, 42 insertions(+), 22 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7abc0ac03..2f65ade6a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added - Added the symbol to the benchmark component +- Added pagination to the activities table of the activities import dialog - Added an option to configure the account column of the activities table component ### Changed diff --git a/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts b/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts index b1794cb4a..ea3292663 100644 --- a/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts +++ b/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts @@ -36,6 +36,7 @@ import { } from '@angular/material/dialog'; import { MatExpansionModule } from '@angular/material/expansion'; import { MatFormFieldModule } from '@angular/material/form-field'; +import { PageEvent } from '@angular/material/paginator'; import { MatProgressSpinnerModule } from '@angular/material/progress-spinner'; import { MatSelectModule } from '@angular/material/select'; import { MatSnackBar } from '@angular/material/snack-bar'; @@ -90,8 +91,9 @@ export class GfImportActivitiesDialog implements OnDestroy { public holdings: PortfolioPosition[] = []; public importStep: ImportStep = ImportStep.UPLOAD_FILE; public isLoading = false; - public maxSafeInteger = Number.MAX_SAFE_INTEGER; public mode: 'DIVIDEND'; + public pageIndex = 0; + public pageSize = 8; public selectedActivities: Activity[] = []; public sortColumn = 'date'; public sortDirection: SortDirection = 'desc'; @@ -236,6 +238,7 @@ export class GfImportActivitiesDialog implements OnDestroy { .subscribe(({ activities }) => { this.activities = activities; this.dataSource = new MatTableDataSource(activities.reverse()); + this.pageIndex = 0; this.totalItems = activities.length; aStepper.next(); @@ -244,10 +247,15 @@ export class GfImportActivitiesDialog implements OnDestroy { }); } + public onPageChanged({ pageIndex }: PageEvent) { + this.pageIndex = pageIndex; + } + public onReset(aStepper: MatStepper) { this.details = []; this.errorMessages = []; this.importStep = ImportStep.SELECT_ACTIVITIES; + this.pageIndex = 0; this.assetProfileForm.get('assetProfileIdentifier').enable(); aStepper.reset(); @@ -338,6 +346,7 @@ export class GfImportActivitiesDialog implements OnDestroy { }); this.activities = activities; this.dataSource = new MatTableDataSource(activities.reverse()); + this.pageIndex = 0; this.totalItems = activities.length; } catch (error) { console.error(error); @@ -356,6 +365,7 @@ export class GfImportActivitiesDialog implements OnDestroy { }); this.activities = data.activities; this.dataSource = new MatTableDataSource(data.activities.reverse()); + this.pageIndex = 0; this.totalItems = data.activities.length; } catch (error) { console.error(error); diff --git a/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html b/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html index 6b048e6c0..508fdd753 100644 --- a/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html +++ b/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html @@ -21,9 +21,10 @@ Select File } -
+
@if (mode === 'DIVIDEND') {
@@ -114,7 +115,7 @@ Select Activities } -
+
@if (errorMessages?.length === 0) { @if (importStep === 1) { } @@ -153,25 +156,27 @@
} @else { - - @for (message of errorMessages; track message; let i = $index) { - - - -
-
- +
+ + @for (message of errorMessages; track message; let i = $index) { + + + +
+
+ +
+
{{ message }}
-
{{ message }}
-
- - - @if (details[i]) { -
{{ details[i] | json }}
- } - - } - + + + @if (details[i]) { +
{{ details[i] | json }}
+ } + + } + +