Browse Source

Improve handling of active step

pull/1990/head
Thomas 2 years ago
parent
commit
6da44cbd17
  1. 14
      apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
  2. 23
      apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html

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

@ -120,7 +120,7 @@ export class ImportActivitiesDialog implements OnDestroy {
} }
} }
public onLoadDividends() { public onLoadDividends(aStepper: MatStepper) {
this.uniqueAssetForm.controls['uniqueAsset'].disable(); this.uniqueAssetForm.controls['uniqueAsset'].disable();
const { dataSource, symbol } = const { dataSource, symbol } =
@ -136,14 +136,19 @@ export class ImportActivitiesDialog implements OnDestroy {
this.activities = activities; this.activities = activities;
this.isFileSelected = true; this.isFileSelected = true;
aStepper.next();
this.changeDetectorRef.markForCheck(); this.changeDetectorRef.markForCheck();
}); });
} }
public onReset() { public onReset(aStepper: MatStepper) {
this.details = []; this.details = [];
this.errorMessages = []; this.errorMessages = [];
this.importStep = ImportStep.SELECT_ACTIVITIES;
this.isFileSelected = false; this.isFileSelected = false;
aStepper.reset();
} }
public onImportStepChange(event: StepperSelectionEvent) { public onImportStepChange(event: StepperSelectionEvent) {
@ -156,7 +161,7 @@ export class ImportActivitiesDialog implements OnDestroy {
} }
} }
public onSelectFile() { public onSelectFile(aStepper: MatStepper) {
const input = document.createElement('input'); const input = document.createElement('input');
input.accept = 'application/JSON, .csv'; input.accept = 'application/JSON, .csv';
input.type = 'file'; input.type = 'file';
@ -242,6 +247,9 @@ export class ImportActivitiesDialog implements OnDestroy {
this.isFileSelected = true; this.isFileSelected = true;
this.importStep = ImportStep.SELECT_ACTIVITIES; this.importStep = ImportStep.SELECT_ACTIVITIES;
this.snackBar.dismiss(); this.snackBar.dismiss();
aStepper.next();
this.changeDetectorRef.markForCheck(); this.changeDetectorRef.markForCheck();
} }
}; };

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

@ -5,8 +5,10 @@
(closeButtonClicked)="onCancel()" (closeButtonClicked)="onCancel()"
></gf-dialog-header> ></gf-dialog-header>
<div class="flex-grow-1 py-3" mat-dialog-content> <div class="flex-grow-1" mat-dialog-content>
<mat-stepper <mat-stepper
#stepper
[animationDuration]="0"
[linear]="true" [linear]="true"
[selectedIndex]="importStep" [selectedIndex]="importStep"
(selectionChange)="onImportStepChange($event)" (selectionChange)="onImportStepChange($event)"
@ -17,13 +19,14 @@
<ng-template matStepperIcon="edit"> <ng-template matStepperIcon="edit">
<ion-icon name="pencil-outline"></ion-icon> <ion-icon name="pencil-outline"></ion-icon>
</ng-template> </ng-template>
<mat-step <mat-step label="Select File">
label="Select File"
[completed]="isFileSelected || activities.length !== 0"
>
<ng-container *ngIf="!isFileSelected"> <ng-container *ngIf="!isFileSelected">
<ng-container *ngIf="mode === 'DIVIDEND'; else selectFile"> <ng-container *ngIf="mode === 'DIVIDEND'; else selectFile">
<form [formGroup]="uniqueAssetForm" (ngSubmit)="onLoadDividends()"> <form
class="mt-3"
[formGroup]="uniqueAssetForm"
(ngSubmit)="onLoadDividends(stepper)"
>
<mat-form-field appearance="outline" class="w-100"> <mat-form-field appearance="outline" class="w-100">
<mat-label i18n>Holding</mat-label> <mat-label i18n>Holding</mat-label>
<mat-select formControlName="uniqueAsset"> <mat-select formControlName="uniqueAsset">
@ -34,7 +37,7 @@
> >
</mat-select> </mat-select>
</mat-form-field> </mat-form-field>
<div class="d-flex justify-content-center flex-column"> <div class="d-flex flex-column justify-content-center">
<button <button
color="primary" color="primary"
mat-flat-button mat-flat-button
@ -47,12 +50,12 @@
</form> </form>
</ng-container> </ng-container>
<ng-template #selectFile> <ng-template #selectFile>
<div class="d-flex justify-content-center flex-column"> <div class="d-flex flex-column justify-content-center mt-3">
<button <button
class="py-4" class="py-4"
color="primary" color="primary"
mat-stroked-button mat-stroked-button
(click)="onSelectFile()" (click)="onSelectFile(stepper)"
> >
<ion-icon class="mr-2" name="cloud-upload-outline"></ion-icon> <ion-icon class="mr-2" name="cloud-upload-outline"></ion-icon>
<span i18n>Choose File</span> <span i18n>Choose File</span>
@ -120,7 +123,7 @@
</mat-expansion-panel> </mat-expansion-panel>
</mat-accordion> </mat-accordion>
<div class="mt-2"> <div class="mt-2">
<button mat-button (click)="onReset()"> <button mat-button (click)="onReset(stepper)">
<ion-icon class="mr-2" name="arrow-back-outline"></ion-icon> <ion-icon class="mr-2" name="arrow-back-outline"></ion-icon>
<span i18n>Back</span> <span i18n>Back</span>
</button> </button>

Loading…
Cancel
Save