From 96f90c72598bd9e75fd21cbc04f8faeac257d9df Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sat, 16 Dec 2023 19:23:01 +0100 Subject: [PATCH] Feature/add lazy loaded activities table to import activities dialog (#2754) * Add lazy-loaded activities table * Update changelog --- CHANGELOG.md | 1 + .../import-activities-dialog.component.ts | 12 ++++++++++ .../import-activities-dialog.html | 23 ++++++++++++++++++- .../import-activities-dialog.module.ts | 2 ++ 4 files changed, 37 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 63da0f9b..1d3a064c 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 ### Changed - Introduced the lazy-loaded activities table to the account detail dialog (experimental) +- Introduced the lazy-loaded activities table to the import activities dialog (experimental) - Introduced the lazy-loaded activities table to the position detail dialog (experimental) - Improved the font weight in the value component - Improved the language localization for Türkçe (`tr`) 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 1427af92..fcc2decd 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 @@ -12,7 +12,9 @@ import { import { FormBuilder, FormGroup, Validators } from '@angular/forms'; import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; import { MatSnackBar } from '@angular/material/snack-bar'; +import { SortDirection } from '@angular/material/sort'; import { MatStepper } from '@angular/material/stepper'; +import { MatTableDataSource } from '@angular/material/table'; import { CreateAccountDto } from '@ghostfolio/api/app/account/create-account.dto'; import { Activity } from '@ghostfolio/api/app/order/interfaces/activities.interface'; import { DataService } from '@ghostfolio/client/services/data.service'; @@ -35,6 +37,7 @@ import { ImportActivitiesDialogParams } from './interfaces/interfaces'; export class ImportActivitiesDialog implements OnDestroy { public accounts: CreateAccountDto[] = []; public activities: Activity[] = []; + public dataSource: MatTableDataSource; public details: any[] = []; public deviceType: string; public dialogTitle = $localize`Import Activities`; @@ -45,7 +48,10 @@ export class ImportActivitiesDialog implements OnDestroy { public maxSafeInteger = Number.MAX_SAFE_INTEGER; public mode: 'DIVIDEND'; public selectedActivities: Activity[] = []; + public sortColumn = 'date'; + public sortDirection: SortDirection = 'desc'; public stepperOrientation: StepperOrientation; + public totalItems: number; public uniqueAssetForm: FormGroup; private unsubscribeSubject = new Subject(); @@ -173,6 +179,8 @@ export class ImportActivitiesDialog implements OnDestroy { .pipe(takeUntil(this.unsubscribeSubject)) .subscribe(({ activities }) => { this.activities = activities; + this.dataSource = new MatTableDataSource(activities.reverse()); + this.totalItems = activities.length; aStepper.next(); @@ -260,6 +268,8 @@ export class ImportActivitiesDialog implements OnDestroy { isDryRun: true }); this.activities = activities; + this.dataSource = new MatTableDataSource(activities.reverse()); + this.totalItems = activities.length; } catch (error) { console.error(error); this.handleImportError({ error, activities: content.activities }); @@ -276,6 +286,8 @@ export class ImportActivitiesDialog implements OnDestroy { userAccounts: this.data.user.accounts }); this.activities = data.activities; + this.dataSource = new MatTableDataSource(data.activities.reverse()); + this.totalItems = data.activities.length; } catch (error) { console.error(error); this.handleImportError({ 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 eab62642..477231e3 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 @@ -119,8 +119,29 @@
+