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