Browse Source

Minor refactoring

pull/1531/head
yksolanki9 3 years ago
parent
commit
37916100c8
  1. 66
      apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
  2. 4
      apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html
  3. 2
      libs/ui/src/lib/activities-table/activities-table.component.html
  4. 49
      libs/ui/src/lib/activities-table/activities-table.component.ts

66
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();

4
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()"
>
<ion-icon class="mr-2" name="cloud-upload-outline"></ion-icon>
<span i18n>Choose File</span>
@ -89,7 +89,7 @@
color="primary"
mat-flat-button
[disabled]="!selectedActivities?.length"
(click)="importActivities()"
(click)="onImportActivities()"
>
<ng-container i18n>Import</ng-container>
</button>

2
libs/ui/src/lib/activities-table/activities-table.component.html

@ -20,7 +20,7 @@
<mat-checkbox
[checked]="selectedRows.hasValue() && areAllRowsSelected()"
[indeterminate]="selectedRows.hasValue() && !areAllRowsSelected()"
(change)="$event ? toggleAll() : null"
(change)="$event ? toggleAllRows() : null"
></mat-checkbox>
</th>
<td *matCellDef="let element" class="px-1" mat-cell>

49
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<Activity> = new MatTableDataSource();
public selectedRows = new SelectionModel<Activity>(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<Activity>(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();

Loading…
Cancel
Save