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 66fedff8448..24864f04589 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,4 +1,4 @@ -
Choose the step(s) that you want to import, then select Submit.
+
Choose the step(s) that you want to import, then select Next.

Selected unit: {{ project?.metadata.title }} + - + diff --git a/src/app/authoring-tool/import-step/choose-import-unit/choose-import-unit.component.ts b/src/app/authoring-tool/import-step/choose-import-unit/choose-import-unit.component.ts index b3cb34b41b0..83014b33391 100644 --- a/src/app/authoring-tool/import-step/choose-import-unit/choose-import-unit.component.ts +++ b/src/app/authoring-tool/import-step/choose-import-unit/choose-import-unit.component.ts @@ -25,7 +25,6 @@ import { FlexLayoutModule } from '@angular/flex-layout'; templateUrl: './choose-import-unit.component.html' }) export class ChooseImportUnitComponent { - protected importType: 'step' | 'component'; protected libraryProjects: any[]; protected myProjects: any[]; private subscriptions: Subscription = new Subscription(); @@ -39,13 +38,12 @@ export class ChooseImportUnitComponent { ) {} ngOnInit(): void { - this.importType = history.state.importType; this.target = history.state; this.myProjects = this.configService.getAuthorableProjects(); this.subscriptions.add( - this.projectLibraryService - .getLibraryProjects() - .subscribe((libraryProjects) => (this.libraryProjects = libraryProjects)) + this.projectLibraryService.getLibraryProjects().subscribe((libraryProjects) => { + this.libraryProjects = libraryProjects; + }) ); } @@ -55,19 +53,7 @@ export class ChooseImportUnitComponent { protected chooseProject(project: any): void { this.target.importProjectId = project.id; - this.navigate('../choose-component', '../choose-step'); - } - - protected goBack(): void { - this.navigate('../..', '../../choose-template'); - } - - protected cancel(): void { - this.navigate('../..', '../../..'); - } - - private navigate(componentUrl: string, stepUrl: string): void { - this.router.navigate([this.importType === 'component' ? componentUrl : stepUrl], { + this.router.navigate(['../choose-step'], { relativeTo: this.route, state: this.target }); diff --git a/src/app/services/cRaterService.spec.ts b/src/app/services/cRaterService.spec.ts index 4c16723a510..ddc0728a75d 100644 --- a/src/app/services/cRaterService.spec.ts +++ b/src/app/services/cRaterService.spec.ts @@ -6,28 +6,16 @@ import { CRaterIdea } from '../../assets/wise5/components/common/cRater/CRaterId import { CRaterScore } from '../../assets/wise5/components/common/cRater/CRaterScore'; import { RawCRaterResponse } from '../../assets/wise5/components/common/cRater/RawCRaterResponse'; import { provideHttpClient, withInterceptorsFromDi } from '@angular/common/http'; -import { ProjectService } from '../../assets/wise5/services/projectService'; -import { ComponentContent } from '../../assets/wise5/common/ComponentContent'; let service: CRaterService; let configService: ConfigService; let http: HttpTestingController; -class MockProjectService { - getComponent(): ComponentContent { - return {} as ComponentContent; - } -} describe('CRaterService', () => { beforeEach(() => { TestBed.configureTestingModule({ - providers: [ - ConfigService, - CRaterService, - { provide: ProjectService, useClass: MockProjectService }, - provideHttpClient(withInterceptorsFromDi()), - provideHttpClientTesting() - ] - }); + imports: [], + providers: [ConfigService, CRaterService, provideHttpClient(withInterceptorsFromDi()), provideHttpClientTesting()] +}); http = TestBed.inject(HttpTestingController); configService = TestBed.inject(ConfigService); service = TestBed.inject(CRaterService); @@ -35,7 +23,6 @@ describe('CRaterService', () => { makeCRaterScoringRequest(); getCRaterItemId(); - getCRaterRubric(); isCRaterEnabled(); isCRaterScoreOnEvent(); getCRaterFeedbackTextByScore(); @@ -277,24 +264,3 @@ function getDataFromResponse() { }); }); } - -function getCRaterRubric() { - describe('getCRaterRubric', () => { - let projectService; - beforeEach(() => { - projectService = TestBed.inject(ProjectService); - }); - it('should get CRater rubric when rubric exists on the component', () => { - spyOn(projectService, 'getComponent').and.returnValue({ - cRaterRubric: { ideas: [{ name: '1', studentText: 'Idea 1' }] } - } as unknown as ComponentContent); - const cRaterRubric = service.getCRaterRubric('nodeId', 'componentId'); - expect(cRaterRubric.getStudentTextForIdea('1')).toEqual('Idea 1'); - }); - it('should get an empty CRater rubric when rubric does not exists on the component', () => { - spyOn(projectService, 'getComponent').and.returnValue({} as unknown as ComponentContent); - const cRaterRubric = service.getCRaterRubric('nodeId', 'componentId'); - expect(cRaterRubric.getStudentTextForIdea('1')).toEqual('1'); - }); - }); -} diff --git a/src/app/student-teacher-common.module.ts b/src/app/student-teacher-common.module.ts index 4e9e9bdb906..9b00d29d946 100644 --- a/src/app/student-teacher-common.module.ts +++ b/src/app/student-teacher-common.module.ts @@ -30,6 +30,7 @@ import { MatDividerModule } from '@angular/material/divider'; import { MatChipsModule } from '@angular/material/chips'; import { NotebookModule } from './notebook/notebook.module'; import { MatSliderModule } from '@angular/material/slider'; +import { DialogResponseComponent } from '../assets/wise5/components/dialogGuidance/dialog-response/dialog-response.component'; import { DialogResponsesComponent } from '../assets/wise5/components/dialogGuidance/dialog-responses/dialog-responses.component'; import { HighchartsChartModule } from 'highcharts-angular'; import { EditNotebookItemDialogModule } from '../assets/wise5/themes/default/notebook/edit-notebook-item-dialog/edit-notebook-item-dialog.module'; @@ -39,9 +40,9 @@ import { MatMenuModule } from '@angular/material/menu'; import { ScrollingModule } from '@angular/cdk/scrolling'; @NgModule({ + declarations: [DialogResponseComponent, DialogResponsesComponent], imports: [ CommonModule, - DialogResponsesComponent, DragDropModule, EditNotebookItemDialogModule, EditorModule, @@ -80,6 +81,7 @@ import { ScrollingModule } from '@angular/cdk/scrolling'; ], exports: [ CommonModule, + DialogResponseComponent, DialogResponsesComponent, DragDropModule, EditorModule, diff --git a/src/app/teacher/authoring-routing.module.ts b/src/app/teacher/authoring-routing.module.ts index fbfd023edfb..9390f4f4e99 100644 --- a/src/app/teacher/authoring-routing.module.ts +++ b/src/app/teacher/authoring-routing.module.ts @@ -154,16 +154,7 @@ const routes: Routes = [ }, { path: 'import-component', - children: [ - { - path: 'choose-component', - component: ChooseImportComponentComponent - }, - { - path: 'choose-unit', - component: ChooseImportUnitComponent - } - ] + children: [{ path: 'choose-component', component: ChooseImportComponentComponent }] } ] }, diff --git a/src/app/teacher/authoring-tool.module.ts b/src/app/teacher/authoring-tool.module.ts index 8b4f180fe20..c08cdf24dc0 100644 --- a/src/app/teacher/authoring-tool.module.ts +++ b/src/app/teacher/authoring-tool.module.ts @@ -13,6 +13,7 @@ import { StudentTeacherCommonModule } from '../student-teacher-common.module'; import { RecoveryAuthoringComponent } from '../../assets/wise5/authoringTool/recovery-authoring/recovery-authoring.component'; import { AddLessonConfigureComponent } from '../../assets/wise5/authoringTool/addLesson/add-lesson-configure/add-lesson-configure.component'; import { ConcurrentAuthorsMessageComponent } from '../../assets/wise5/authoringTool/concurrent-authors-message/concurrent-authors-message.component'; +import { ImportComponentModule } from '../../assets/wise5/authoringTool/importComponent/import-component-module'; import { NodeAdvancedAuthoringModule } from '../../assets/wise5/authoringTool/node/advanced/node-advanced-authoring.module'; import { NodeAuthoringComponent } from '../../assets/wise5/authoringTool/node/node-authoring/node-authoring.component'; import { TeacherNodeIconComponent } from '../../assets/wise5/authoringTool/teacher-node-icon/teacher-node-icon.component'; @@ -60,7 +61,6 @@ import { MatExpansionModule } from '@angular/material/expansion'; import { AddComponentComponent } from '../../assets/wise5/authoringTool/node/add-component/add-component.component'; import { SideMenuComponent } from '../../assets/wise5/common/side-menu/side-menu.component'; import { MainMenuComponent } from '../../assets/wise5/common/main-menu/main-menu.component'; -import { ChooseImportComponentComponent } from '../../assets/wise5/authoringTool/importComponent/choose-import-component/choose-import-component.component'; @NgModule({ declarations: [ @@ -93,7 +93,6 @@ import { ChooseImportComponentComponent } from '../../assets/wise5/authoringTool AuthoringToolBarComponent, ChooseAutomatedAssessmentComponent, ChooseCopyNodeLocationComponent, - ChooseImportComponentComponent, ChooseImportStepComponent, ChooseImportUnitComponent, ChooseNewNodeTemplateComponent, @@ -109,6 +108,7 @@ import { ChooseImportComponentComponent } from '../../assets/wise5/authoringTool MatBadgeModule, MatChipsModule, MatExpansionModule, + ImportComponentModule, InsertNodeAfterButtonComponent, InsertNodeInsideButtonComponent, MainMenuComponent, diff --git a/src/app/teacher/component-authoring.module.ts b/src/app/teacher/component-authoring.module.ts index 8e4f0979a71..75a84f5d74a 100644 --- a/src/app/teacher/component-authoring.module.ts +++ b/src/app/teacher/component-authoring.module.ts @@ -11,7 +11,7 @@ import { GraphAuthoring } from '../../assets/wise5/components/graph/graph-author import { EditHTMLAdvancedComponent } from '../../assets/wise5/components/html/edit-html-advanced/edit-html-advanced.component'; import { HtmlAuthoring } from '../../assets/wise5/components/html/html-authoring/html-authoring.component'; import { LabelAuthoring } from '../../assets/wise5/components/label/label-authoring/label-authoring.component'; -import { MatchAuthoringComponent } from '../../assets/wise5/components/match/match-authoring/match-authoring.component'; +import { MatchAuthoring } from '../../assets/wise5/components/match/match-authoring/match-authoring.component'; import { MultipleChoiceAuthoring } from '../../assets/wise5/components/multipleChoice/multiple-choice-authoring/multiple-choice-authoring.component'; import { OpenResponseAuthoringComponent } from '../../assets/wise5/components/openResponse/open-response-authoring/open-response-authoring.component'; import { EditOutsideUrlAdvancedComponent } from '../../assets/wise5/components/outsideURL/edit-outside-url-advanced/edit-outside-url-advanced.component'; @@ -158,6 +158,7 @@ import { RequiredErrorLabelComponent } from '../../assets/wise5/authoringTool/no GraphAuthoring, HtmlAuthoring, LabelAuthoring, + MatchAuthoring, OutsideUrlAuthoring, PeerChatAuthoringComponent, ShowGroupWorkAuthoringComponent, @@ -172,7 +173,6 @@ import { RequiredErrorLabelComponent } from '../../assets/wise5/authoringTool/no EditComponentConstraintsComponent, EditComponentPrompt, EditComponentWidthComponent, - MatchAuthoringComponent, MultipleChoiceAuthoring, OpenResponseAuthoringComponent, PeerGroupingAuthoringModule, @@ -244,7 +244,7 @@ import { RequiredErrorLabelComponent } from '../../assets/wise5/authoringTool/no GraphAuthoring, HtmlAuthoring, LabelAuthoring, - MatchAuthoringComponent, + MatchAuthoring, MultipleChoiceAuthoring, OpenResponseAuthoringComponent, OutsideUrlAuthoring, diff --git a/src/app/teacher/component-show-work.module.ts b/src/app/teacher/component-show-work.module.ts index b33893a04d0..dca0377952b 100644 --- a/src/app/teacher/component-show-work.module.ts +++ b/src/app/teacher/component-show-work.module.ts @@ -2,6 +2,7 @@ import { NgModule } from '@angular/core'; import { AnimationShowWorkModule } from '../../assets/wise5/components/animation/animation-show-work/animation-show-work.module'; import { AudioOscillatorShowWorkModule } from '../../assets/wise5/components/audioOscillator/audio-oscillator-show-work/audio-oscillator-show-work.module'; import { ConceptMapShowWorkModule } from '../../assets/wise5/components/conceptMap/concept-map-show-work/concept-map-show-work.module'; +import { DialogGuidanceShowWorkModule } from '../../assets/wise5/components/dialogGuidance/dialog-guidance-show-work/dialog-guidance-show-work.module'; import { DiscussionShowWorkModule } from '../../assets/wise5/components/discussion/discussion-show-work/discussion-show-work.module'; import { DrawShowWorkModule } from '../../assets/wise5/components/draw/draw-show-work/draw-show-work.module'; import { EmbeddedShowWorkModule } from '../../assets/wise5/components/embedded/embedded-show-work/embedded-show-work.module'; @@ -11,14 +12,13 @@ import { MatchShowWorkModule } from '../../assets/wise5/components/match/match-s import { OpenResponseShowWorkModule } from '../../assets/wise5/components/openResponse/open-response-show-work/open-response-show-work.module'; import { TableShowWorkModule } from '../../assets/wise5/components/table/table-show-work/table-show-work.module'; import { MultipleChoiceShowWorkComponent } from '../../assets/wise5/components/multipleChoice/multiple-choice-show-work/multiple-choice-show-work.component'; -import { DialogGuidanceShowWorkComponent } from '../../assets/wise5/components/dialogGuidance/dialog-guidance-show-work/dialog-guidance-show-work.component'; @NgModule({ imports: [ AnimationShowWorkModule, AudioOscillatorShowWorkModule, ConceptMapShowWorkModule, - DialogGuidanceShowWorkComponent, + DialogGuidanceShowWorkModule, DiscussionShowWorkModule, DrawShowWorkModule, EmbeddedShowWorkModule, @@ -33,7 +33,7 @@ import { DialogGuidanceShowWorkComponent } from '../../assets/wise5/components/d AnimationShowWorkModule, AudioOscillatorShowWorkModule, ConceptMapShowWorkModule, - DialogGuidanceShowWorkComponent, + DialogGuidanceShowWorkModule, DiscussionShowWorkModule, DrawShowWorkModule, EmbeddedShowWorkModule, diff --git a/src/assets/wise5/authoringTool/importComponent/choose-import-component/choose-import-component.component.html b/src/assets/wise5/authoringTool/importComponent/choose-import-component/choose-import-component.component.html index 4833283ac2e..a25172e603f 100644 --- a/src/assets/wise5/authoringTool/importComponent/choose-import-component/choose-import-component.component.html +++ b/src/assets/wise5/authoringTool/importComponent/choose-import-component/choose-import-component.component.html @@ -1,95 +1,132 @@ -

Choose the component(s) that you want to import, then select Submit.
-

- Selected unit: {{ project?.metadata.title }} - -

-@for (item of projectIdToOrder; track item.order) { -
+ {{ + project.id + + ' - ' + + project.name + + (project.runId ? ' (Run ID: ' + project.runId + ')' : '') + }} + + + +
+ + Library Units + - @if (item.node.type == 'group') { -
{{ item.stepNumber }}: {{ item.node.title }}
- } @else { -
- {{ item.stepNumber }}: {{ item.node.title }} - -
- @for (component of item.node.components; track component.id; let i = $index) { -
-
-
- - {{ i + 1 }}. {{ component.type }} - -
-
- -
-
-
- } - } -
-} -