From 72b2e9e29456fff694fd2fd450bf16196c1488b2 Mon Sep 17 00:00:00 2001 From: Hiroki Terashima Date: Mon, 12 Aug 2024 15:29:40 -0700 Subject: [PATCH] refactor(TeacherProjectService): Extract newProjectTemplate to its own file --- .../add-project/add-project.component.ts | 4 +- .../authoringTool/new-project-template.ts | 136 +++++++ .../notebook-authoring.component.ts | 6 +- .../wise5/services/teacherProjectService.ts | 142 +------ src/messages.xlf | 370 +++++++++--------- 5 files changed, 330 insertions(+), 328 deletions(-) create mode 100644 src/assets/wise5/authoringTool/new-project-template.ts diff --git a/src/assets/wise5/authoringTool/add-project/add-project.component.ts b/src/assets/wise5/authoringTool/add-project/add-project.component.ts index 8b29560c35d..5e860a506af 100644 --- a/src/assets/wise5/authoringTool/add-project/add-project.component.ts +++ b/src/assets/wise5/authoringTool/add-project/add-project.component.ts @@ -4,6 +4,8 @@ import { TeacherProjectService } from '../../services/teacherProjectService'; import { MatDialog } from '@angular/material/dialog'; import { DialogWithSpinnerComponent } from '../../directives/dialog-with-spinner/dialog-with-spinner.component'; import { Router } from '@angular/router'; +import { copy } from '../../common/object/object'; +import { newProjectTemplate } from '../new-project-template'; @Component({ selector: 'add-project', @@ -38,7 +40,7 @@ export class AddProjectComponent { }, disableClose: true }); - const project = this.projectService.getNewProjectTemplate(); + const project = copy(newProjectTemplate); project.metadata.title = this.addProjectFormGroup.controls['title'].value; const projectJSONString = JSON.stringify(project, null, 4); this.projectService diff --git a/src/assets/wise5/authoringTool/new-project-template.ts b/src/assets/wise5/authoringTool/new-project-template.ts new file mode 100644 index 00000000000..46ddd10071b --- /dev/null +++ b/src/assets/wise5/authoringTool/new-project-template.ts @@ -0,0 +1,136 @@ +export const newProjectTemplate = { + nodes: [ + { + id: 'group0', + type: 'group', + title: 'Master', + startId: 'group1', + ids: ['group1'] + }, + { + id: 'group1', + type: 'group', + title: $localize`First Lesson`, + startId: 'node1', + ids: ['node1'], + icons: { + default: { + color: '#2196F3', + type: 'font', + fontSet: 'material-icons', + fontName: 'info' + } + }, + transitionLogic: { + transitions: [] + } + }, + { + id: 'node1', + type: 'node', + title: $localize`First Step`, + components: [], + constraints: [], + showSaveButton: false, + showSubmitButton: false, + transitionLogic: { + transitions: [] + } + } + ], + constraints: [], + startGroupId: 'group0', + startNodeId: 'node1', + navigationMode: 'guided', + layout: { + template: 'starmap|leftNav|rightNav' + }, + metadata: { + title: '' + }, + notebook: { + enabled: false, + label: $localize`Notebook`, + enableAddNew: true, + itemTypes: { + note: { + type: 'note', + enabled: true, + enableLink: true, + enableAddNote: true, + enableClipping: true, + enableStudentUploads: true, + requireTextOnEveryNote: false, + label: { + singular: $localize`note`, + plural: $localize`notes`, + link: $localize`Notes`, + icon: 'note', + color: '#1565C0' + } + }, + report: { + enabled: false, + label: { + singular: $localize`report`, + plural: $localize`reports`, + link: $localize`Report`, + icon: 'assignment', + color: '#AD1457' + }, + notes: [ + { + reportId: 'finalReport', + title: $localize`Final Report`, + description: $localize`Final summary report of what you learned in this unit`, + prompt: $localize`Use this space to write your final report using evidence from your notebook.`, + content: $localize`

This is a heading

This is a paragraph.

` + } + ] + } + } + }, + teacherNotebook: { + enabled: true, + label: $localize`Teacher Notebook`, + enableAddNew: true, + itemTypes: { + note: { + type: 'note', + enabled: false, + enableLink: true, + enableAddNote: true, + enableClipping: true, + enableStudentUploads: true, + requireTextOnEveryNote: false, + label: { + singular: $localize`note`, + plural: $localize`notes`, + link: $localize`Notes`, + icon: 'note', + color: '#1565C0' + } + }, + report: { + enabled: true, + label: { + singular: $localize`teacher notes`, + plural: $localize`teacher notes`, + link: $localize`Teacher Notes`, + icon: 'assignment', + color: '#AD1457' + }, + notes: [ + { + reportId: 'teacherReport', + title: $localize`Teacher Notes`, + description: $localize`Notes for the teacher as they're running the WISE unit`, + prompt: $localize`Use this space to take notes for this unit`, + content: $localize`

Use this space to take notes for this unit

` + } + ] + } + } + }, + inactiveNodes: [] +}; diff --git a/src/assets/wise5/authoringTool/notebook-authoring/notebook-authoring.component.ts b/src/assets/wise5/authoringTool/notebook-authoring/notebook-authoring.component.ts index e277cab1966..26e9f2ed92d 100644 --- a/src/assets/wise5/authoringTool/notebook-authoring/notebook-authoring.component.ts +++ b/src/assets/wise5/authoringTool/notebook-authoring/notebook-authoring.component.ts @@ -3,6 +3,8 @@ import { insertWiseLinks, replaceWiseLinks } from '../../common/wise-link/wise-l import { ConfigService } from '../../services/configService'; import { TeacherProjectService } from '../../services/teacherProjectService'; import { Subject, debounceTime } from 'rxjs'; +import { copy } from '../../common/object/object'; +import { newProjectTemplate } from '../new-project-template'; @Component({ selector: 'notebook-authoring', @@ -24,12 +26,12 @@ export class NotebookAuthoringComponent { this.reportIdToAuthoringNote = {}; if (this.project.notebook == null) { - const projectTemplate = this.projectService.getNewProjectTemplate(); + const projectTemplate = copy(newProjectTemplate); this.project.notebook = projectTemplate.notebook; } if (this.project.teacherNotebook == null) { - const projectTemplate = this.projectService.getNewProjectTemplate(); + const projectTemplate = copy(newProjectTemplate); projectTemplate.teacherNotebook.enabled = false; this.project.teacherNotebook = projectTemplate.teacherNotebook; } diff --git a/src/assets/wise5/services/teacherProjectService.ts b/src/assets/wise5/services/teacherProjectService.ts index f62d564c64c..e4899477205 100644 --- a/src/assets/wise5/services/teacherProjectService.ts +++ b/src/assets/wise5/services/teacherProjectService.ts @@ -26,7 +26,8 @@ export class TeacherProjectService extends ProjectService { public errorSavingProject$: Observable = this.errorSavingProjectSource.asObservable(); private nodeTypeSelected: WritableSignal = signal(null); private notAllowedToEditThisProjectSource: Subject = new Subject(); - public notAllowedToEditThisProject$: Observable = this.notAllowedToEditThisProjectSource.asObservable(); + public notAllowedToEditThisProject$: Observable = + this.notAllowedToEditThisProjectSource.asObservable(); private projectSavedSource: Subject = new Subject(); public projectSaved$: Observable = this.projectSavedSource.asObservable(); private savingProjectSource: Subject = new Subject(); @@ -44,145 +45,6 @@ export class TeacherProjectService extends ProjectService { super(branchService, componentServiceLookupService, http, configService, pathService); } - getNewProjectTemplate() { - return { - nodes: [ - { - id: 'group0', - type: 'group', - title: 'Master', - startId: 'group1', - ids: ['group1'] - }, - { - id: 'group1', - type: 'group', - title: $localize`First Lesson`, - startId: 'node1', - ids: ['node1'], - icons: { - default: { - color: '#2196F3', - type: 'font', - fontSet: 'material-icons', - fontName: 'info' - } - }, - transitionLogic: { - transitions: [] - } - }, - { - id: 'node1', - type: 'node', - title: $localize`First Step`, - components: [], - constraints: [], - showSaveButton: false, - showSubmitButton: false, - transitionLogic: { - transitions: [] - } - } - ], - constraints: [], - startGroupId: 'group0', - startNodeId: 'node1', - navigationMode: 'guided', - layout: { - template: 'starmap|leftNav|rightNav' - }, - metadata: { - title: '' - }, - notebook: { - enabled: false, - label: $localize`Notebook`, - enableAddNew: true, - itemTypes: { - note: { - type: 'note', - enabled: true, - enableLink: true, - enableAddNote: true, - enableClipping: true, - enableStudentUploads: true, - requireTextOnEveryNote: false, - label: { - singular: $localize`note`, - plural: $localize`notes`, - link: $localize`Notes`, - icon: 'note', - color: '#1565C0' - } - }, - report: { - enabled: false, - label: { - singular: $localize`report`, - plural: $localize`reports`, - link: $localize`Report`, - icon: 'assignment', - color: '#AD1457' - }, - notes: [ - { - reportId: 'finalReport', - title: $localize`Final Report`, - description: $localize`Final summary report of what you learned in this unit`, - prompt: $localize`Use this space to write your final report using evidence from your notebook.`, - content: $localize`

