TSK-1489: fixed undefined bugs, refactored variable name (#1372)

This commit is contained in:
Chi Nguyen 2020-12-14 10:08:57 +01:00 committed by GitHub
parent 3c067c55e3
commit ab3a417955
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 22 additions and 18 deletions

View File

@ -82,7 +82,7 @@
<taskana-administration-workbasket-distribution-targets-list <taskana-administration-workbasket-distribution-targets-list
[ngClass]="sideBySide ? 'distribution-targets-list__lists--left-side' : ''" [ngClass]="sideBySide ? 'distribution-targets-list__lists--left-side' : ''"
header="Selected distribution targets" header="Selected distribution targets"
[distributionTargets]="distributionTargetsRight" [distributionTargets]="distributionTargetsLeft"
[distributionTargetsSelected]="distributionTargetsSelected" [distributionTargetsSelected]="distributionTargetsSelected"
(performDualListFilter)="performFilter($event)" (performDualListFilter)="performFilter($event)"
[side]="side.SELECTED" [side]="side.SELECTED"

View File

@ -137,7 +137,7 @@ describe('WorkbasketDistributionTargetsComponent', () => {
it('should move distribution targets to selected list', () => { it('should move distribution targets to selected list', () => {
component.availableDistributionTargets[0]['selected'] = true; // select first item in available array component.availableDistributionTargets[0]['selected'] = true; // select first item in available array
component.distributionTargetsRight = component.distributionTargetsSelected; component.distributionTargetsLeft = component.distributionTargetsSelected;
component.moveDistributionTargets(Side.AVAILABLE); component.moveDistributionTargets(Side.AVAILABLE);
expect(component.distributionTargetsSelected).toHaveLength(4); // mock-data only has 3 expect(component.distributionTargetsSelected).toHaveLength(4); // mock-data only has 3
}); });
@ -146,7 +146,7 @@ describe('WorkbasketDistributionTargetsComponent', () => {
component.distributionTargetsClone = component.availableDistributionTargets; component.distributionTargetsClone = component.availableDistributionTargets;
component.distributionTargetsSelectedClone = component.distributionTargetsSelected; component.distributionTargetsSelectedClone = component.distributionTargetsSelected;
component.availableDistributionTargets[0]['selected'] = true; // select first item in available array component.availableDistributionTargets[0]['selected'] = true; // select first item in available array
component.distributionTargetsRight = component.distributionTargetsSelected; component.distributionTargetsLeft = component.distributionTargetsSelected;
component.moveDistributionTargets(Side.AVAILABLE); component.moveDistributionTargets(Side.AVAILABLE);
expect(component.distributionTargetsSelected).toHaveLength(4); // mock-data only has 3 expect(component.distributionTargetsSelected).toHaveLength(4); // mock-data only has 3

View File

@ -45,9 +45,10 @@ export class WorkbasketDistributionTargetsComponent implements OnInit, OnDestroy
distributionTargetsSelectedResource: WorkbasketDistributionTargets; distributionTargetsSelectedResource: WorkbasketDistributionTargets;
availableDistributionTargets: Array<WorkbasketSummary> = []; availableDistributionTargets: Array<WorkbasketSummary> = [];
distributionTargetsRight: Array<WorkbasketSummary> = [];
distributionTargetsSelected: Array<WorkbasketSummary>;
distributionTargetsClone: Array<WorkbasketSummary>; distributionTargetsClone: Array<WorkbasketSummary>;
distributionTargetsLeft: Array<WorkbasketSummary> = [];
distributionTargetsSelected: Array<WorkbasketSummary>;
distributionTargetsSelectedClone: Array<WorkbasketSummary>; distributionTargetsSelectedClone: Array<WorkbasketSummary>;
loadingItems = false; loadingItems = false;
@ -85,8 +86,11 @@ export class WorkbasketDistributionTargetsComponent implements OnInit, OnDestroy
this.store.dispatch(new GetWorkbasketDistributionTargets(this.workbasket._links.distributionTargets.href)); this.store.dispatch(new GetWorkbasketDistributionTargets(this.workbasket._links.distributionTargets.href));
this.store.dispatch(new GetAvailableDistributionTargets()); this.store.dispatch(new GetAvailableDistributionTargets());
this.availableDistributionTargets$.pipe(takeUntil(this.destroy$)).subscribe((availableDistributionTargets) => { this.availableDistributionTargets$
this.availableDistributionTargets = availableDistributionTargets; .pipe(takeUntil(this.destroy$))
.pipe(filter((availableDistributionTargets) => typeof availableDistributionTargets !== 'undefined'))
.subscribe((availableDistributionTargets) => {
this.availableDistributionTargets = [...availableDistributionTargets];
}); });
this.savingWorkbaskets this.savingWorkbaskets
@ -157,10 +161,10 @@ export class WorkbasketDistributionTargetsComponent implements OnInit, OnDestroy
if (side === this.side.AVAILABLE) { if (side === this.side.AVAILABLE) {
this.availableDistributionTargets.push(...distributionTargetsAvailable.workbaskets); this.availableDistributionTargets.push(...distributionTargetsAvailable.workbaskets);
} else if (side === this.side.SELECTED) { } else if (side === this.side.SELECTED) {
this.distributionTargetsRight = Object.assign([], distributionTargetsAvailable.workbaskets); this.distributionTargetsLeft = Object.assign([], distributionTargetsAvailable.workbaskets);
} else { } else {
this.availableDistributionTargets.push(...distributionTargetsAvailable.workbaskets); this.availableDistributionTargets.push(...distributionTargetsAvailable.workbaskets);
this.distributionTargetsRight = Object.assign([], distributionTargetsAvailable.workbaskets); this.distributionTargetsLeft = Object.assign([], distributionTargetsAvailable.workbaskets);
this.distributionTargetsClone = 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) { if (dualListFilter.side === this.side.AVAILABLE) {
this.availableDistributionTargets.push(...distributionTargetsAvailable.workbaskets); this.availableDistributionTargets.push(...distributionTargetsAvailable.workbaskets);
} else if (dualListFilter.side === this.side.SELECTED) { } else if (dualListFilter.side === this.side.SELECTED) {
this.distributionTargetsRight = Object.assign([], distributionTargetsAvailable.workbaskets); this.distributionTargetsLeft = Object.assign([], distributionTargetsAvailable.workbaskets);
} else { } else {
this.availableDistributionTargets.push(...distributionTargetsAvailable.workbaskets); this.availableDistributionTargets.push(...distributionTargetsAvailable.workbaskets);
this.distributionTargetsRight = Object.assign([], distributionTargetsAvailable.workbaskets); this.distributionTargetsLeft = Object.assign([], distributionTargetsAvailable.workbaskets);
this.distributionTargetsClone = Object.assign([], distributionTargetsAvailable.workbaskets); this.distributionTargetsClone = Object.assign([], distributionTargetsAvailable.workbaskets);
} }
}); });
@ -221,10 +225,10 @@ export class WorkbasketDistributionTargetsComponent implements OnInit, OnDestroy
moveDistributionTargets(side: number) { moveDistributionTargets(side: number) {
if (side === Side.AVAILABLE) { if (side === Side.AVAILABLE) {
const itemsLeft = this.availableDistributionTargets.length; const itemsLeft = this.availableDistributionTargets.length;
const itemsRight = this.distributionTargetsRight.length; const itemsRight = this.distributionTargetsLeft.length;
const itemsSelected = this.getSelectedItems(this.availableDistributionTargets); const itemsSelected = this.getSelectedItems(this.availableDistributionTargets);
this.distributionTargetsSelected = [...this.distributionTargetsSelected, ...itemsSelected]; this.distributionTargetsSelected = [...this.distributionTargetsSelected, ...itemsSelected];
this.distributionTargetsRight = this.distributionTargetsRight.concat(itemsSelected); this.distributionTargetsLeft = this.distributionTargetsLeft.concat(itemsSelected);
if ( if (
itemsLeft - itemsSelected.length <= TaskanaQueryParameters.pageSize && itemsLeft - itemsSelected.length <= TaskanaQueryParameters.pageSize &&
itemsLeft + itemsRight < this.page.totalElements itemsLeft + itemsRight < this.page.totalElements
@ -233,9 +237,9 @@ export class WorkbasketDistributionTargetsComponent implements OnInit, OnDestroy
} }
this.unselectItems(this.distributionTargetsSelected); this.unselectItems(this.distributionTargetsSelected);
} else { } else {
const itemsSelected = this.getSelectedItems(this.distributionTargetsRight); const itemsSelected = this.getSelectedItems(this.distributionTargetsLeft);
this.distributionTargetsSelected = this.removeSelectedItems(this.distributionTargetsSelected, itemsSelected); 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.availableDistributionTargets = this.availableDistributionTargets.concat(itemsSelected);
this.unselectItems(itemsSelected); this.unselectItems(itemsSelected);
} }
@ -244,13 +248,13 @@ export class WorkbasketDistributionTargetsComponent implements OnInit, OnDestroy
onClear() { onClear() {
this.notificationsService.showToast(NOTIFICATION_TYPES.INFO_ALERT); this.notificationsService.showToast(NOTIFICATION_TYPES.INFO_ALERT);
this.availableDistributionTargets = Object.assign([], this.distributionTargetsClone); this.availableDistributionTargets = Object.assign([], this.distributionTargetsClone);
this.distributionTargetsRight = Object.assign([], this.distributionTargetsSelectedClone); this.distributionTargetsLeft = Object.assign([], this.distributionTargetsSelectedClone);
this.distributionTargetsSelected = Object.assign([], this.distributionTargetsSelectedClone); this.distributionTargetsSelected = Object.assign([], this.distributionTargetsSelectedClone);
} }
fillDistributionTargets(side: Side, workbaskets: WorkbasketSummary[]) { fillDistributionTargets(side: Side, workbaskets: WorkbasketSummary[]) {
this.availableDistributionTargets = side === Side.AVAILABLE ? workbaskets : this.availableDistributionTargets; 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<any> { getSelectedItems(originList: any): Array<any> {