From 24108d49c7fd402218ee5a37a6d5cbdd4511146b Mon Sep 17 00:00:00 2001 From: Geoffrey Kwan Date: Mon, 1 Apr 2024 12:02:50 -0400 Subject: [PATCH] feat(Authoring): Add step buttons navigate to add step route (#1709) --- ...choose-import-step-location.component.html | 45 --- ...choose-import-step-location.component.scss | 19 -- .../choose-import-step-location.component.ts | 70 ---- .../choose-import-step.component.html | 10 +- .../choose-import-step.component.ts | 34 +- .../choose-import-unit.component.html | 10 +- .../choose-import-unit.component.ts | 7 +- src/app/teacher/authoring-routing.module.ts | 10 - src/app/teacher/authoring-tool.module.ts | 4 - .../abstract-import-step.component.ts | 39 +++ .../add-your-own-node.component.html | 16 +- .../add-your-own-node.component.ts | 39 ++- ...choose-automated-assessment.component.html | 10 +- ...ose-automated-assessment.component.spec.ts | 1 + .../choose-automated-assessment.component.ts | 37 +- .../choose-new-node-location.component.html | 50 --- .../choose-new-node-location.component.scss | 15 - .../choose-new-node-location.component.ts | 71 ---- .../choose-new-node-template.component.ts | 7 +- .../choose-simulation.component.html | 14 +- .../choose-simulation.component.spec.ts | 5 +- .../choose-simulation.component.ts | 35 +- ...figure-automated-assessment.component.html | 12 +- ...ure-automated-assessment.component.spec.ts | 7 +- ...onfigure-automated-assessment.component.ts | 31 +- .../project-authoring-lesson.component.ts | 38 +-- .../project-authoring.component.html | 11 - .../project-authoring.component.spec.ts | 52 --- .../project-authoring.component.ts | 4 - src/messages.xlf | 321 ++++++++---------- 30 files changed, 366 insertions(+), 658 deletions(-) delete mode 100644 src/app/authoring-tool/import-step/choose-import-step-location/choose-import-step-location.component.html delete mode 100644 src/app/authoring-tool/import-step/choose-import-step-location/choose-import-step-location.component.scss delete mode 100644 src/app/authoring-tool/import-step/choose-import-step-location/choose-import-step-location.component.ts create mode 100644 src/assets/wise5/authoringTool/addNode/abstract-import-step/abstract-import-step.component.ts delete mode 100644 src/assets/wise5/authoringTool/addNode/choose-new-node-location/choose-new-node-location.component.html delete mode 100644 src/assets/wise5/authoringTool/addNode/choose-new-node-location/choose-new-node-location.component.scss delete mode 100644 src/assets/wise5/authoringTool/addNode/choose-new-node-location/choose-new-node-location.component.ts diff --git a/src/app/authoring-tool/import-step/choose-import-step-location/choose-import-step-location.component.html b/src/app/authoring-tool/import-step/choose-import-step-location/choose-import-step-location.component.html deleted file mode 100644 index f09f9ae423c..00000000000 --- a/src/app/authoring-tool/import-step/choose-import-step-location/choose-import-step-location.component.html +++ /dev/null @@ -1,45 +0,0 @@ -
Choose a location for the imported steps.
-
-
-
-
-   - {{ getNodePositionById(nodeId) }}: {{ getNodeTitle(nodeId) }} -
- - -
-
-
- diff --git a/src/app/authoring-tool/import-step/choose-import-step-location/choose-import-step-location.component.scss b/src/app/authoring-tool/import-step/choose-import-step-location/choose-import-step-location.component.scss deleted file mode 100644 index 59f55013195..00000000000 --- a/src/app/authoring-tool/import-step/choose-import-step-location/choose-import-step-location.component.scss +++ /dev/null @@ -1,19 +0,0 @@ -.project-item { - margin-bottom: 4px; -} - -.project-item:hover { - background-color: #add8e6; -} - -.step-header { - margin-inline-start: 24px; -} - -.branch-path-step-header { - margin-inline-start: 48px; -} - -.mat-icon { - margin: 0; -} diff --git a/src/app/authoring-tool/import-step/choose-import-step-location/choose-import-step-location.component.ts b/src/app/authoring-tool/import-step/choose-import-step-location/choose-import-step-location.component.ts deleted file mode 100644 index ab309529243..00000000000 --- a/src/app/authoring-tool/import-step/choose-import-step-location/choose-import-step-location.component.ts +++ /dev/null @@ -1,70 +0,0 @@ -import { Component } from '@angular/core'; -import { ConfigService } from '../../../../assets/wise5/services/configService'; -import { CopyNodesService } from '../../../../assets/wise5/services/copyNodesService'; -import { InsertNodesService } from '../../../../assets/wise5/services/insertNodesService'; -import { TeacherProjectService } from '../../../../assets/wise5/services/teacherProjectService'; -import { ActivatedRoute, Router } from '@angular/router'; - -@Component({ - selector: 'choose-import-step-location', - styleUrls: ['choose-import-step-location.component.scss', '../../add-content.scss'], - templateUrl: 'choose-import-step-location.component.html' -}) -export class ChooseImportStepLocationComponent { - protected nodeIds: string[]; - - constructor( - private configService: ConfigService, - private copyNodesService: CopyNodesService, - private insertNodesService: InsertNodesService, - private projectService: TeacherProjectService, - private route: ActivatedRoute, - private router: Router - ) { - this.nodeIds = Object.keys(this.projectService.idToOrder); - this.nodeIds.shift(); // remove the 'group0' master root node from consideration - } - - protected importSelectedNodes(nodeIdToInsertInsideOrAfter: string): void { - this.copyNodesService - .copyNodes( - history.state.selectedNodes, - history.state.importFromProjectId, - this.configService.getProjectId() - ) - .subscribe((copiedNodes: any[]) => { - const nodesWithNewNodeIds = this.projectService.getNodesWithNewIds(copiedNodes); - this.insertNodesService.insertNodes(nodesWithNewNodeIds, nodeIdToInsertInsideOrAfter); - this.projectService.checkPotentialStartNodeIdChangeThenSaveProject().then(() => { - this.projectService.refreshProject(); - if (nodesWithNewNodeIds.length === 1) { - const newNode = nodesWithNewNodeIds[0]; - this.router.navigate(['../../../node', newNode.id], { - relativeTo: this.route, - state: { - newComponents: newNode.components - } - }); - } else { - this.router.navigate(['../../..'], { relativeTo: this.route }); - } - }); - }); - } - - protected isGroupNode(nodeId: string): boolean { - return this.projectService.isGroupNode(nodeId); - } - - protected getNodeTitle(nodeId: string): string { - return this.projectService.getNodeTitle(nodeId); - } - - protected getNodePositionById(nodeId: string): string { - return this.projectService.getNodePositionById(nodeId); - } - - protected isNodeInAnyBranchPath(nodeId: string): boolean { - return this.projectService.isNodeInAnyBranchPath(nodeId); - } -} diff --git a/src/app/authoring-tool/import-step/choose-import-step/choose-import-step.component.html b/src/app/authoring-tool/import-step/choose-import-step/choose-import-step.component.html index 67fd0d3b55a..5abfddd9191 100644 --- a/src/app/authoring-tool/import-step/choose-import-step/choose-import-step.component.html +++ b/src/app/authoring-tool/import-step/choose-import-step/choose-import-step.component.html @@ -1,6 +1,6 @@
Choose the step(s) that you want to import, then select Next.

- Selected unit: {{ project.metadata.title }} + Selected unit: {{ project?.metadata.title }} diff --git a/src/app/authoring-tool/import-step/choose-import-step/choose-import-step.component.ts b/src/app/authoring-tool/import-step/choose-import-step/choose-import-step.component.ts index b1e03f46aa2..cb719c829bc 100644 --- a/src/app/authoring-tool/import-step/choose-import-step/choose-import-step.component.ts +++ b/src/app/authoring-tool/import-step/choose-import-step/choose-import-step.component.ts @@ -1,27 +1,35 @@ import { Component } from '@angular/core'; import { TeacherProjectService } from '../../../../assets/wise5/services/teacherProjectService'; import { ActivatedRoute, Router } from '@angular/router'; +import { ConfigService } from '../../../../assets/wise5/services/configService'; +import { CopyNodesService } from '../../../../assets/wise5/services/copyNodesService'; +import { InsertNodesService } from '../../../../assets/wise5/services/insertNodesService'; +import { AbstractImportStepComponent } from '../../../../assets/wise5/authoringTool/addNode/abstract-import-step/abstract-import-step.component'; @Component({ selector: 'choose-import-step', styleUrls: ['choose-import-step.component.scss', '../../add-content.scss'], templateUrl: 'choose-import-step.component.html' }) -export class ChooseImportStepComponent { +export class ChooseImportStepComponent extends AbstractImportStepComponent { protected project: any; - private projectId: number; protected projectIdToOrder: any; private projectItems: any[] = []; constructor( - private projectService: TeacherProjectService, - private route: ActivatedRoute, - private router: Router - ) {} + protected configService: ConfigService, + protected copyNodesService: CopyNodesService, + protected insertNodesService: InsertNodesService, + protected projectService: TeacherProjectService, + protected route: ActivatedRoute, + protected router: Router + ) { + super(configService, copyNodesService, insertNodesService, projectService, route, router); + } ngOnInit() { - this.projectId = history.state.importProjectId; - this.projectService.retrieveProjectById(this.projectId).then((projectJSON) => { + super.ngOnInit(); + this.projectService.retrieveProjectById(this.importProjectId).then((projectJSON) => { this.project = projectJSON; const nodeOrderOfProject = this.projectService.getNodeOrderOfProject(this.project); this.projectIdToOrder = Object.values(nodeOrderOfProject.idToOrder); @@ -37,16 +45,6 @@ export class ChooseImportStepComponent { window.open(`${this.project.previewProjectURL}`); } - protected goToChooseLocation(): void { - this.router.navigate(['../choose-location'], { - relativeTo: this.route, - state: { - importFromProjectId: this.projectId, - selectedNodes: this.getSelectedNodesToImport() - } - }); - } - protected getSelectedNodesToImport(): any[] { return this.projectItems.filter((item) => item.checked).map((item) => item.node); } diff --git a/src/app/authoring-tool/import-step/choose-import-unit/choose-import-unit.component.html b/src/app/authoring-tool/import-step/choose-import-unit/choose-import-unit.component.html index afbbb6fb334..5b3bf00364c 100644 --- a/src/app/authoring-tool/import-step/choose-import-unit/choose-import-unit.component.html +++ b/src/app/authoring-tool/import-step/choose-import-unit/choose-import-unit.component.html @@ -25,7 +25,15 @@

Choose a unit from which to import step(s).
- - diff --git a/src/assets/wise5/authoringTool/addNode/choose-new-node-location/choose-new-node-location.component.scss b/src/assets/wise5/authoringTool/addNode/choose-new-node-location/choose-new-node-location.component.scss deleted file mode 100644 index eafb68c6699..00000000000 --- a/src/assets/wise5/authoringTool/addNode/choose-new-node-location/choose-new-node-location.component.scss +++ /dev/null @@ -1,15 +0,0 @@ -.groupHeader { - margin-left: 5px !important; -} - -.stepHeader { - margin-left: 30px !important; -} - -.branchPathStepHeader { - margin-left: 55px !important; -} - -.mat-icon { - margin: 0px; -} diff --git a/src/assets/wise5/authoringTool/addNode/choose-new-node-location/choose-new-node-location.component.ts b/src/assets/wise5/authoringTool/addNode/choose-new-node-location/choose-new-node-location.component.ts deleted file mode 100644 index da812e51793..00000000000 --- a/src/assets/wise5/authoringTool/addNode/choose-new-node-location/choose-new-node-location.component.ts +++ /dev/null @@ -1,71 +0,0 @@ -import { Component } from '@angular/core'; -import { TeacherProjectService } from '../../../services/teacherProjectService'; -import { ActivatedRoute, Router } from '@angular/router'; - -@Component({ - selector: 'choose-new-node-location', - templateUrl: 'choose-new-node-location.component.html', - styleUrls: ['./choose-new-node-location.component.scss', '../../add-content.scss'] -}) -export class ChooseNewNodeLocation { - protected nodeIds: string[]; - - constructor( - private projectService: TeacherProjectService, - private route: ActivatedRoute, - private router: Router - ) {} - - ngOnInit() { - this.nodeIds = Object.keys(this.projectService.idToOrder); - this.nodeIds.shift(); // remove the 'group0' master root node from consideration - } - - protected addNode(nodeId: string): void { - const newNode = this.projectService.createNode(history.state.title); - if (this.isGroupNode(nodeId)) { - this.projectService.createNodeInside(newNode, nodeId); - } else { - this.projectService.createNodeAfter(newNode, nodeId); - } - this.addInitialComponents(newNode.id, history.state.initialComponents); - this.save().then(() => { - this.goToNode(newNode); - }); - } - - private addInitialComponents(nodeId: string, components: any[]): void { - components - .reverse() - .forEach((component) => this.projectService.createComponent(nodeId, component.type)); - } - - private save(): any { - return this.projectService.checkPotentialStartNodeIdChangeThenSaveProject().then(() => { - this.projectService.refreshProject(); - }); - } - - private goToNode(node: any): void { - this.router.navigate(['../..'], { - relativeTo: this.route, - state: { newNodes: [node] } - }); - } - - protected isGroupNode(nodeId: string): boolean { - return this.projectService.isGroupNode(nodeId); - } - - protected getNodeTitle(nodeId: string): string { - return this.projectService.getNodeTitle(nodeId); - } - - protected getNodePositionById(nodeId: string): any { - return this.projectService.getNodePositionById(nodeId); - } - - protected isNodeInAnyBranchPath(nodeId: string): boolean { - return this.projectService.isNodeInAnyBranchPath(nodeId); - } -} diff --git a/src/assets/wise5/authoringTool/addNode/choose-new-node-template/choose-new-node-template.component.ts b/src/assets/wise5/authoringTool/addNode/choose-new-node-template/choose-new-node-template.component.ts index 73cdba774ea..14989ba24da 100644 --- a/src/assets/wise5/authoringTool/addNode/choose-new-node-template/choose-new-node-template.component.ts +++ b/src/assets/wise5/authoringTool/addNode/choose-new-node-template/choose-new-node-template.component.ts @@ -34,6 +34,11 @@ export class ChooseNewNodeTemplate { constructor(private route: ActivatedRoute, private router: Router) {} protected chooseTemplate(template: NewNodeTemplate) { - this.router.navigate(['..', ...template.route.split('/')], { relativeTo: this.route }); + this.router.navigate(['..', ...template.route.split('/')], { + relativeTo: this.route, + state: { + nodeIdToInsertInsideOrAfter: history.state.nodeIdToInsertInsideOrAfter + } + }); } } diff --git a/src/assets/wise5/authoringTool/addNode/choose-simulation/choose-simulation.component.html b/src/assets/wise5/authoringTool/addNode/choose-simulation/choose-simulation.component.html index 923d9755c8d..5250760c5ae 100644 --- a/src/assets/wise5/authoringTool/addNode/choose-simulation/choose-simulation.component.html +++ b/src/assets/wise5/authoringTool/addNode/choose-simulation/choose-simulation.component.html @@ -37,17 +37,25 @@
Interactive Simulation
diff --git a/src/assets/wise5/authoringTool/addNode/choose-simulation/choose-simulation.component.spec.ts b/src/assets/wise5/authoringTool/addNode/choose-simulation/choose-simulation.component.spec.ts index 302011b444c..becf1c07d87 100644 --- a/src/assets/wise5/authoringTool/addNode/choose-simulation/choose-simulation.component.spec.ts +++ b/src/assets/wise5/authoringTool/addNode/choose-simulation/choose-simulation.component.spec.ts @@ -10,6 +10,8 @@ import { MatInputModule } from '@angular/material/input'; import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; import { RouterTestingModule } from '@angular/router/testing'; import { MatDividerModule } from '@angular/material/divider'; +import { CopyNodesService } from '../../../services/copyNodesService'; +import { InsertNodesService } from '../../../services/insertNodesService'; describe('ChooseSimulationComponent', () => { let component: ChooseSimulationComponent; @@ -29,8 +31,9 @@ describe('ChooseSimulationComponent', () => { RouterTestingModule, StudentTeacherCommonServicesModule ], - providers: [TeacherProjectService] + providers: [CopyNodesService, InsertNodesService, TeacherProjectService] }).compileComponents(); + window.history.pushState({}, '', ''); fixture = TestBed.createComponent(ChooseSimulationComponent); component = fixture.componentInstance; fixture.detectChanges(); diff --git a/src/assets/wise5/authoringTool/addNode/choose-simulation/choose-simulation.component.ts b/src/assets/wise5/authoringTool/addNode/choose-simulation/choose-simulation.component.ts index 6ce1d7fc3a9..d4edfac3db6 100644 --- a/src/assets/wise5/authoringTool/addNode/choose-simulation/choose-simulation.component.ts +++ b/src/assets/wise5/authoringTool/addNode/choose-simulation/choose-simulation.component.ts @@ -1,6 +1,10 @@ import { Component } from '@angular/core'; import { TeacherProjectService } from '../../../services/teacherProjectService'; import { ActivatedRoute, Router } from '@angular/router'; +import { ConfigService } from '../../../services/configService'; +import { CopyNodesService } from '../../../services/copyNodesService'; +import { InsertNodesService } from '../../../services/insertNodesService'; +import { AbstractImportStepComponent } from '../abstract-import-step/abstract-import-step.component'; class SimulationNode { metadata = { @@ -17,7 +21,7 @@ class SimulationNode { templateUrl: './choose-simulation.component.html', styleUrls: ['./choose-simulation.component.scss', '../../add-content.scss'] }) -export class ChooseSimulationComponent { +export class ChooseSimulationComponent extends AbstractImportStepComponent { private allNodes: SimulationNode[] = []; protected filteredNodes: SimulationNode[] = []; protected project: any; @@ -25,22 +29,27 @@ export class ChooseSimulationComponent { protected searchText: string = ''; protected selectedNode: string; protected selectedSubjects: string[] = []; - private simulationProjectId: number; protected subjects: string[] = []; constructor( - private projectService: TeacherProjectService, - private route: ActivatedRoute, - private router: Router - ) {} + protected configService: ConfigService, + protected copyNodesService: CopyNodesService, + protected insertNodesService: InsertNodesService, + protected projectService: TeacherProjectService, + protected route: ActivatedRoute, + protected router: Router + ) { + super(configService, copyNodesService, insertNodesService, projectService, route, router); + } ngOnInit(): void { - this.simulationProjectId = this.projectService.getSimulationProjectId(); + super.ngOnInit(); + this.importProjectId = this.projectService.getSimulationProjectId(); this.showSimulationProject(); } private showSimulationProject(): void { - this.projectService.retrieveProjectById(this.simulationProjectId).then((projectJSON) => { + this.projectService.retrieveProjectById(this.importProjectId).then((projectJSON) => { this.project = projectJSON; const nodeOrderOfProject = this.projectService.getNodeOrderOfProject(this.project); this.projectItems = nodeOrderOfProject.nodes.slice(1); // remove root node from consideration @@ -95,16 +104,6 @@ export class ChooseSimulationComponent { window.open(`${this.project.previewProjectURL}/${node.id}`); } - protected next(): void { - this.router.navigate(['../../import-step/choose-location'], { - relativeTo: this.route, - state: { - importFromProjectId: this.simulationProjectId, - selectedNodes: [this.selectedNode] - } - }); - } - protected itemSelected(item: any): void { this.selectedNode = item; } diff --git a/src/assets/wise5/authoringTool/addNode/configure-automated-assessment/configure-automated-assessment.component.html b/src/assets/wise5/authoringTool/addNode/configure-automated-assessment/configure-automated-assessment.component.html index 10378a0b1cb..ad6ba1e8db3 100644 --- a/src/assets/wise5/authoringTool/addNode/configure-automated-assessment/configure-automated-assessment.component.html +++ b/src/assets/wise5/authoringTool/addNode/configure-automated-assessment/configure-automated-assessment.component.html @@ -28,9 +28,17 @@
Customize Feedback (optional)
diff --git a/src/assets/wise5/authoringTool/addNode/configure-automated-assessment/configure-automated-assessment.component.spec.ts b/src/assets/wise5/authoringTool/addNode/configure-automated-assessment/configure-automated-assessment.component.spec.ts index 871035735df..b32f14670ae 100644 --- a/src/assets/wise5/authoringTool/addNode/configure-automated-assessment/configure-automated-assessment.component.spec.ts +++ b/src/assets/wise5/authoringTool/addNode/configure-automated-assessment/configure-automated-assessment.component.spec.ts @@ -5,6 +5,9 @@ import { FormsModule } from '@angular/forms'; import { StudentTeacherCommonServicesModule } from '../../../../../app/student-teacher-common-services.module'; import { RouterTestingModule } from '@angular/router/testing'; import { MatDividerModule } from '@angular/material/divider'; +import { CopyNodesService } from '../../../services/copyNodesService'; +import { TeacherProjectService } from '../../../services/teacherProjectService'; +import { InsertNodesService } from '../../../services/insertNodesService'; describe('ConfigureAutomatedAssessmentComponent', () => { let component: ConfigureAutomatedAssessmentComponent; @@ -19,7 +22,8 @@ describe('ConfigureAutomatedAssessmentComponent', () => { MatDividerModule, RouterTestingModule, StudentTeacherCommonServicesModule - ] + ], + providers: [CopyNodesService, InsertNodesService, TeacherProjectService] }).compileComponents(); window.history.pushState( { @@ -31,7 +35,6 @@ describe('ConfigureAutomatedAssessmentComponent', () => { '', '' ); - fixture = TestBed.createComponent(ConfigureAutomatedAssessmentComponent); component = fixture.componentInstance; fixture.detectChanges(); diff --git a/src/assets/wise5/authoringTool/addNode/configure-automated-assessment/configure-automated-assessment.component.ts b/src/assets/wise5/authoringTool/addNode/configure-automated-assessment/configure-automated-assessment.component.ts index 796bebc8a68..9891209103d 100644 --- a/src/assets/wise5/authoringTool/addNode/configure-automated-assessment/configure-automated-assessment.component.ts +++ b/src/assets/wise5/authoringTool/addNode/configure-automated-assessment/configure-automated-assessment.component.ts @@ -1,31 +1,34 @@ import { Component } from '@angular/core'; import { ActivatedRoute, Router } from '@angular/router'; +import { ConfigService } from '../../../services/configService'; +import { CopyNodesService } from '../../../services/copyNodesService'; +import { InsertNodesService } from '../../../services/insertNodesService'; +import { TeacherProjectService } from '../../../services/teacherProjectService'; +import { AbstractImportStepComponent } from '../abstract-import-step/abstract-import-step.component'; @Component({ selector: 'configure-automated-assessment', templateUrl: './configure-automated-assessment.component.html', styleUrls: ['./configure-automated-assessment.component.scss', '../../add-content.scss'] }) -export class ConfigureAutomatedAssessmentComponent { +export class ConfigureAutomatedAssessmentComponent extends AbstractImportStepComponent { protected hasCustomization: boolean; - private importFromProjectId: number; protected node: any; - constructor(private route: ActivatedRoute, private router: Router) {} + constructor( + protected configService: ConfigService, + protected copyNodesService: CopyNodesService, + protected insertNodesService: InsertNodesService, + protected projectService: TeacherProjectService, + protected route: ActivatedRoute, + protected router: Router + ) { + super(configService, copyNodesService, insertNodesService, projectService, route, router); + } ngOnInit(): void { + super.ngOnInit(); this.node = history.state.node; this.hasCustomization = this.node.components.some((component: any) => component.enableCRater); - this.importFromProjectId = history.state.importFromProjectId; - } - - protected next(): void { - this.router.navigate(['../../import-step/choose-location'], { - relativeTo: this.route, - state: { - importFromProjectId: this.importFromProjectId, - selectedNodes: [this.node] - } - }); } } diff --git a/src/assets/wise5/authoringTool/project-authoring-lesson/project-authoring-lesson.component.ts b/src/assets/wise5/authoringTool/project-authoring-lesson/project-authoring-lesson.component.ts index 8358b9dde48..859ea859afc 100644 --- a/src/assets/wise5/authoringTool/project-authoring-lesson/project-authoring-lesson.component.ts +++ b/src/assets/wise5/authoringTool/project-authoring-lesson/project-authoring-lesson.component.ts @@ -6,7 +6,6 @@ import { NodeTypeSelected } from '../domain/node-type-selected'; import { ExpandEvent } from '../domain/expand-event'; import { DeleteNodeService } from '../../services/deleteNodeService'; import { ActivatedRoute, Router } from '@angular/router'; -import { temporarilyHighlightElement } from '../../common/dom/dom'; @Component({ selector: 'project-authoring-lesson', @@ -69,39 +68,28 @@ export class ProjectAuthoringLessonComponent { } protected addStepBefore(nodeId: string): void { - const newStep = this.createNewEmptyStep(); if (this.projectService.isFirstStepInLesson(nodeId)) { - this.projectService.createNodeInside(newStep, this.projectService.getParentGroupId(nodeId)); + this.addStepInside(this.projectService.getParentGroupId(nodeId)); } else { - this.projectService.createNodeAfter(newStep, this.projectService.getPreviousNodeId(nodeId)); + this.addStepAfter(this.projectService.getPreviousNodeId(nodeId)); } - this.updateProject(newStep.id); } protected addStepAfter(nodeId: string): void { - const newStep = this.createNewEmptyStep(); - this.projectService.createNodeAfter(newStep, nodeId); - this.updateProject(newStep.id); + this.router.navigate(['add-node', 'choose-template'], { + relativeTo: this.route, + state: { + nodeIdToInsertInsideOrAfter: nodeId + } + }); } protected addStepInside(nodeId: string): void { - const newStep = this.createNewEmptyStep(); - this.projectService.createNodeInside(newStep, nodeId); - this.updateProject(newStep.id); - } - - private createNewEmptyStep(): any { - return this.projectService.createNode('New Step'); - } - - private updateProject(newNodeId: string): void { - this.projectService.checkPotentialStartNodeIdChangeThenSaveProject().then(() => { - this.projectService.refreshProject(); - // This timeout is used to allow steps to have time to apply background color if they are in a - // branch path - setTimeout(() => { - temporarilyHighlightElement(newNodeId); - }); + this.router.navigate(['add-node', 'choose-template'], { + relativeTo: this.route, + state: { + nodeIdToInsertInsideOrAfter: nodeId + } }); } diff --git a/src/assets/wise5/authoringTool/project-authoring/project-authoring.component.html b/src/assets/wise5/authoringTool/project-authoring/project-authoring.component.html index e943d631274..b9125997bac 100644 --- a/src/assets/wise5/authoringTool/project-authoring/project-authoring.component.html +++ b/src/assets/wise5/authoringTool/project-authoring/project-authoring.component.html @@ -10,17 +10,6 @@ > queue -