From ab3a4179552f1f061b90ffd465d4a2f2b39f9756 Mon Sep 17 00:00:00 2001 From: Chi Nguyen <6671583+cnguyen-de@users.noreply.github.com> Date: Mon, 14 Dec 2020 10:08:57 +0100 Subject: [PATCH] TSK-1489: fixed undefined bugs, refactored variable name (#1372) --- ...basket-distribution-targets.component.html | 2 +- ...ket-distribution-targets.component.spec.ts | 4 +-- ...rkbasket-distribution-targets.component.ts | 34 +++++++++++-------- 3 files changed, 22 insertions(+), 18 deletions(-) diff --git a/web/src/app/administration/components/workbasket-distribution-targets/workbasket-distribution-targets.component.html b/web/src/app/administration/components/workbasket-distribution-targets/workbasket-distribution-targets.component.html index 209da7845..3214dba04 100644 --- a/web/src/app/administration/components/workbasket-distribution-targets/workbasket-distribution-targets.component.html +++ b/web/src/app/administration/components/workbasket-distribution-targets/workbasket-distribution-targets.component.html @@ -82,7 +82,7 @@ { it('should move distribution targets to selected list', () => { component.availableDistributionTargets[0]['selected'] = true; // select first item in available array - component.distributionTargetsRight = component.distributionTargetsSelected; + component.distributionTargetsLeft = component.distributionTargetsSelected; component.moveDistributionTargets(Side.AVAILABLE); expect(component.distributionTargetsSelected).toHaveLength(4); // mock-data only has 3 }); @@ -146,7 +146,7 @@ describe('WorkbasketDistributionTargetsComponent', () => { component.distributionTargetsClone = component.availableDistributionTargets; component.distributionTargetsSelectedClone = component.distributionTargetsSelected; component.availableDistributionTargets[0]['selected'] = true; // select first item in available array - component.distributionTargetsRight = component.distributionTargetsSelected; + component.distributionTargetsLeft = component.distributionTargetsSelected; component.moveDistributionTargets(Side.AVAILABLE); expect(component.distributionTargetsSelected).toHaveLength(4); // mock-data only has 3 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 7c9fde50e..22146c13e 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 @@ -45,9 +45,10 @@ export class WorkbasketDistributionTargetsComponent implements OnInit, OnDestroy distributionTargetsSelectedResource: WorkbasketDistributionTargets; availableDistributionTargets: Array = []; - distributionTargetsRight: Array = []; - distributionTargetsSelected: Array; distributionTargetsClone: Array; + + distributionTargetsLeft: Array = []; + distributionTargetsSelected: Array; distributionTargetsSelectedClone: Array; loadingItems = false; @@ -85,9 +86,12 @@ export class WorkbasketDistributionTargetsComponent implements OnInit, OnDestroy this.store.dispatch(new GetWorkbasketDistributionTargets(this.workbasket._links.distributionTargets.href)); this.store.dispatch(new GetAvailableDistributionTargets()); - this.availableDistributionTargets$.pipe(takeUntil(this.destroy$)).subscribe((availableDistributionTargets) => { - this.availableDistributionTargets = availableDistributionTargets; - }); + this.availableDistributionTargets$ + .pipe(takeUntil(this.destroy$)) + .pipe(filter((availableDistributionTargets) => typeof availableDistributionTargets !== 'undefined')) + .subscribe((availableDistributionTargets) => { + this.availableDistributionTargets = [...availableDistributionTargets]; + }); this.savingWorkbaskets .triggeredDistributionTargetsSaving() @@ -157,10 +161,10 @@ export class WorkbasketDistributionTargetsComponent implements OnInit, OnDestroy if (side === this.side.AVAILABLE) { this.availableDistributionTargets.push(...distributionTargetsAvailable.workbaskets); } else if (side === this.side.SELECTED) { - this.distributionTargetsRight = Object.assign([], distributionTargetsAvailable.workbaskets); + this.distributionTargetsLeft = Object.assign([], distributionTargetsAvailable.workbaskets); } else { this.availableDistributionTargets.push(...distributionTargetsAvailable.workbaskets); - this.distributionTargetsRight = Object.assign([], distributionTargetsAvailable.workbaskets); + this.distributionTargetsLeft = Object.assign([], distributionTargetsAvailable.workbaskets); this.distributionTargetsClone = Object.assign([], distributionTargetsAvailable.workbaskets); } }); @@ -199,10 +203,10 @@ export class WorkbasketDistributionTargetsComponent implements OnInit, OnDestroy if (dualListFilter.side === this.side.AVAILABLE) { this.availableDistributionTargets.push(...distributionTargetsAvailable.workbaskets); } else if (dualListFilter.side === this.side.SELECTED) { - this.distributionTargetsRight = Object.assign([], distributionTargetsAvailable.workbaskets); + this.distributionTargetsLeft = Object.assign([], distributionTargetsAvailable.workbaskets); } else { this.availableDistributionTargets.push(...distributionTargetsAvailable.workbaskets); - this.distributionTargetsRight = Object.assign([], distributionTargetsAvailable.workbaskets); + this.distributionTargetsLeft = Object.assign([], distributionTargetsAvailable.workbaskets); this.distributionTargetsClone = Object.assign([], distributionTargetsAvailable.workbaskets); } }); @@ -221,10 +225,10 @@ export class WorkbasketDistributionTargetsComponent implements OnInit, OnDestroy moveDistributionTargets(side: number) { if (side === Side.AVAILABLE) { const itemsLeft = this.availableDistributionTargets.length; - const itemsRight = this.distributionTargetsRight.length; + const itemsRight = this.distributionTargetsLeft.length; const itemsSelected = this.getSelectedItems(this.availableDistributionTargets); this.distributionTargetsSelected = [...this.distributionTargetsSelected, ...itemsSelected]; - this.distributionTargetsRight = this.distributionTargetsRight.concat(itemsSelected); + this.distributionTargetsLeft = this.distributionTargetsLeft.concat(itemsSelected); if ( itemsLeft - itemsSelected.length <= TaskanaQueryParameters.pageSize && itemsLeft + itemsRight < this.page.totalElements @@ -233,9 +237,9 @@ export class WorkbasketDistributionTargetsComponent implements OnInit, OnDestroy } this.unselectItems(this.distributionTargetsSelected); } else { - const itemsSelected = this.getSelectedItems(this.distributionTargetsRight); + const itemsSelected = this.getSelectedItems(this.distributionTargetsLeft); this.distributionTargetsSelected = this.removeSelectedItems(this.distributionTargetsSelected, itemsSelected); - this.distributionTargetsRight = this.removeSelectedItems(this.distributionTargetsRight, itemsSelected); + this.distributionTargetsLeft = this.removeSelectedItems(this.distributionTargetsLeft, itemsSelected); this.availableDistributionTargets = this.availableDistributionTargets.concat(itemsSelected); this.unselectItems(itemsSelected); } @@ -244,13 +248,13 @@ export class WorkbasketDistributionTargetsComponent implements OnInit, OnDestroy onClear() { this.notificationsService.showToast(NOTIFICATION_TYPES.INFO_ALERT); this.availableDistributionTargets = Object.assign([], this.distributionTargetsClone); - this.distributionTargetsRight = Object.assign([], this.distributionTargetsSelectedClone); + this.distributionTargetsLeft = Object.assign([], this.distributionTargetsSelectedClone); this.distributionTargetsSelected = Object.assign([], this.distributionTargetsSelectedClone); } fillDistributionTargets(side: Side, workbaskets: WorkbasketSummary[]) { this.availableDistributionTargets = side === Side.AVAILABLE ? workbaskets : this.availableDistributionTargets; - this.distributionTargetsRight = side === Side.SELECTED ? workbaskets : this.distributionTargetsRight; + this.distributionTargetsLeft = side === Side.SELECTED ? workbaskets : this.distributionTargetsLeft; } getSelectedItems(originList: any): Array {