diff --git a/src/app/authoring-tool/edit-advanced-component/edit-advanced-component.component.ts b/src/app/authoring-tool/edit-advanced-component/edit-advanced-component.component.ts
index 3c9cea77c49..50855761e40 100644
--- a/src/app/authoring-tool/edit-advanced-component/edit-advanced-component.component.ts
+++ b/src/app/authoring-tool/edit-advanced-component/edit-advanced-component.component.ts
@@ -4,6 +4,7 @@ import { Component } from '../../../assets/wise5/common/Component';
import { NotebookService } from '../../../assets/wise5/services/notebookService';
import { TeacherProjectService } from '../../../assets/wise5/services/teacherProjectService';
import { TeacherNodeService } from '../../../assets/wise5/services/teacherNodeService';
+import { moveObjectDown, moveObjectUp } from '../../../assets/wise5/common/array/array';
@Directive()
export abstract class EditAdvancedComponentComponent {
@@ -48,12 +49,12 @@ export abstract class EditAdvancedComponentComponent {
}
moveObjectUp(objects: any[], index: number): void {
- this.teacherProjectService.moveObjectUp(objects, index);
+ moveObjectUp(objects, index);
this.componentChanged();
}
moveObjectDown(objects: any[], index: number): void {
- this.teacherProjectService.moveObjectDown(objects, index);
+ moveObjectDown(objects, index);
this.componentChanged();
}
}
diff --git a/src/app/authoring-tool/edit-advanced-component/edit-component-default-feedback/edit-component-default-feedback.component.ts b/src/app/authoring-tool/edit-advanced-component/edit-component-default-feedback/edit-component-default-feedback.component.ts
index f3476421805..152d68e38eb 100644
--- a/src/app/authoring-tool/edit-advanced-component/edit-component-default-feedback/edit-component-default-feedback.component.ts
+++ b/src/app/authoring-tool/edit-advanced-component/edit-component-default-feedback/edit-component-default-feedback.component.ts
@@ -2,6 +2,7 @@ import { Component, Input } from '@angular/core';
import { Subject, Subscription } from 'rxjs';
import { debounceTime, distinctUntilChanged } from 'rxjs/operators';
import { TeacherProjectService } from '../../../../assets/wise5/services/teacherProjectService';
+import { moveObjectDown, moveObjectUp } from '../../../../assets/wise5/common/array/array';
@Component({
selector: 'edit-component-default-feedback',
@@ -37,12 +38,12 @@ export class EditComponentDefaultFeedback {
}
moveDefaultFeedbackUp(index: number): void {
- this.ProjectService.moveObjectUp(this.componentContent.defaultFeedback, index);
+ moveObjectUp(this.componentContent.defaultFeedback, index);
this.componentChanged();
}
moveDefaultFeedbackDown(index: number): void {
- this.ProjectService.moveObjectDown(this.componentContent.defaultFeedback, index);
+ moveObjectDown(this.componentContent.defaultFeedback, index);
this.componentChanged();
}
diff --git a/src/app/services/teacherProjectService.spec.ts b/src/app/services/teacherProjectService.spec.ts
index 1e57289e529..9c710ea1617 100644
--- a/src/app/services/teacherProjectService.spec.ts
+++ b/src/app/services/teacherProjectService.spec.ts
@@ -16,7 +16,6 @@ let http: HttpTestingController;
let demoProjectJSON: any;
let scootersProjectJSON: any;
let teacherProjectJSON: any;
-let objects;
const scootersProjectJSONString = JSON.stringify(demoProjectJSON_import);
const scootersProjectName = 'scooters';
@@ -29,9 +28,14 @@ const wiseBaseURL = '/wise';
describe('TeacherProjectService', () => {
beforeEach(() => {
TestBed.configureTestingModule({
- imports: [StudentTeacherCommonServicesModule],
- providers: [DeleteNodeService, TeacherProjectService, provideHttpClient(withInterceptorsFromDi()), provideHttpClientTesting()]
-});
+ imports: [StudentTeacherCommonServicesModule],
+ providers: [
+ DeleteNodeService,
+ TeacherProjectService,
+ provideHttpClient(withInterceptorsFromDi()),
+ provideHttpClientTesting()
+ ]
+ });
http = TestBed.inject(HttpTestingController);
service = TestBed.inject(TeacherProjectService);
configService = TestBed.inject(ConfigService);
@@ -79,8 +83,6 @@ describe('TeacherProjectService', () => {
getOldToNewIds();
replaceOldIds();
replaceIds();
- moveObjectUp();
- moveObjectDown();
removeNodeIdFromTransitions();
});
@@ -750,54 +752,6 @@ function replaceIds() {
});
}
-function moveObjectUp() {
- describe('moveObjectUp()', () => {
- beforeEach(() => {
- objects = [1, 2, 3];
- });
- moveObjectUpTopElement();
- moveObjectUpNotTopElement();
- });
-}
-
-function moveObjectUpTopElement() {
- it('should not move an object up when the object is the top element', () => {
- service.moveObjectUp(objects, 0);
- expect(objects).toEqual([1, 2, 3]);
- });
-}
-
-function moveObjectUpNotTopElement() {
- it('should move an object up when the object is not the top element', () => {
- service.moveObjectUp(objects, 1);
- expect(objects).toEqual([2, 1, 3]);
- });
-}
-
-function moveObjectDown() {
- describe('moveObjectDown()', () => {
- beforeEach(() => {
- objects = [1, 2, 3];
- });
- moveObjectDownNotBottomElement();
- moveObjectDownIsBottomElement();
- });
-}
-
-function moveObjectDownNotBottomElement() {
- it('should move an object down when the object is not the bottom element', () => {
- service.moveObjectDown(objects, 1);
- expect(objects).toEqual([1, 3, 2]);
- });
-}
-
-function moveObjectDownIsBottomElement() {
- it('should not move an object down when the object is the bottom element', () => {
- service.moveObjectDown(objects, 2);
- expect(objects).toEqual([1, 2, 3]);
- });
-}
-
function removeNodeIdFromTransitions() {
describe('removeNodeIdFromTransitions()', () => {
beforeEach(() => {
diff --git a/src/assets/wise5/authoringTool/components/AbstractComponentAuthoring.ts b/src/assets/wise5/authoringTool/components/AbstractComponentAuthoring.ts
index 45baa89d086..b4f86df4f63 100644
--- a/src/assets/wise5/authoringTool/components/AbstractComponentAuthoring.ts
+++ b/src/assets/wise5/authoringTool/components/AbstractComponentAuthoring.ts
@@ -5,6 +5,7 @@ import { ProjectAssetService } from '../../../../app/services/projectAssetServic
import { ConfigService } from '../../services/configService';
import { TeacherProjectService } from '../../services/teacherProjectService';
import { TeacherNodeService } from '../../services/teacherNodeService';
+import { moveObjectDown, moveObjectUp } from '../../common/array/array';
@Directive()
export abstract class AbstractComponentAuthoring {
@@ -114,12 +115,12 @@ export abstract class AbstractComponentAuthoring {
}
moveObjectUp(objects: any[], index: number): void {
- this.projectService.moveObjectUp(objects, index);
+ moveObjectUp(objects, index);
this.componentChanged();
}
moveObjectDown(objects: any[], index: number): void {
- this.projectService.moveObjectDown(objects, index);
+ moveObjectDown(objects, index);
this.componentChanged();
}
}
diff --git a/src/assets/wise5/common/array/array.spec.ts b/src/assets/wise5/common/array/array.spec.ts
index ef3494eebcb..3981b0868e2 100644
--- a/src/assets/wise5/common/array/array.spec.ts
+++ b/src/assets/wise5/common/array/array.spec.ts
@@ -1,4 +1,10 @@
-import { arraysContainSameValues, CSVToArray, reduceByUniqueId } from './array';
+import {
+ arraysContainSameValues,
+ CSVToArray,
+ moveObjectDown,
+ moveObjectUp,
+ reduceByUniqueId
+} from './array';
import csvArraySample from './arraySample';
import { getIntersectOfArrays } from './array';
@@ -94,3 +100,48 @@ describe('reduceByUniqueId', () => {
expect(result[2].id).toEqual(3);
});
});
+
+let objects;
+describe('moveObjectUp()', () => {
+ beforeEach(() => {
+ objects = [1, 2, 3];
+ });
+ moveObjectUpTopElement();
+ moveObjectUpNotTopElement();
+});
+
+function moveObjectUpTopElement() {
+ it('should not move an object up when the object is the top element', () => {
+ moveObjectUp(objects, 0);
+ expect(objects).toEqual([1, 2, 3]);
+ });
+}
+
+function moveObjectUpNotTopElement() {
+ it('should move an object up when the object is not the top element', () => {
+ moveObjectUp(objects, 1);
+ expect(objects).toEqual([2, 1, 3]);
+ });
+}
+
+describe('moveObjectDown()', () => {
+ beforeEach(() => {
+ objects = [1, 2, 3];
+ });
+ moveObjectDownNotBottomElement();
+ moveObjectDownIsBottomElement();
+});
+
+function moveObjectDownNotBottomElement() {
+ it('should move an object down when the object is not the bottom element', () => {
+ moveObjectDown(objects, 1);
+ expect(objects).toEqual([1, 3, 2]);
+ });
+}
+
+function moveObjectDownIsBottomElement() {
+ it('should not move an object down when the object is the bottom element', () => {
+ moveObjectDown(objects, 2);
+ expect(objects).toEqual([1, 2, 3]);
+ });
+}
diff --git a/src/assets/wise5/common/array/array.ts b/src/assets/wise5/common/array/array.ts
index cd3d324a2ff..b674c6ad1c3 100644
--- a/src/assets/wise5/common/array/array.ts
+++ b/src/assets/wise5/common/array/array.ts
@@ -95,3 +95,19 @@ export function reduceByUniqueId(objArr: any[]): any[] {
}
return result;
}
+
+export function moveObjectUp(objects: any[], index: number): void {
+ if (index !== 0) {
+ const object = objects[index];
+ objects.splice(index, 1);
+ objects.splice(index - 1, 0, object);
+ }
+}
+
+export function moveObjectDown(objects: any[], index: number): void {
+ if (index !== objects.length - 1) {
+ const object = objects[index];
+ objects.splice(index, 1);
+ objects.splice(index + 1, 0, object);
+ }
+}
diff --git a/src/assets/wise5/services/teacherProjectService.ts b/src/assets/wise5/services/teacherProjectService.ts
index d257de2a80d..ce9eb60b0c8 100644
--- a/src/assets/wise5/services/teacherProjectService.ts
+++ b/src/assets/wise5/services/teacherProjectService.ts
@@ -2902,22 +2902,6 @@ export class TeacherProjectService extends ProjectService {
this.projectSavedSource.next();
}
- moveObjectUp(objects: any[], index: number): void {
- if (index !== 0) {
- const object = objects[index];
- objects.splice(index, 1);
- objects.splice(index - 1, 0, object);
- }
- }
-
- moveObjectDown(objects: any[], index: number): void {
- if (index !== objects.length - 1) {
- const object = objects[index];
- objects.splice(index, 1);
- objects.splice(index + 1, 0, object);
- }
- }
-
getNodesInOrder(): any[] {
return Object.entries(this.idToOrder)
.map((entry: any) => {
diff --git a/src/messages.xlf b/src/messages.xlf
index e0f753ce163..66d482aef1d 100644
--- a/src/messages.xlf
+++ b/src/messages.xlf
@@ -814,7 +814,7 @@
Are you sure you want to delete this default feedback?
src/app/authoring-tool/edit-advanced-component/edit-component-default-feedback/edit-component-default-feedback.component.ts
- 50
+ 51