diff --git a/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts b/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts index 6bb3fa640..588c2c292 100644 --- a/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts +++ b/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts @@ -43,7 +43,39 @@ export class ImportActivitiesDialog implements OnDestroy { this.dialogRef.close(); } - public onImport() { + public async onImportActivities() { + try { + await this.importActivitiesService.importSelectedActivities( + this.selectedActivities + ); + + this.snackBar.open( + '✅ ' + $localize`Import has been completed`, + undefined, + { + duration: 3000 + } + ); + } catch (error) { + this.snackBar.open( + $localize`Oops! Something went wrong.` + + ' ' + + $localize`Please try again later.`, + $localize`Okay`, + { duration: 3000 } + ); + } finally { + this.dialogRef.close(); + } + } + + public onReset() { + this.details = []; + this.errorMessages = []; + this.isFileSelected = false; + } + + public onSelectFile() { const input = document.createElement('input'); input.accept = 'application/JSON, .csv'; input.type = 'file'; @@ -136,38 +168,6 @@ export class ImportActivitiesDialog implements OnDestroy { this.selectedActivities = data; } - public async importActivities() { - try { - await this.importActivitiesService.importSelectedActivities( - this.selectedActivities - ); - - this.snackBar.open( - '✅ ' + $localize`Import has been completed`, - undefined, - { - duration: 3000 - } - ); - } catch (error) { - this.snackBar.open( - $localize`Oops! Something went wrong.` + - ' ' + - $localize`Please try again later.`, - $localize`Okay`, - { duration: 3000 } - ); - } finally { - this.dialogRef.close(); - } - } - - public onReset() { - this.details = []; - this.errorMessages = []; - this.isFileSelected = false; - } - public ngOnDestroy() { this.unsubscribeSubject.next(); this.unsubscribeSubject.complete(); 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 1854d111b..7b5ad648b 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 @@ -12,7 +12,7 @@ class="py-3" color="primary" mat-stroked-button - (click)="onImport()" + (click)="onSelectFile()" > Choose File @@ -89,7 +89,7 @@ color="primary" mat-flat-button [disabled]="!selectedActivities?.length" - (click)="importActivities()" + (click)="onImportActivities()" > Import 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 3eb0cb01b..305a69e85 100644 --- a/libs/ui/src/lib/activities-table/activities-table.component.html +++ b/libs/ui/src/lib/activities-table/activities-table.component.html @@ -20,7 +20,7 @@ diff --git a/libs/ui/src/lib/activities-table/activities-table.component.ts b/libs/ui/src/lib/activities-table/activities-table.component.ts index 9ab134052..0b47fe3bf 100644 --- a/libs/ui/src/lib/activities-table/activities-table.component.ts +++ b/libs/ui/src/lib/activities-table/activities-table.component.ts @@ -14,7 +14,6 @@ import { MatSort } from '@angular/material/sort'; import { MatTableDataSource } from '@angular/material/table'; import { Router } from '@angular/router'; import { Activity } from '@ghostfolio/api/app/order/interfaces/activities.interface'; -import { CreateOrderDto } from '@ghostfolio/api/app/order/create-order.dto'; import { DEFAULT_PAGE_SIZE } from '@ghostfolio/common/config'; import { getDateFormatString } from '@ghostfolio/common/helper'; import { Filter, UniqueAsset } from '@ghostfolio/common/interfaces'; @@ -59,7 +58,6 @@ export class ActivitiesTableComponent implements OnChanges, OnDestroy { public allFilters: Filter[]; public dataSource: MatTableDataSource = new MatTableDataSource(); - public selectedRows = new SelectionModel(true, []); public defaultDateFormat: string; public displayedColumns = []; public endOfToday = endOfToday(); @@ -72,6 +70,7 @@ export class ActivitiesTableComponent implements OnChanges, OnDestroy { public placeholder = ''; public routeQueryParams: Subscription; public searchKeywords: string[] = []; + public selectedRows = new SelectionModel(true, []); public totalFees: number; public totalValue: number; @@ -92,14 +91,6 @@ export class ActivitiesTableComponent implements OnChanges, OnDestroy { return numSelectedRows === numTotalRows; } - public toggleAll() { - this.areAllRowsSelected() - ? this.selectedRows.clear() - : this.dataSource.data.forEach((row) => this.selectedRows.select(row)); - - this.selectedActivities.emit(this.selectedRows.selected); - } - public ngOnChanges() { this.displayedColumns = [ 'select', @@ -178,6 +169,21 @@ export class ActivitiesTableComponent implements OnChanges, OnDestroy { this.totalValue = this.getTotalValue(); } + public onClickActivity(activity: Activity) { + if (this.showCheckbox) { + this.selectedRows.toggle(activity); + } else if ( + this.hasPermissionToOpenDetails && + !activity.isDraft && + activity.type !== 'ITEM' + ) { + this.onOpenPositionDialog({ + dataSource: activity.SymbolProfile.dataSource, + symbol: activity.SymbolProfile.symbol + }); + } + } + public onCloneActivity(aActivity: OrderWithAccount) { this.activityToClone.emit(aActivity); } @@ -234,25 +240,18 @@ export class ActivitiesTableComponent implements OnChanges, OnDestroy { }); } - public onClickActivity(activity: Activity) { - if (this.showCheckbox) { - this.selectedRows.toggle(activity); - } else if ( - this.hasPermissionToOpenDetails && - !activity.isDraft && - activity.type !== 'ITEM' - ) { - this.onOpenPositionDialog({ - dataSource: activity.SymbolProfile.dataSource, - symbol: activity.SymbolProfile.symbol - }); - } - } - public onUpdateActivity(aActivity: OrderWithAccount) { this.activityToUpdate.emit(aActivity); } + public toggleAllRows() { + this.areAllRowsSelected() + ? this.selectedRows.clear() + : this.dataSource.data.forEach((row) => this.selectedRows.select(row)); + + this.selectedActivities.emit(this.selectedRows.selected); + } + public ngOnDestroy() { this.unsubscribeSubject.next(); this.unsubscribeSubject.complete();