From 11cd3954842f13032b6a3b56db67d0f94de2c757 Mon Sep 17 00:00:00 2001 From: Thomas <4159106+dtslvr@users.noreply.github.com> Date: Tue, 14 Feb 2023 11:08:41 +0100 Subject: [PATCH] Improve usability of import activities action --- apps/api/src/app/import/import.controller.ts | 7 ++- apps/api/src/app/info/info.service.ts | 4 -- .../api/src/services/configuration.service.ts | 1 - .../interfaces/environment.interface.ts | 1 - .../account-detail-dialog.html | 1 - .../position-detail-dialog.html | 1 - .../activities/activities-page.component.ts | 19 ++---- .../portfolio/activities/activities-page.html | 1 - .../import-activities-dialog.html | 1 - .../activities-table.component.html | 61 +++++++++++++++++-- .../activities-table.component.ts | 1 - 11 files changed, 67 insertions(+), 31 deletions(-) diff --git a/apps/api/src/app/import/import.controller.ts b/apps/api/src/app/import/import.controller.ts index 93724bf02..306c722a7 100644 --- a/apps/api/src/app/import/import.controller.ts +++ b/apps/api/src/app/import/import.controller.ts @@ -40,8 +40,11 @@ export class ImportController { @Query('dryRun') isDryRun?: boolean ): Promise { if ( - !this.configurationService.get('ENABLE_FEATURE_IMPORT') || - !hasPermission(this.request.user.permissions, permissions.createAccount) + !hasPermission( + this.request.user.permissions, + permissions.createAccount + ) || + !hasPermission(this.request.user.permissions, permissions.createOrder) ) { throw new HttpException( getReasonPhrase(StatusCodes.FORBIDDEN), diff --git a/apps/api/src/app/info/info.service.ts b/apps/api/src/app/info/info.service.ts index 911243057..a13e3395f 100644 --- a/apps/api/src/app/info/info.service.ts +++ b/apps/api/src/app/info/info.service.ts @@ -72,10 +72,6 @@ export class InfoService { globalPermissions.push(permissions.enableFearAndGreedIndex); } - if (this.configurationService.get('ENABLE_FEATURE_IMPORT')) { - globalPermissions.push(permissions.enableImport); - } - if (this.configurationService.get('ENABLE_FEATURE_READ_ONLY_MODE')) { isReadOnlyMode = (await this.propertyService.getByKey( PROPERTY_IS_READ_ONLY_MODE diff --git a/apps/api/src/services/configuration.service.ts b/apps/api/src/services/configuration.service.ts index 78c284522..7ea284a1e 100644 --- a/apps/api/src/services/configuration.service.ts +++ b/apps/api/src/services/configuration.service.ts @@ -24,7 +24,6 @@ export class ConfigurationService { ENABLE_FEATURE_BLOG: bool({ default: false }), ENABLE_FEATURE_CUSTOM_SYMBOLS: bool({ default: false }), ENABLE_FEATURE_FEAR_AND_GREED_INDEX: bool({ default: false }), - ENABLE_FEATURE_IMPORT: bool({ default: true }), ENABLE_FEATURE_READ_ONLY_MODE: bool({ default: false }), ENABLE_FEATURE_SOCIAL_LOGIN: bool({ default: false }), ENABLE_FEATURE_STATISTICS: bool({ default: false }), diff --git a/apps/api/src/services/interfaces/environment.interface.ts b/apps/api/src/services/interfaces/environment.interface.ts index 5ac20b55e..90bb7ce6a 100644 --- a/apps/api/src/services/interfaces/environment.interface.ts +++ b/apps/api/src/services/interfaces/environment.interface.ts @@ -10,7 +10,6 @@ export interface Environment extends CleanedEnvAccessors { ENABLE_FEATURE_BLOG: boolean; ENABLE_FEATURE_CUSTOM_SYMBOLS: boolean; ENABLE_FEATURE_FEAR_AND_GREED_INDEX: boolean; - ENABLE_FEATURE_IMPORT: boolean; ENABLE_FEATURE_READ_ONLY_MODE: boolean; ENABLE_FEATURE_SOCIAL_LOGIN: boolean; ENABLE_FEATURE_STATISTICS: boolean; 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 2a1d4e1d0..201e7a186 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 @@ -40,7 +40,6 @@ [hasPermissionToCreateActivity]="false" [hasPermissionToExportActivities]="true" [hasPermissionToFilter]="false" - [hasPermissionToImportActivities]="false" [hasPermissionToOpenDetails]="false" [locale]="user?.settings?.locale" [showActions]="false" diff --git a/apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html b/apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html index fc5ea0de6..33aebd8f3 100644 --- a/apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html +++ b/apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -239,7 +239,6 @@ [hasPermissionToCreateActivity]="false" [hasPermissionToExportActivities]="true" [hasPermissionToFilter]="false" - [hasPermissionToImportActivities]="false" [hasPermissionToOpenDetails]="false" [locale]="data.locale" [showActions]="false" 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 9465e8468..42c416a63 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 @@ -36,7 +36,6 @@ export class ActivitiesPageComponent implements OnDestroy, OnInit { public hasImpersonationId: boolean; public hasPermissionToCreateActivity: boolean; public hasPermissionToDeleteActivity: boolean; - public hasPermissionToImportActivities: boolean; public routeQueryParams: Subscription; public user: User; @@ -91,10 +90,6 @@ export class ActivitiesPageComponent implements OnDestroy, OnInit { .pipe(takeUntil(this.unsubscribeSubject)) .subscribe((aId) => { this.hasImpersonationId = !!aId; - - this.hasPermissionToImportActivities = - hasPermission(globalPermissions, permissions.enableImport) && - !this.hasImpersonationId; }); this.userService.stateChanged @@ -356,13 +351,11 @@ export class ActivitiesPageComponent implements OnDestroy, OnInit { return account.isDefault; })?.id; - this.hasPermissionToCreateActivity = hasPermission( - this.user.permissions, - permissions.createOrder - ); - this.hasPermissionToDeleteActivity = hasPermission( - this.user.permissions, - permissions.deleteOrder - ); + this.hasPermissionToCreateActivity = + !this.hasImpersonationId && + hasPermission(this.user.permissions, permissions.createOrder); + this.hasPermissionToDeleteActivity = + !this.hasImpersonationId && + hasPermission(this.user.permissions, permissions.deleteOrder); } } 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 d958598c1..b825010e9 100644 --- a/apps/client/src/app/pages/portfolio/activities/activities-page.html +++ b/apps/client/src/app/pages/portfolio/activities/activities-page.html @@ -8,7 +8,6 @@ [deviceType]="deviceType" [hasPermissionToCreateActivity]="hasPermissionToCreateActivity" [hasPermissionToExportActivities]="!hasImpersonationId" - [hasPermissionToImportActivities]="hasPermissionToImportActivities" [locale]="user?.settings?.locale" [showActions]="!hasImpersonationId && hasPermissionToDeleteActivity && !user.settings.isRestrictedView" (activityDeleted)="onDeleteActivity($event)" 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 7f143f908..ec93165c2 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 @@ -70,7 +70,6 @@ [hasPermissionToCreateActivity]="false" [hasPermissionToExportActivities]="false" [hasPermissionToFilter]="false" - [hasPermissionToImportActivities]="false" [hasPermissionToOpenDetails]="false" [locale]="data?.user?.settings?.locale" [showActions]="false" 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 d2dbb95e8..18a63bb7b 100644 --- a/libs/ui/src/lib/activities-table/activities-table.component.html +++ b/libs/ui/src/lib/activities-table/activities-table.component.html @@ -6,6 +6,56 @@ (valueChanged)="filters$.next($event)" > +
+ + + + + + + +
+