Browse Source

Select activities to be imported

pull/1531/head
yksolanki9 3 years ago
parent
commit
1b1d1b45a3
  1. 22
      apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
  2. 8
      apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html
  3. 7
      libs/ui/src/lib/activities-table/activities-table.component.ts

22
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts

@ -29,6 +29,7 @@ export class ImportActivitiesDialog implements OnDestroy {
public details: any[] = []; public details: any[] = [];
public errorMessages: string[] = []; public errorMessages: string[] = [];
public importComplete = false; public importComplete = false;
public selectedActivities: CreateOrderDto[] = [];
private unsubscribeSubject = new Subject<void>(); private unsubscribeSubject = new Subject<void>();
@ -105,6 +106,7 @@ export class ImportActivitiesDialog implements OnDestroy {
userAccounts: this.data.user.accounts userAccounts: this.data.user.accounts
}); });
this.snackBar.dismiss();
this.handleImportSuccess(); this.handleImportSuccess();
} catch (error) { } catch (error) {
console.error(error); console.error(error);
@ -133,6 +135,26 @@ export class ImportActivitiesDialog implements OnDestroy {
input.click(); input.click();
} }
public importActivities(data) {
this.selectedActivities = data;
}
public async finalImport() {
// this.importJson({ content: activities })
await this.importActivitiesService.importJson({
content: this.selectedActivities
});
this.snackBar.open(
'✅ ' + $localize`Import has been completed`,
undefined,
{
duration: 3000
}
);
this.dialogRef.close();
}
public onReset() { public onReset() {
this.details = []; this.details = [];
this.errorMessages = []; this.errorMessages = [];

8
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html

@ -19,6 +19,7 @@
[locale]="data?.user?.settings?.locale" [locale]="data?.user?.settings?.locale"
[showActions]="false" [showActions]="false"
[showSymbolColumn]="false" [showSymbolColumn]="false"
(selectedActivities)="importActivities($event)"
></gf-activities-table> ></gf-activities-table>
</ng-container> </ng-container>
<ng-container *ngIf="errorMessages.length === 0 && !importComplete"> <ng-container *ngIf="errorMessages.length === 0 && !importComplete">
@ -79,6 +80,13 @@
</ng-container> </ng-container>
</div> </div>
<div *ngIf="importComplete" class="justify-content-end" mat-dialog-actions>
<button i18n mat-button (click)="onCancel()">Cancel</button>
<button color="primary" mat-flat-button (click)="finalImport()">
<ng-container i18n>Import</ng-container>
</button>
</div>
<gf-dialog-footer <gf-dialog-footer
mat-dialog-actions mat-dialog-actions
[deviceType]="data.deviceType" [deviceType]="data.deviceType"

7
libs/ui/src/lib/activities-table/activities-table.component.ts

@ -14,6 +14,7 @@ import { MatSort } from '@angular/material/sort';
import { MatTableDataSource } from '@angular/material/table'; import { MatTableDataSource } from '@angular/material/table';
import { Router } from '@angular/router'; import { Router } from '@angular/router';
import { Activity } from '@ghostfolio/api/app/order/interfaces/activities.interface'; 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 { DEFAULT_PAGE_SIZE } from '@ghostfolio/common/config';
import { getDateFormatString } from '@ghostfolio/common/helper'; import { getDateFormatString } from '@ghostfolio/common/helper';
import { Filter, UniqueAsset } from '@ghostfolio/common/interfaces'; import { Filter, UniqueAsset } from '@ghostfolio/common/interfaces';
@ -153,6 +154,12 @@ export class ActivitiesTableComponent implements OnChanges, OnDestroy {
} }
} }
ngOnInit() {
this.selectedRows.changed.subscribe((selectedRows) => {
this.selectedActivities.emit(selectedRows.source.selected);
});
}
public onChangePage(page: PageEvent) { public onChangePage(page: PageEvent) {
this.pageIndex = page.pageIndex; this.pageIndex = page.pageIndex;

Loading…
Cancel
Save