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 3f862e4bd..9a6c871e5 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 @@ -10,7 +10,7 @@ import { PositionDetailDialog } from '@ghostfolio/client/components/position/pos import { DataService } from '@ghostfolio/client/services/data.service'; import { IcsService } from '@ghostfolio/client/services/ics/ics.service'; import { ImpersonationStorageService } from '@ghostfolio/client/services/impersonation-storage.service'; -import { ImportTransactionsService } from '@ghostfolio/client/services/import-transactions.service'; +import { ImportActivitiesService } from '@ghostfolio/client/services/import-activities.service'; import { UserService } from '@ghostfolio/client/services/user/user.service'; import { downloadAsFile } from '@ghostfolio/common/helper'; import { User } from '@ghostfolio/common/interfaces'; @@ -23,7 +23,7 @@ import { Subject, Subscription } from 'rxjs'; import { takeUntil } from 'rxjs/operators'; import { CreateOrUpdateActivityDialog } from './create-or-update-activity-dialog/create-or-update-activity-dialog.component'; -import { ImportTransactionDialog } from './import-transaction-dialog/import-transaction-dialog.component'; +import { ImportActivitiesDialog } from './import-activities-dialog/import-activities-dialog.component'; @Component({ host: { class: 'page' }, @@ -36,9 +36,9 @@ export class ActivitiesPageComponent implements OnDestroy, OnInit { public defaultAccountId: string; public deviceType: string; public hasImpersonationId: boolean; - public hasPermissionToCreateOrder: boolean; - public hasPermissionToDeleteOrder: boolean; - public hasPermissionToImportOrders: boolean; + public hasPermissionToCreateActivity: boolean; + public hasPermissionToDeleteActivity: boolean; + public hasPermissionToImportActivities: boolean; public routeQueryParams: Subscription; public user: User; @@ -51,7 +51,7 @@ export class ActivitiesPageComponent implements OnDestroy, OnInit { private dialog: MatDialog, private icsService: IcsService, private impersonationStorageService: ImpersonationStorageService, - private importTransactionsService: ImportTransactionsService, + private importActivitiesService: ImportActivitiesService, private route: ActivatedRoute, private router: Router, private snackBar: MatSnackBar, @@ -61,14 +61,14 @@ export class ActivitiesPageComponent implements OnDestroy, OnInit { .pipe(takeUntil(this.unsubscribeSubject)) .subscribe((params) => { if (params['createDialog']) { - this.openCreateTransactionDialog(); + this.openCreateActivityDialog(); } else if (params['editDialog']) { if (this.activities) { - const transaction = this.activities.find(({ id }) => { - return id === params['transactionId']; + const activity = this.activities.find(({ id }) => { + return id === params['activityId']; }); - this.openUpdateTransactionDialog(transaction); + this.openUpdateActivityDialog(activity); } else { this.router.navigate(['.'], { relativeTo: this.route }); } @@ -96,7 +96,7 @@ export class ActivitiesPageComponent implements OnDestroy, OnInit { .subscribe((aId) => { this.hasImpersonationId = !!aId; - this.hasPermissionToImportOrders = + this.hasPermissionToImportActivities = hasPermission(globalPermissions, permissions.enableImport) && !this.hasImpersonationId; }); @@ -121,7 +121,10 @@ export class ActivitiesPageComponent implements OnDestroy, OnInit { .subscribe(({ activities }) => { this.activities = activities; - if (this.hasPermissionToCreateOrder && this.activities?.length <= 0) { + if ( + this.hasPermissionToCreateActivity && + this.activities?.length <= 0 + ) { this.router.navigate([], { queryParams: { createDialog: true } }); } @@ -129,11 +132,11 @@ export class ActivitiesPageComponent implements OnDestroy, OnInit { }); } - public onCloneTransaction(aActivity: Activity) { - this.openCreateTransactionDialog(aActivity); + public onCloneActivity(aActivity: Activity) { + this.openCreateActivityDialog(aActivity); } - public onDeleteTransaction(aId: string) { + public onDeleteActivity(aId: string) { this.dataService .deleteOrder(aId) .pipe(takeUntil(this.unsubscribeSubject)) @@ -221,7 +224,7 @@ export class ActivitiesPageComponent implements OnDestroy, OnInit { } try { - await this.importTransactionsService.importJson({ + await this.importActivitiesService.importJson({ content: content.activities }); @@ -234,7 +237,7 @@ export class ActivitiesPageComponent implements OnDestroy, OnInit { return; } else if (file.name.endsWith('.csv')) { try { - await this.importTransactionsService.importCsv({ + await this.importActivitiesService.importCsv({ fileContent, userAccounts: this.user.accounts }); @@ -267,13 +270,13 @@ export class ActivitiesPageComponent implements OnDestroy, OnInit { input.click(); } - public onUpdateTransaction(aTransaction: OrderModel) { + public onUpdateActivity(aActivity: OrderModel) { this.router.navigate([], { - queryParams: { editDialog: true, transactionId: aTransaction.id } + queryParams: { activityId: aActivity.id, editDialog: true } }); } - public openUpdateTransactionDialog(activity: Activity): void { + public openUpdateActivityDialog(activity: Activity): void { const dialogRef = this.dialog.open(CreateOrUpdateActivityDialog, { data: { activity, @@ -321,7 +324,7 @@ export class ActivitiesPageComponent implements OnDestroy, OnInit { }) { this.snackBar.dismiss(); - this.dialog.open(ImportTransactionDialog, { + this.dialog.open(ImportActivitiesDialog, { data: { activities, deviceType: this.deviceType, @@ -343,7 +346,7 @@ export class ActivitiesPageComponent implements OnDestroy, OnInit { ); } - private openCreateTransactionDialog(aActivity?: Activity): void { + private openCreateActivityDialog(aActivity?: Activity): void { this.userService .get() .pipe(takeUntil(this.unsubscribeSubject)) @@ -438,11 +441,11 @@ export class ActivitiesPageComponent implements OnDestroy, OnInit { return account.isDefault; })?.id; - this.hasPermissionToCreateOrder = hasPermission( + this.hasPermissionToCreateActivity = hasPermission( this.user.permissions, permissions.createOrder ); - this.hasPermissionToDeleteOrder = hasPermission( + this.hasPermissionToDeleteActivity = 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 ee2e4181c..cc12176b6 100644 --- a/apps/client/src/app/pages/portfolio/activities/activities-page.html +++ b/apps/client/src/app/pages/portfolio/activities/activities-page.html @@ -6,14 +6,14 @@ [activities]="activities" [baseCurrency]="user?.settings?.baseCurrency" [deviceType]="deviceType" - [hasPermissionToCreateActivity]="hasPermissionToCreateOrder" + [hasPermissionToCreateActivity]="hasPermissionToCreateActivity" [hasPermissionToExportActivities]="!hasImpersonationId" - [hasPermissionToImportActivities]="hasPermissionToImportOrders" + [hasPermissionToImportActivities]="hasPermissionToImportActivities" [locale]="user?.settings?.locale" - [showActions]="!hasImpersonationId && hasPermissionToDeleteOrder && !user.settings.isRestrictedView" - (activityDeleted)="onDeleteTransaction($event)" - (activityToClone)="onCloneTransaction($event)" - (activityToUpdate)="onUpdateTransaction($event)" + [showActions]="!hasImpersonationId && hasPermissionToDeleteActivity && !user.settings.isRestrictedView" + (activityDeleted)="onDeleteActivity($event)" + (activityToClone)="onCloneActivity($event)" + (activityToUpdate)="onUpdateActivity($event)" (export)="onExport($event)" (exportDrafts)="onExportDrafts($event)" (import)="onImport()" @@ -22,7 +22,7 @@
(); public constructor( - @Inject(MAT_DIALOG_DATA) public data: ImportTransactionDialogParams, - public dialogRef: MatDialogRef + @Inject(MAT_DIALOG_DATA) public data: ImportActivitiesDialogParams, + public dialogRef: MatDialogRef ) {} public ngOnInit() { diff --git a/apps/client/src/app/pages/portfolio/activities/import-transaction-dialog/import-transaction-dialog.html b/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html similarity index 100% rename from apps/client/src/app/pages/portfolio/activities/import-transaction-dialog/import-transaction-dialog.html rename to apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html diff --git a/apps/client/src/app/pages/portfolio/activities/import-transaction-dialog/import-transaction-dialog.module.ts b/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.module.ts similarity index 80% rename from apps/client/src/app/pages/portfolio/activities/import-transaction-dialog/import-transaction-dialog.module.ts rename to apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.module.ts index 6d932cb8c..d28b38f6f 100644 --- a/apps/client/src/app/pages/portfolio/activities/import-transaction-dialog/import-transaction-dialog.module.ts +++ b/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.module.ts @@ -6,10 +6,10 @@ import { MatExpansionModule } from '@angular/material/expansion'; import { GfDialogFooterModule } from '@ghostfolio/client/components/dialog-footer/dialog-footer.module'; import { GfDialogHeaderModule } from '@ghostfolio/client/components/dialog-header/dialog-header.module'; -import { ImportTransactionDialog } from './import-transaction-dialog.component'; +import { ImportActivitiesDialog } from './import-activities-dialog.component'; @NgModule({ - declarations: [ImportTransactionDialog], + declarations: [ImportActivitiesDialog], imports: [ CommonModule, GfDialogFooterModule, @@ -20,4 +20,4 @@ import { ImportTransactionDialog } from './import-transaction-dialog.component'; ], schemas: [CUSTOM_ELEMENTS_SCHEMA] }) -export class GfImportTransactionDialogModule {} +export class GfImportActivitiesDialogModule {} diff --git a/apps/client/src/app/pages/portfolio/activities/import-transaction-dialog/import-transaction-dialog.scss b/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.scss similarity index 100% rename from apps/client/src/app/pages/portfolio/activities/import-transaction-dialog/import-transaction-dialog.scss rename to apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.scss diff --git a/apps/client/src/app/pages/portfolio/activities/import-transaction-dialog/interfaces/interfaces.ts b/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/interfaces/interfaces.ts similarity index 57% rename from apps/client/src/app/pages/portfolio/activities/import-transaction-dialog/interfaces/interfaces.ts rename to apps/client/src/app/pages/portfolio/activities/import-activities-dialog/interfaces/interfaces.ts index 123238544..21a7b8d35 100644 --- a/apps/client/src/app/pages/portfolio/activities/import-transaction-dialog/interfaces/interfaces.ts +++ b/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/interfaces/interfaces.ts @@ -1,4 +1,4 @@ -export interface ImportTransactionDialogParams { +export interface ImportActivitiesDialogParams { activities: any[]; deviceType: string; messages: string[]; diff --git a/apps/client/src/app/services/import-transactions.service.ts b/apps/client/src/app/services/import-activities.service.ts similarity index 91% rename from apps/client/src/app/services/import-transactions.service.ts rename to apps/client/src/app/services/import-activities.service.ts index 6a88bb279..f64faf52d 100644 --- a/apps/client/src/app/services/import-transactions.service.ts +++ b/apps/client/src/app/services/import-activities.service.ts @@ -11,7 +11,7 @@ import { catchError } from 'rxjs/operators'; @Injectable({ providedIn: 'root' }) -export class ImportTransactionsService { +export class ImportActivitiesService { private static ACCOUNT_KEYS = ['account', 'accountid']; private static CURRENCY_KEYS = ['ccy', 'currency']; private static DATA_SOURCE_KEYS = ['datasource']; @@ -90,7 +90,7 @@ export class ImportTransactionsService { }) { item = this.lowercaseKeys(item); - for (const key of ImportTransactionsService.ACCOUNT_KEYS) { + for (const key of ImportActivitiesService.ACCOUNT_KEYS) { if (item[key]) { return userAccounts.find((account) => { return ( @@ -115,7 +115,7 @@ export class ImportTransactionsService { }) { item = this.lowercaseKeys(item); - for (const key of ImportTransactionsService.CURRENCY_KEYS) { + for (const key of ImportActivitiesService.CURRENCY_KEYS) { if (item[key]) { return item[key]; } @@ -130,7 +130,7 @@ export class ImportTransactionsService { private parseDataSource({ item }: { item: any }) { item = this.lowercaseKeys(item); - for (const key of ImportTransactionsService.DATA_SOURCE_KEYS) { + for (const key of ImportActivitiesService.DATA_SOURCE_KEYS) { if (item[key]) { return DataSource[item[key].toUpperCase()]; } @@ -151,7 +151,7 @@ export class ImportTransactionsService { item = this.lowercaseKeys(item); let date: string; - for (const key of ImportTransactionsService.DATE_KEYS) { + for (const key of ImportActivitiesService.DATE_KEYS) { if (item[key]) { if (isMatch(item[key], 'dd-MM-yyyy')) { date = parse(item[key], 'dd-MM-yyyy', new Date()).toISOString(); @@ -186,7 +186,7 @@ export class ImportTransactionsService { }) { item = this.lowercaseKeys(item); - for (const key of ImportTransactionsService.FEE_KEYS) { + for (const key of ImportActivitiesService.FEE_KEYS) { if (isFinite(item[key])) { return item[key]; } @@ -209,7 +209,7 @@ export class ImportTransactionsService { }) { item = this.lowercaseKeys(item); - for (const key of ImportTransactionsService.QUANTITY_KEYS) { + for (const key of ImportActivitiesService.QUANTITY_KEYS) { if (isFinite(item[key])) { return item[key]; } @@ -232,7 +232,7 @@ export class ImportTransactionsService { }) { item = this.lowercaseKeys(item); - for (const key of ImportTransactionsService.SYMBOL_KEYS) { + for (const key of ImportActivitiesService.SYMBOL_KEYS) { if (item[key]) { return item[key]; } @@ -255,7 +255,7 @@ export class ImportTransactionsService { }) { item = this.lowercaseKeys(item); - for (const key of ImportTransactionsService.TYPE_KEYS) { + for (const key of ImportActivitiesService.TYPE_KEYS) { if (item[key]) { switch (item[key].toLowerCase()) { case 'buy': @@ -289,7 +289,7 @@ export class ImportTransactionsService { }) { item = this.lowercaseKeys(item); - for (const key of ImportTransactionsService.UNIT_PRICE_KEYS) { + for (const key of ImportActivitiesService.UNIT_PRICE_KEYS) { if (isFinite(item[key])) { return item[key]; }