From 2a9ffa8a80c062673344323d577de106fcf88606 Mon Sep 17 00:00:00 2001 From: Chi Nguyen Date: Wed, 16 Dec 2020 12:34:11 +0100 Subject: [PATCH] TSK-1485: implement save all 3 components in save button --- .../workbasket-access-items.component.ts | 37 +++++++-------- ...rkbasket-distribution-targets.component.ts | 17 ++++--- .../workbasket-information.component.ts | 45 +++++++++---------- 3 files changed, 48 insertions(+), 51 deletions(-) diff --git a/web/src/app/administration/components/workbasket-access-items/workbasket-access-items.component.ts b/web/src/app/administration/components/workbasket-access-items/workbasket-access-items.component.ts index 00c3ce00c..1a8e22357 100644 --- a/web/src/app/administration/components/workbasket-access-items/workbasket-access-items.component.ts +++ b/web/src/app/administration/components/workbasket-access-items/workbasket-access-items.component.ts @@ -10,7 +10,7 @@ import { ViewChildren } from '@angular/core'; import { Observable, Subject } from 'rxjs'; -import { Select, Store } from '@ngxs/store'; +import { Actions, ofActionCompleted, Select, Store } from '@ngxs/store'; import { FormArray, FormBuilder, Validators } from '@angular/forms'; import { Workbasket } from 'app/shared/models/workbasket'; @@ -19,20 +19,20 @@ import { WorkbasketAccessItemsRepresentation } from 'app/shared/models/workbaske import { ACTION } from 'app/shared/models/action'; import { SavingInformation, SavingWorkbasketService } from 'app/administration/services/saving-workbaskets.service'; -import { WorkbasketService } from 'app/shared/services/workbasket/workbasket.service'; import { RequestInProgressService } from 'app/shared/services/request-in-progress/request-in-progress.service'; import { highlight } from 'app/shared/animations/validation.animation'; import { FormsValidatorService } from 'app/shared/services/forms-validator/forms-validator.service'; import { AccessIdDefinition } from 'app/shared/models/access-id'; import { EngineConfigurationSelectors } from 'app/shared/store/engine-configuration-store/engine-configuration.selectors'; -import { filter, take, takeUntil } from 'rxjs/operators'; +import { filter, takeUntil } from 'rxjs/operators'; import { NOTIFICATION_TYPES } from '../../../shared/models/notifications'; import { NotificationService } from '../../../shared/services/notifications/notification.service'; import { AccessItemsCustomisation, CustomField, getCustomFields } from '../../../shared/models/customisation'; import { GetWorkbasketAccessItems, OnButtonPressed, - UpdateWorkbasketAccessItems + UpdateWorkbasketAccessItems, + UpdateWorkbasket } from '../../../shared/store/workbasket-store/workbasket.actions'; import { WorkbasketSelectors } from '../../../shared/store/workbasket-store/workbasket.selectors'; import { WorkbasketComponent } from '../../models/workbasket-component'; @@ -88,7 +88,8 @@ export class WorkbasketAccessItemsComponent implements OnInit, OnChanges, OnDest private formBuilder: FormBuilder, public formsValidatorService: FormsValidatorService, private notificationsService: NotificationService, - private store: Store + private store: Store, + private ngxsActions$: Actions ) {} get accessItemsGroups(): FormArray { @@ -107,25 +108,21 @@ export class WorkbasketAccessItemsComponent implements OnInit, OnChanges, OnDest } }); + this.ngxsActions$.pipe(ofActionCompleted(UpdateWorkbasket), takeUntil(this.destroy$)).subscribe(() => { + this.onSubmit(); + }); + this.buttonAction$ .pipe(takeUntil(this.destroy$)) .pipe(filter((buttonAction) => typeof buttonAction !== 'undefined')) .subscribe((button) => { - this.selectedComponent$ - .pipe(take(1)) - .pipe(filter((component) => component === WorkbasketComponent.ACCESS_ITEMS)) - .subscribe((component) => { - switch (button) { - case ButtonAction.SAVE: - this.onSubmit(); - break; - case ButtonAction.UNDO: - this.clear(); - break; - default: - break; - } - }); + switch (button) { + case ButtonAction.UNDO: + this.clear(); + break; + default: + break; + } }); } diff --git a/web/src/app/administration/components/workbasket-distribution-targets/workbasket-distribution-targets.component.ts b/web/src/app/administration/components/workbasket-distribution-targets/workbasket-distribution-targets.component.ts index 62007bea0..4538b5104 100644 --- a/web/src/app/administration/components/workbasket-distribution-targets/workbasket-distribution-targets.component.ts +++ b/web/src/app/administration/components/workbasket-distribution-targets/workbasket-distribution-targets.component.ts @@ -9,14 +9,15 @@ import { ACTION } from 'app/shared/models/action'; import { WorkbasketService } from 'app/shared/services/workbasket/workbasket.service'; import { SavingWorkbasketService, SavingInformation } from 'app/administration/services/saving-workbaskets.service'; import { Page } from 'app/shared/models/page'; -import { Select, Store } from '@ngxs/store'; +import { Actions, ofActionCompleted, Select, Store } from '@ngxs/store'; import { filter, takeUntil } from 'rxjs/operators'; import { NOTIFICATION_TYPES } from '../../../shared/models/notifications'; import { NotificationService } from '../../../shared/services/notifications/notification.service'; import { GetAvailableDistributionTargets, GetWorkbasketDistributionTargets, - UpdateWorkbasketDistributionTargets + UpdateWorkbasketDistributionTargets, + UpdateWorkbasketAccessItems } from '../../../shared/store/workbasket-store/workbasket.actions'; import { WorkbasketSelectors } from '../../../shared/store/workbasket-store/workbasket.selectors'; import { ButtonAction } from '../../models/button-action'; @@ -82,7 +83,9 @@ export class WorkbasketDistributionTargetsComponent implements OnInit, OnDestroy private workbasketService: WorkbasketService, private savingWorkbaskets: SavingWorkbasketService, private notificationsService: NotificationService, - private store: Store + private store: Store, + public matDialog: MatDialog, + private ngxsActions$: Actions ) {} /** @@ -126,14 +129,16 @@ export class WorkbasketDistributionTargetsComponent implements OnInit, OnDestroy this.getWorkbaskets(); } }); + + this.ngxsActions$.pipe(ofActionCompleted(UpdateWorkbasketAccessItems), takeUntil(this.destroy$)).subscribe(() => { + this.onSave(); + }); + this.buttonAction$ .pipe(takeUntil(this.destroy$)) .pipe(filter((buttonAction) => typeof buttonAction !== 'undefined')) .subscribe((button) => { switch (button) { - case ButtonAction.SAVE: - this.onSave(); - break; case ButtonAction.UNDO: this.onClear(); break; diff --git a/web/src/app/administration/components/workbasket-information/workbasket-information.component.ts b/web/src/app/administration/components/workbasket-information/workbasket-information.component.ts index cbb57e8c9..9fee41451 100644 --- a/web/src/app/administration/components/workbasket-information/workbasket-information.component.ts +++ b/web/src/app/administration/components/workbasket-information/workbasket-information.component.ts @@ -9,7 +9,7 @@ import { SavingInformation, SavingWorkbasketService } from 'app/administration/s import { WorkbasketService } from 'app/shared/services/workbasket/workbasket.service'; import { RequestInProgressService } from 'app/shared/services/request-in-progress/request-in-progress.service'; import { FormsValidatorService } from 'app/shared/services/forms-validator/forms-validator.service'; -import { filter, map, take, takeUntil } from 'rxjs/operators'; +import { filter, map, takeUntil } from 'rxjs/operators'; import { EngineConfigurationSelectors } from 'app/shared/store/engine-configuration-store/engine-configuration.selectors'; import { NOTIFICATION_TYPES } from '../../../shared/models/notifications'; import { NotificationService } from '../../../shared/services/notifications/notification.service'; @@ -102,30 +102,25 @@ export class WorkbasketInformationComponent implements OnInit, OnChanges, OnDest .pipe(takeUntil(this.destroy$)) .pipe(filter((buttonAction) => typeof buttonAction !== 'undefined')) .subscribe((button) => { - this.selectedComponent$ - .pipe(take(1)) - .pipe(filter((component) => component === WorkbasketComponent.INFORMATION)) - .subscribe((component) => { - switch (button) { - case ButtonAction.SAVE: - this.onSave(); - break; - case ButtonAction.UNDO: - this.onUndo(); - break; - case ButtonAction.COPY: - this.copyWorkbasket(); - break; - case ButtonAction.REMOVE_AS_DISTRIBUTION_TARGETS: - this.removeDistributionTargets(); - break; - case ButtonAction.DELETE: - this.removeWorkbasket(); - break; - default: - break; - } - }); + switch (button) { + case ButtonAction.SAVE: + this.onSave(); + break; + case ButtonAction.UNDO: + this.onUndo(); + break; + case ButtonAction.COPY: + this.copyWorkbasket(); + break; + case ButtonAction.REMOVE_AS_DISTRIBUTION_TARGETS: + this.removeDistributionTargets(); + break; + case ButtonAction.DELETE: + this.removeWorkbasket(); + break; + default: + break; + } }); }