Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down Expand Up @@ -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();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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',
Expand Down Expand Up @@ -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();
}

Expand Down
62 changes: 8 additions & 54 deletions src/app/services/teacherProjectService.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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';
Expand All @@ -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);
Expand Down Expand Up @@ -79,8 +83,6 @@ describe('TeacherProjectService', () => {
getOldToNewIds();
replaceOldIds();
replaceIds();
moveObjectUp();
moveObjectDown();
removeNodeIdFromTransitions();
});

Expand Down Expand Up @@ -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(() => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down Expand Up @@ -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();
}
}
53 changes: 52 additions & 1 deletion src/assets/wise5/common/array/array.spec.ts
Original file line number Diff line number Diff line change
@@ -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';

Expand Down Expand Up @@ -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]);
});
}
16 changes: 16 additions & 0 deletions src/assets/wise5/common/array/array.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
}
16 changes: 0 additions & 16 deletions src/assets/wise5/services/teacherProjectService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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) => {
Expand Down
2 changes: 1 addition & 1 deletion src/messages.xlf
Original file line number Diff line number Diff line change
Expand Up @@ -814,7 +814,7 @@
<source>Are you sure you want to delete this default feedback?</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/authoring-tool/edit-advanced-component/edit-component-default-feedback/edit-component-default-feedback.component.ts</context>
<context context-type="linenumber">50</context>
<context context-type="linenumber">51</context>
</context-group>
</trans-unit>
<trans-unit id="45229448ecf72c5acf7c79694e3fee30466771e1" datatype="html">
Expand Down