From 61f0da35bc02177dbcd5e8eaa7f58a0e023544a2 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Fri, 10 May 2024 08:51:34 +0200 Subject: [PATCH] Feature/disable delete all activities if filters are active (#3389) * Disable delete all activities button if filters are active * Update changelog --- CHANGELOG.md | 6 ++++++ .../account-detail-dialog/account-detail-dialog.html | 1 + .../position-detail-dialog.html | 1 + .../activities/activities-page.component.ts | 7 ++++--- .../pages/portfolio/activities/activities-page.html | 1 + .../import-activities-dialog.html | 1 + apps/client/src/app/services/data.service.ts | 12 ++++++------ apps/client/src/app/services/user/user.service.ts | 4 ++++ .../activities-table/activities-table.component.html | 7 ++++++- .../activities-table/activities-table.component.ts | 1 + 10 files changed, 31 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 64b3e546..75c6a2c9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## Unreleased + +### Changed + +- Disabled the button to delete all activities on the portfolio activities page if there are active filters + ## 2.80.0 - 2024-05-08 ### Added diff --git a/apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html b/apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html index e092cce6..0f0091ce 100644 --- a/apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html +++ b/apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html @@ -94,6 +94,7 @@ [dataSource]="dataSource" [deviceType]="data.deviceType" [hasPermissionToCreateActivity]="false" + [hasPermissionToDeleteActivity]="false" [hasPermissionToExportActivities]=" !data.hasImpersonationId && !user.settings.isRestrictedView " diff --git a/apps/client/src/app/components/position-detail-dialog/position-detail-dialog.html b/apps/client/src/app/components/position-detail-dialog/position-detail-dialog.html index 9ae432a3..19d91692 100644 --- a/apps/client/src/app/components/position-detail-dialog/position-detail-dialog.html +++ b/apps/client/src/app/components/position-detail-dialog/position-detail-dialog.html @@ -335,6 +335,7 @@ [dataSource]="dataSource" [deviceType]="data.deviceType" [hasPermissionToCreateActivity]="false" + [hasPermissionToDeleteActivity]="false" [hasPermissionToExportActivities]=" !data.hasImpersonationId && !user?.settings?.isRestrictedView " 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 f75bc260..618b2add 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 @@ -155,7 +155,7 @@ export class ActivitiesPageComponent implements OnDestroy, OnInit { public onDeleteActivity(aId: string) { this.dataService - .deleteOrder(aId) + .deleteActivity(aId) .pipe(takeUntil(this.unsubscribeSubject)) .subscribe({ next: () => { @@ -171,7 +171,7 @@ export class ActivitiesPageComponent implements OnDestroy, OnInit { if (confirmation) { this.dataService - .deleteAllOrders() + .deleteAllActivities() .pipe(takeUntil(this.unsubscribeSubject)) .subscribe({ next: () => { @@ -400,6 +400,7 @@ export class ActivitiesPageComponent implements OnDestroy, OnInit { hasPermission(this.user.permissions, permissions.createOrder); this.hasPermissionToDeleteActivity = !this.hasImpersonationId && - hasPermission(this.user.permissions, permissions.deleteOrder); + hasPermission(this.user.permissions, permissions.deleteOrder) && + !this.userService.hasFilters(); } } 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 8872470b..c16d8a68 100644 --- a/apps/client/src/app/pages/portfolio/activities/activities-page.html +++ b/apps/client/src/app/pages/portfolio/activities/activities-page.html @@ -7,6 +7,7 @@ [dataSource]="dataSource" [deviceType]="deviceType" [hasPermissionToCreateActivity]="hasPermissionToCreateActivity" + [hasPermissionToDeleteActivity]="hasPermissionToDeleteActivity" [hasPermissionToExportActivities]="!hasImpersonationId" [locale]="user?.settings?.locale" [pageIndex]="pageIndex" 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 3e0a00e9..99c3fe99 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 @@ -126,6 +126,7 @@ [dataSource]="dataSource" [deviceType]="data?.deviceType" [hasPermissionToCreateActivity]="false" + [hasPermissionToDeleteActivity]="false" [hasPermissionToExportActivities]="false" [hasPermissionToFilter]="false" [hasPermissionToOpenDetails]="false" diff --git a/apps/client/src/app/services/data.service.ts b/apps/client/src/app/services/data.service.ts index 4f8615e4..bfa4cb71 100644 --- a/apps/client/src/app/services/data.service.ts +++ b/apps/client/src/app/services/data.service.ts @@ -256,18 +256,18 @@ export class DataService { return this.http.delete(`/api/v1/account-balance/${aId}`); } - public deleteAllOrders() { - return this.http.delete(`/api/v1/order/`); + public deleteActivity(aId: string) { + return this.http.delete(`/api/v1/order/${aId}`); + } + + public deleteAllActivities() { + return this.http.delete(`/api/v1/order`); } public deleteBenchmark({ dataSource, symbol }: UniqueAsset) { return this.http.delete(`/api/v1/benchmark/${dataSource}/${symbol}`); } - public deleteOrder(aId: string) { - return this.http.delete(`/api/v1/order/${aId}`); - } - public deleteUser(aId: string) { return this.http.delete(`/api/v1/user/${aId}`); } diff --git a/apps/client/src/app/services/user/user.service.ts b/apps/client/src/app/services/user/user.service.ts index b1c98bde..ed389e81 100644 --- a/apps/client/src/app/services/user/user.service.ts +++ b/apps/client/src/app/services/user/user.service.ts @@ -75,6 +75,10 @@ export class UserService extends ObservableStore { return filters; } + public hasFilters() { + return this.getFilters().length > 0; + } + public remove() { this.setState({ user: null }, UserStoreActions.RemoveUser); } 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 dfa17a28..7aa5d0ee 100644 --- a/libs/ui/src/lib/activities-table/activities-table.component.html +++ b/libs/ui/src/lib/activities-table/activities-table.component.html @@ -58,6 +58,7 @@ -