diff --git a/apps/api/src/app/activities/activities.controller.ts b/apps/api/src/app/activities/activities.controller.ts index ca8ef36b8..01e947905 100644 --- a/apps/api/src/app/activities/activities.controller.ts +++ b/apps/api/src/app/activities/activities.controller.ts @@ -122,7 +122,7 @@ export class ActivitiesController { @Query('symbol') filterBySymbol?: string, @Query('tags') filterByTags?: string, @Query('take') take?: number, - @Query('types') filterByTypes?: string + @Query('activityTypes') filterByTypes?: string ): Promise { const types = filterByTypes ? (splitStringToArray(filterByTypes) as ActivityType[]) diff --git a/apps/api/src/app/export/export.controller.ts b/apps/api/src/app/export/export.controller.ts index 95f32ebb3..89fde83b3 100644 --- a/apps/api/src/app/export/export.controller.ts +++ b/apps/api/src/app/export/export.controller.ts @@ -39,9 +39,12 @@ export class ExportController { @Query('dataSource') filterByDataSource?: string, @Query('symbol') filterBySymbol?: string, @Query('tags') filterByTags?: string, - @Query('types') filterByTypes?: string + @Query('activityTypes') filterByTypes?: string ): Promise { const activityIds = filterByActivityIds?.split(',') ?? []; + const activityTypes = filterByTypes + ? (splitStringToArray(filterByTypes) as ActivityType[]) + : undefined; const filters = this.apiService.buildFiltersFromQueryParams({ filterByAccounts, filterByAssetClasses, @@ -49,14 +52,11 @@ export class ExportController { filterBySymbol, filterByTags }); - const types = filterByTypes - ? (splitStringToArray(filterByTypes) as ActivityType[]) - : undefined; return this.exportService.export({ activityIds, filters, - types, + activityTypes: activityTypes, userId: this.request.user.id, userSettings: this.request.user.settings.settings }); diff --git a/apps/api/src/app/export/export.service.ts b/apps/api/src/app/export/export.service.ts index 82bb518dd..ee469d4b6 100644 --- a/apps/api/src/app/export/export.service.ts +++ b/apps/api/src/app/export/export.service.ts @@ -24,14 +24,14 @@ export class ExportService { public async export({ activityIds, + activityTypes, filters, - types, userId, userSettings }: { activityIds?: string[]; filters?: Filter[]; - types?: ActivityType[]; + activityTypes?: ActivityType[]; userId: string; userSettings: UserSettings; }): Promise { @@ -42,7 +42,7 @@ export class ExportService { let { activities } = await this.activitiesService.getActivities({ filters, - types, + types: activityTypes, userId, includeDrafts: true, sortColumn: 'date', diff --git a/apps/client/src/app/pages/portfolio/activities/activities-page.component.ts b/apps/client/src/app/pages/portfolio/activities/activities-page.component.ts index d3d6b7ae1..74eb33f39 100644 --- a/apps/client/src/app/pages/portfolio/activities/activities-page.component.ts +++ b/apps/client/src/app/pages/portfolio/activities/activities-page.component.ts @@ -54,13 +54,12 @@ import { ImportActivitiesDialogParams } from './import-activities-dialog/interfa templateUrl: './activities-page.html' }) export class GfActivitiesPageComponent implements OnInit { - public activityTypeFilter: string[] = []; + public activityTypesFilter: string[] = []; public dataSource: MatTableDataSource; public deviceType: string; public hasImpersonationId: boolean; public hasPermissionToCreateActivity: boolean; public hasPermissionToDeleteActivity: boolean; - public hasPermissionToFilterByType = true; public pageIndex = 0; public pageSize = DEFAULT_PAGE_SIZE; public routeQueryParams: Subscription; @@ -148,8 +147,8 @@ export class GfActivitiesPageComponent implements OnInit { sortColumn: this.sortColumn, sortDirection: this.sortDirection, take: this.pageSize, - types: this.activityTypeFilter.length - ? this.activityTypeFilter + activityTypes: this.activityTypesFilter.length + ? this.activityTypesFilter : undefined }) .pipe(takeUntilDestroyed(this.destroyRef)) @@ -224,8 +223,8 @@ export class GfActivitiesPageComponent implements OnInit { if (!activityIds) { fetchExportParams = { filters: this.userService.getFilters(), - types: this.activityTypeFilter.length - ? this.activityTypeFilter + activityTypes: this.activityTypesFilter.length + ? this.activityTypesFilter : undefined }; } @@ -320,16 +319,17 @@ export class GfActivitiesPageComponent implements OnInit { }); } - public onTypesFilterChanged(types: string[]) { - this.activityTypeFilter = types; + public onSortChanged({ active, direction }: Sort) { this.pageIndex = 0; + this.sortColumn = active; + this.sortDirection = direction; + this.fetchActivities(); } - public onSortChanged({ active, direction }: Sort) { + public onTypesFilterChanged(types: string[]) { + this.activityTypesFilter = types; this.pageIndex = 0; - this.sortColumn = active; - this.sortDirection = direction; this.fetchActivities(); } diff --git a/apps/client/src/app/pages/portfolio/activities/activities-page.html b/apps/client/src/app/pages/portfolio/activities/activities-page.html index 5f67f0cee..2a72dcfd2 100644 --- a/apps/client/src/app/pages/portfolio/activities/activities-page.html +++ b/apps/client/src/app/pages/portfolio/activities/activities-page.html @@ -10,7 +10,7 @@ [hasPermissionToCreateActivity]="hasPermissionToCreateActivity" [hasPermissionToDeleteActivity]="hasPermissionToDeleteActivity" [hasPermissionToExportActivities]="!hasImpersonationId" - [hasPermissionToFilterByType]="hasPermissionToFilterByType" + [hasPermissionToFilterByType]="user?.settings?.isExperimentalFeatures" [locale]="user?.settings?.locale" [pageIndex]="pageIndex" [pageSize]="pageSize" diff --git a/libs/common/src/lib/helper.ts b/libs/common/src/lib/helper.ts index 79778df9a..6e5e8e6a4 100644 --- a/libs/common/src/lib/helper.ts +++ b/libs/common/src/lib/helper.ts @@ -463,10 +463,6 @@ export function resolveFearAndGreedIndex(aValue: number) { } } -export function splitStringToArray(aString?: string): string[] { - return aString?.split(',') ?? []; -} - export function resolveMarketCondition( aMarketCondition: Benchmark['marketCondition'] ) { @@ -478,3 +474,7 @@ export function resolveMarketCondition( return { emoji: undefined }; } } + +export function splitStringToArray(aString?: string): string[] { + return aString?.split(',') ?? []; +} diff --git a/libs/ui/src/lib/activities-table/activities-table.component.html b/libs/ui/src/lib/activities-table/activities-table.component.html index 838faa161..18a78cef4 100644 --- a/libs/ui/src/lib/activities-table/activities-table.component.html +++ b/libs/ui/src/lib/activities-table/activities-table.component.html @@ -1,4 +1,4 @@ -
+
@if (hasPermissionToFilterByType) { @@ -18,7 +18,7 @@
@if (hasPermissionToCreateActivity) { -
+