From c3ef2f8dee688587ce5ce7962e2f39785e16ab27 Mon Sep 17 00:00:00 2001 From: lotte <lotte_hofstede@hotmail.com> Date: Tue, 3 Dec 2019 10:10:46 +0100 Subject: [PATCH] fixed reordering request --- src/app/core/data/data.service.spec.ts | 4 +- ...ynamic-form-control-container.component.ts | 43 ++++++++----------- 2 files changed, 21 insertions(+), 26 deletions(-) diff --git a/src/app/core/data/data.service.spec.ts b/src/app/core/data/data.service.spec.ts index 18e008fc0e..b690492c61 100644 --- a/src/app/core/data/data.service.spec.ts +++ b/src/app/core/data/data.service.spec.ts @@ -17,6 +17,7 @@ import { NormalizedObjectBuildService } from '../cache/builders/normalized-objec import { NotificationsService } from '../../shared/notifications/notifications.service'; import { Item } from '../shared/item.model'; import * as uuidv4 from 'uuid/v4'; +import { createSuccessfulRemoteDataObject$ } from '../../shared/testing/utils'; const endpoint = 'https://rest.api/core'; @@ -191,8 +192,7 @@ describe('DataService', () => { dso2.self = selfLink; dso2.metadata = [{ key: 'dc.title', value: name2 }]; - spyOn(service, 'findByHref').and.returnValues(observableOf(dso)); - spyOn(objectCache, 'getObjectBySelfLink').and.returnValues(observableOf(dso)); + spyOn(service, 'findByHref').and.returnValues(createSuccessfulRemoteDataObject$(dso)); spyOn(objectCache, 'addPatch'); }); diff --git a/src/app/shared/form/builder/ds-dynamic-form-ui/ds-dynamic-form-control-container.component.ts b/src/app/shared/form/builder/ds-dynamic-form-ui/ds-dynamic-form-control-container.component.ts index 8032cd606a..0cf939623e 100644 --- a/src/app/shared/form/builder/ds-dynamic-form-ui/ds-dynamic-form-control-container.component.ts +++ b/src/app/shared/form/builder/ds-dynamic-form-ui/ds-dynamic-form-control-container.component.ts @@ -260,12 +260,12 @@ export class DsDynamicFormControlContainerComponent extends DynamicFormControlCo }), ) ))), - map((relationships: ReorderableRelationship[]) => - relationships - .sort((a: Reorderable, b: Reorderable) => { - return Math.sign(a.getPlace() - b.getPlace()); - }) - ) + map((relationships: ReorderableRelationship[]) => + relationships + .sort((a: Reorderable, b: Reorderable) => { + return Math.sign(a.getPlace() - b.getPlace()); + }) + ) ) ) ); @@ -337,25 +337,20 @@ export class DsDynamicFormControlContainerComponent extends DynamicFormControlCo moveSelection(event: CdkDragDrop<Relationship>) { moveItemInArray(this.reorderables, event.previousIndex, event.currentIndex); this.zone.runOutsideAngular(() => { - observableCombineLatest( - this.reorderables.map((reo: Reorderable, index: number) => { - reo.oldIndex = reo.getPlace(); - reo.newIndex = index; - return reo; + const relationships = this.reorderables.map((reo: Reorderable, index: number) => { + reo.oldIndex = reo.getPlace(); + reo.newIndex = index; + return reo; + } + ); + return observableCombineLatest(relationships.map((rel: ReorderableRelationship) => { + console.log(rel); + if (rel.oldIndex !== rel.newIndex) { + return this.relationshipService.updatePlace(rel.relationship, rel.newIndex, !rel.useLeftItem); + } else { + return observableOf(undefined); } - ) - ).pipe( - switchMap((relationships: Array<{ relationship: Relationship, left: boolean, oldIndex: number, newIndex: number }>) => - observableCombineLatest(relationships.map((rel: { relationship: Relationship, left: boolean, oldIndex: number, newIndex: number }) => { - if (rel.oldIndex !== rel.newIndex) { - return this.relationshipService.updatePlace(rel.relationship, rel.newIndex, rel.left); - } else { - observableOf(undefined); - } - } - ) - ) - ) + }) ).subscribe(); }) } -- GitLab