This is a heading

This is a paragraph.

` - } - ] - } - } - }, - teacherNotebook: { - enabled: true, - label: $localize`Teacher Notebook`, - enableAddNew: true, - itemTypes: { - note: { - type: 'note', - enabled: false, - enableLink: true, - enableAddNote: true, - enableClipping: true, - enableStudentUploads: true, - requireTextOnEveryNote: false, - label: { - singular: $localize`note`, - plural: $localize`notes`, - link: $localize`Notes`, - icon: 'note', - color: '#1565C0' - } - }, - report: { - enabled: true, - label: { - singular: $localize`teacher notes`, - plural: $localize`teacher notes`, - link: $localize`Teacher Notes`, - icon: 'assignment', - color: '#AD1457' - }, - notes: [ - { - reportId: 'teacherReport', - title: $localize`Teacher Notes`, - description: $localize`Notes for the teacher as they're running the WISE unit`, - prompt: $localize`Use this space to take notes for this unit`, - content: $localize`

Use this space to take notes for this unit

` - } - ] - } - } - }, - inactiveNodes: [] - }; - } - notifyAuthorProjectBeginEnd(projectId, isBegin) { return this.http.post(`/api/author/project/notify/${projectId}/${isBegin}`, null).toPromise(); } diff --git a/src/messages.xlf b/src/messages.xlf index 59982d2fe1d..21a49bf752e 100644 --- a/src/messages.xlf +++ b/src/messages.xlf @@ -9456,14 +9456,14 @@ Click "Cancel" to keep the invalid JSON open so you can fix it.Creating Unit... src/assets/wise5/authoringTool/add-project/add-project.component.ts - 37 + 39 There was an error creating this unit. Please contact WISE staff. src/assets/wise5/authoringTool/add-project/add-project.component.ts - 52 + 54 @@ -11320,6 +11320,183 @@ Click "Cancel" to keep the invalid JSON open so you can fix it.443 + + First Lesson + + src/assets/wise5/authoringTool/new-project-template.ts + 13 + + + + First Step + + src/assets/wise5/authoringTool/new-project-template.ts + 31 + + + + Notebook + + src/assets/wise5/authoringTool/new-project-template.ts + 53 + + + src/assets/wise5/services/notebookService.ts + 18 + + + + note + + src/assets/wise5/authoringTool/new-project-template.ts + 65 + + + src/assets/wise5/authoringTool/new-project-template.ts + 107 + + + src/assets/wise5/services/notebookService.ts + 31 + + + + notes + + src/assets/wise5/authoringTool/new-project-template.ts + 66 + + + src/assets/wise5/authoringTool/new-project-template.ts + 108 + + + src/assets/wise5/services/notebookService.ts + 32 + + + + Notes + + src/assets/wise5/authoringTool/new-project-template.ts + 67 + + + src/assets/wise5/authoringTool/new-project-template.ts + 109 + + + + report + + src/assets/wise5/authoringTool/new-project-template.ts + 75 + + + src/assets/wise5/services/notebookService.ts + 43 + + + + reports + + src/assets/wise5/authoringTool/new-project-template.ts + 76 + + + src/assets/wise5/services/notebookService.ts + 44 + + + + Report + + src/assets/wise5/authoringTool/new-project-template.ts + 77 + + + src/assets/wise5/services/notebookService.ts + 45 + + + + Final Report + + src/assets/wise5/authoringTool/new-project-template.ts + 84 + + + + Final summary report of what you learned in this unit + + src/assets/wise5/authoringTool/new-project-template.ts + 85 + + + + Use this space to write your final report using evidence from your notebook. + + src/assets/wise5/authoringTool/new-project-template.ts + 86 + + + + <h3>This is a heading</h3><p>This is a paragraph.</p> + + src/assets/wise5/authoringTool/new-project-template.ts + 87 + + + + Teacher Notebook + + src/assets/wise5/authoringTool/new-project-template.ts + 95 + + + + teacher notes + + src/assets/wise5/authoringTool/new-project-template.ts + 117 + + + src/assets/wise5/authoringTool/new-project-template.ts + 118 + + + + Teacher Notes + + src/assets/wise5/authoringTool/new-project-template.ts + 119 + + + src/assets/wise5/authoringTool/new-project-template.ts + 126 + + + + Notes for the teacher as they're running the WISE unit + + src/assets/wise5/authoringTool/new-project-template.ts + 127 + + + + Use this space to take notes for this unit + + src/assets/wise5/authoringTool/new-project-template.ts + 128 + + + + <p>Use this space to take notes for this unit</p> + + src/assets/wise5/authoringTool/new-project-template.ts + 129 + + Add a new component @@ -21550,47 +21727,6 @@ If this problem continues, let your teacher know and move on to the next activit 560 - - Notebook - - src/assets/wise5/services/notebookService.ts - 18 - - - src/assets/wise5/services/teacherProjectService.ts - 100 - - - - note - - src/assets/wise5/services/notebookService.ts - 31 - - - src/assets/wise5/services/teacherProjectService.ts - 112 - - - src/assets/wise5/services/teacherProjectService.ts - 154 - - - - notes - - src/assets/wise5/services/notebookService.ts - 32 - - - src/assets/wise5/services/teacherProjectService.ts - 113 - - - src/assets/wise5/services/teacherProjectService.ts - 155 - - Manage Notes @@ -21598,39 +21734,6 @@ If this problem continues, let your teacher know and move on to the next activit 33 - - report - - src/assets/wise5/services/notebookService.ts - 43 - - - src/assets/wise5/services/teacherProjectService.ts - 122 - - - - reports - - src/assets/wise5/services/notebookService.ts - 44 - - - src/assets/wise5/services/teacherProjectService.ts - 123 - - - - Report - - src/assets/wise5/services/notebookService.ts - 45 - - - src/assets/wise5/services/teacherProjectService.ts - 124 - - You have new replies to your discussion post! @@ -21841,149 +21944,46 @@ If this problem continues, let your teacher know and move on to the next activit 51 - - First Lesson - - src/assets/wise5/services/teacherProjectService.ts - 60 - - - - First Step - - src/assets/wise5/services/teacherProjectService.ts - 78 - - - - Notes - - src/assets/wise5/services/teacherProjectService.ts - 114 - - - src/assets/wise5/services/teacherProjectService.ts - 156 - - - - Final Report - - src/assets/wise5/services/teacherProjectService.ts - 131 - - - - Final summary report of what you learned in this unit - - src/assets/wise5/services/teacherProjectService.ts - 132 - - - - Use this space to write your final report using evidence from your notebook. - - src/assets/wise5/services/teacherProjectService.ts - 133 - - - - <h3>This is a heading</h3><p>This is a paragraph.</p> - - src/assets/wise5/services/teacherProjectService.ts - 134 - - - - Teacher Notebook - - src/assets/wise5/services/teacherProjectService.ts - 142 - - - - teacher notes - - src/assets/wise5/services/teacherProjectService.ts - 164 - - - src/assets/wise5/services/teacherProjectService.ts - 165 - - - - Teacher Notes - - src/assets/wise5/services/teacherProjectService.ts - 166 - - - src/assets/wise5/services/teacherProjectService.ts - 173 - - - - Notes for the teacher as they're running the WISE unit - - src/assets/wise5/services/teacherProjectService.ts - 174 - - - - Use this space to take notes for this unit - - src/assets/wise5/services/teacherProjectService.ts - 175 - - - - <p>Use this space to take notes for this unit</p> - - src/assets/wise5/services/teacherProjectService.ts - 176 - - All steps after this one will not be visitable until src/assets/wise5/services/teacherProjectService.ts - 948 + 810 All steps after this one will not be visible until src/assets/wise5/services/teacherProjectService.ts - 951 + 813 All other steps will not be visitable until src/assets/wise5/services/teacherProjectService.ts - 954 + 816 All other steps will not be visible until src/assets/wise5/services/teacherProjectService.ts - 957 + 819 This step will not be visitable until src/assets/wise5/services/teacherProjectService.ts - 960 + 822 This step will not be visible until src/assets/wise5/services/teacherProjectService.ts - 963 + 825