Browse Source

feat(client): enforce encapsulation

pull/7309/head
KenTandrian 2 days ago
parent
commit
f3f8bf2335
  1. 127
      apps/client/src/app/pages/portfolio/activities/activities-page.component.ts

127
apps/client/src/app/pages/portfolio/activities/activities-page.component.ts

@ -31,7 +31,6 @@ import { MatTableDataSource } from '@angular/material/table';
import { ActivatedRoute, Router, RouterModule } from '@angular/router';
import { format, parseISO } from 'date-fns';
import { DeviceDetectorService } from 'ngx-device-detector';
import { Subscription } from 'rxjs';
import { GfCreateOrUpdateActivityDialogComponent } from './create-or-update-activity-dialog/create-or-update-activity-dialog.component';
import { CreateOrUpdateActivityDialogParams } from './create-or-update-activity-dialog/interfaces/interfaces';
@ -51,19 +50,19 @@ import { ImportActivitiesDialogParams } from './import-activities-dialog/interfa
templateUrl: './activities-page.html'
})
export class GfActivitiesPageComponent implements OnInit {
public activityTypesFilter: string[] = [];
public dataSource: MatTableDataSource<Activity> | undefined;
public deviceType: string;
public hasImpersonationId: boolean;
public hasPermissionToCreateActivity: boolean;
public hasPermissionToDeleteActivity: boolean;
public pageIndex = 0;
public pageSize = DEFAULT_PAGE_SIZE;
public routeQueryParams: Subscription;
public sortColumn = 'date';
public sortDirection: SortDirection = 'desc';
public totalItems: number | undefined;
public user: User;
protected dataSource: MatTableDataSource<Activity> | undefined;
protected deviceType: string;
protected hasImpersonationId: boolean;
protected hasPermissionToCreateActivity: boolean;
protected hasPermissionToDeleteActivity: boolean;
protected pageIndex = 0;
protected pageSize = DEFAULT_PAGE_SIZE;
protected sortColumn = 'date';
protected sortDirection: SortDirection = 'desc';
protected totalItems: number | undefined;
protected user: User;
private activityTypesFilter: string[] = [];
public constructor(
private changeDetectorRef: ChangeDetectorRef,
@ -77,7 +76,7 @@ export class GfActivitiesPageComponent implements OnInit {
private router: Router,
private userService: UserService
) {
this.routeQueryParams = route.queryParams
route.queryParams
.pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((params) => {
if (params['createDialog']) {
@ -131,49 +130,13 @@ export class GfActivitiesPageComponent implements OnInit {
});
}
public fetchActivities() {
// Reset dataSource and totalItems to show loading state
this.dataSource = undefined;
this.totalItems = undefined;
const dateRange = this.user?.settings?.dateRange;
const range = this.isCalendarYear(dateRange) ? dateRange : undefined;
this.dataService
.fetchActivities({
range,
activityTypes: this.activityTypesFilter.length
? this.activityTypesFilter
: undefined,
filters: this.userService.getFilters(),
skip: this.pageIndex * this.pageSize,
sortColumn: this.sortColumn,
sortDirection: this.sortDirection,
take: this.pageSize
})
.pipe(takeUntilDestroyed(this.destroyRef))
.subscribe(({ activities, count }) => {
this.dataSource = new MatTableDataSource(activities);
this.totalItems = count;
if (
this.hasPermissionToCreateActivity &&
this.user?.activitiesCount === 0
) {
this.router.navigate([], { queryParams: { createDialog: true } });
}
this.changeDetectorRef.markForCheck();
});
}
public onChangePage(page: PageEvent) {
protected onChangePage(page: PageEvent) {
this.pageIndex = page.pageIndex;
this.fetchActivities();
}
public onClickActivity({ dataSource, symbol }: AssetProfileIdentifier) {
protected onClickActivity({ dataSource, symbol }: AssetProfileIdentifier) {
this.router.navigate([], {
queryParams: {
dataSource,
@ -183,11 +146,11 @@ export class GfActivitiesPageComponent implements OnInit {
});
}
public onCloneActivity(aActivity: Activity) {
protected onCloneActivity(aActivity: Activity) {
this.openCreateActivityDialog(aActivity);
}
public onDeleteActivities() {
protected onDeleteActivities() {
this.dataService
.deleteActivities({
filters: this.userService.getFilters()
@ -205,7 +168,7 @@ export class GfActivitiesPageComponent implements OnInit {
});
}
public onDeleteActivity(aId: string) {
protected onDeleteActivity(aId: string) {
this.dataService
.deleteActivity(aId)
.pipe(takeUntilDestroyed(this.destroyRef))
@ -221,7 +184,7 @@ export class GfActivitiesPageComponent implements OnInit {
});
}
public onExport(activityIds?: string[]) {
protected onExport(activityIds?: string[]) {
let fetchExportParams: any = { activityIds };
if (!activityIds) {
@ -252,7 +215,7 @@ export class GfActivitiesPageComponent implements OnInit {
});
}
public onExportDrafts(activityIds?: string[]) {
protected onExportDrafts(activityIds?: string[]) {
this.dataService
.fetchExport({ activityIds })
.pipe(takeUntilDestroyed(this.destroyRef))
@ -270,7 +233,7 @@ export class GfActivitiesPageComponent implements OnInit {
});
}
public onImport() {
protected onImport() {
const dialogRef = this.dialog.open<
GfImportActivitiesDialogComponent,
ImportActivitiesDialogParams
@ -298,7 +261,7 @@ export class GfActivitiesPageComponent implements OnInit {
});
}
public onImportDividends() {
protected onImportDividends() {
const dialogRef = this.dialog.open<
GfImportActivitiesDialogComponent,
ImportActivitiesDialogParams
@ -327,7 +290,7 @@ export class GfActivitiesPageComponent implements OnInit {
});
}
public onSortChanged({ active, direction }: Sort) {
protected onSortChanged({ active, direction }: Sort) {
this.pageIndex = 0;
this.sortColumn = active;
this.sortDirection = direction;
@ -335,20 +298,56 @@ export class GfActivitiesPageComponent implements OnInit {
this.fetchActivities();
}
public onTypesFilterChanged(aTypes: string[]) {
protected onTypesFilterChanged(aTypes: string[]) {
this.activityTypesFilter = aTypes;
this.pageIndex = 0;
this.fetchActivities();
}
public onUpdateActivity(aActivity: Activity) {
protected onUpdateActivity(aActivity: Activity) {
this.router.navigate([], {
queryParams: { activityId: aActivity.id, editDialog: true }
});
}
public openUpdateActivityDialog(aActivity: Activity) {
private fetchActivities() {
// Reset dataSource and totalItems to show loading state
this.dataSource = undefined;
this.totalItems = undefined;
const dateRange = this.user?.settings?.dateRange;
const range = this.isCalendarYear(dateRange) ? dateRange : undefined;
this.dataService
.fetchActivities({
range,
activityTypes: this.activityTypesFilter.length
? this.activityTypesFilter
: undefined,
filters: this.userService.getFilters(),
skip: this.pageIndex * this.pageSize,
sortColumn: this.sortColumn,
sortDirection: this.sortDirection,
take: this.pageSize
})
.pipe(takeUntilDestroyed(this.destroyRef))
.subscribe(({ activities, count }) => {
this.dataSource = new MatTableDataSource(activities);
this.totalItems = count;
if (
this.hasPermissionToCreateActivity &&
this.user?.activitiesCount === 0
) {
this.router.navigate([], { queryParams: { createDialog: true } });
}
this.changeDetectorRef.markForCheck();
});
}
private openUpdateActivityDialog(aActivity: Activity) {
const dialogRef = this.dialog.open<
GfCreateOrUpdateActivityDialogComponent,
CreateOrUpdateActivityDialogParams

Loading…
Cancel
Save