From 6868e58563a0717cbcc5b4fd60be851ce1649972 Mon Sep 17 00:00:00 2001 From: Hiroki Terashima Date: Tue, 10 Oct 2023 15:07:17 -0700 Subject: [PATCH] refactor(Annotation): Create Annotation class Remove extra wrapper { annotation: annotation } that is sent around in observables --- .../component-new-work-badge.component.ts | 7 +++--- .../milestones/milestones.component.ts | 3 ++- .../notebook-report.component.ts | 3 ++- .../edit-component-annotations.component.ts | 7 +++--- .../milestone-grading-view.component.ts | 3 ++- .../node-grading-view.component.ts | 3 ++- .../student-grading.component.ts | 3 ++- src/assets/wise5/common/Annotation.ts | 15 +++++++++++ .../components/component-student.component.ts | 5 ++-- .../open-response-student.component.ts | 7 +++--- .../wise5/services/annotationService.ts | 25 ++++++++++--------- src/assets/wise5/services/notebookService.ts | 5 ++-- .../wise5/services/studentDataService.ts | 2 +- .../wise5/services/studentWebSocketService.ts | 16 ++++++------ .../wise5/services/teacherDataService.ts | 9 ++++--- .../wise5/services/teacherWebSocketService.ts | 12 ++++----- src/messages.xlf | 18 ++++++------- 17 files changed, 83 insertions(+), 60 deletions(-) create mode 100644 src/assets/wise5/common/Annotation.ts diff --git a/src/app/classroom-monitor/component-new-work-badge/component-new-work-badge.component.ts b/src/app/classroom-monitor/component-new-work-badge/component-new-work-badge.component.ts index 9bd709ff3eb..a8ae55e937f 100644 --- a/src/app/classroom-monitor/component-new-work-badge/component-new-work-badge.component.ts +++ b/src/app/classroom-monitor/component-new-work-badge/component-new-work-badge.component.ts @@ -2,6 +2,7 @@ import { Component, Input } from '@angular/core'; import { Subscription } from 'rxjs'; import { AnnotationService } from '../../../assets/wise5/services/annotationService'; import { TeacherDataService } from '../../../assets/wise5/services/teacherDataService'; +import { Annotation } from '../../../assets/wise5/common/Annotation'; @Component({ selector: 'component-new-work-badge', @@ -29,10 +30,8 @@ export class ComponentNewWorkBadgeComponent { ngOnInit() { this.checkHasNewWork(); this.annotationSavedToServerSubscription = this.AnnotationService.annotationSavedToServer$.subscribe( - ({ annotation }) => { - const annotationNodeId = annotation.nodeId; - const annotationComponentId = annotation.componentId; - if (this.nodeId === annotationNodeId && this.componentId === annotationComponentId) { + (annotation: Annotation) => { + if (annotation.nodeId === this.nodeId && annotation.componentId === this.componentId) { this.checkHasNewWork(); } } diff --git a/src/app/classroom-monitor/milestones/milestones.component.ts b/src/app/classroom-monitor/milestones/milestones.component.ts index 7b5ee233a76..30756cf89dd 100644 --- a/src/app/classroom-monitor/milestones/milestones.component.ts +++ b/src/app/classroom-monitor/milestones/milestones.component.ts @@ -7,6 +7,7 @@ import { AnnotationService } from '../../../assets/wise5/services/annotationServ import { MilestoneService } from '../../../assets/wise5/services/milestoneService'; import { TeacherDataService } from '../../../assets/wise5/services/teacherDataService'; import { Milestone } from '../../domain/milestone'; +import { Annotation } from '../../../assets/wise5/common/Annotation'; @Component({ selector: 'milestones', @@ -62,7 +63,7 @@ export class MilestonesComponent { private subscribeToAnnotationChanges(): void { this.subscriptions.add( - this.annotationService.annotationReceived$.subscribe(({ annotation }) => { + this.annotationService.annotationReceived$.subscribe((annotation: Annotation) => { this.milestones .filter( (milestone) => diff --git a/src/app/notebook/notebook-report/notebook-report.component.ts b/src/app/notebook/notebook-report/notebook-report.component.ts index e5b80a2159a..0b4c4804257 100644 --- a/src/app/notebook/notebook-report/notebook-report.component.ts +++ b/src/app/notebook/notebook-report/notebook-report.component.ts @@ -10,6 +10,7 @@ import { insertWiseLinks, replaceWiseLinks } from '../../../assets/wise5/common/wise-link/wise-link'; +import { Annotation } from '../../../assets/wise5/common/Annotation'; @Component({ selector: 'notebook-report', @@ -67,7 +68,7 @@ export class NotebookReportComponent extends NotebookParentComponent { this.isAddNoteButtonAvailable = this.isNoteEnabled(); this.subscriptions.add( - this.NotebookService.notebookItemAnnotationReceived$.subscribe(({ annotation }: any) => { + this.NotebookService.notebookItemAnnotationReceived$.subscribe((annotation: Annotation) => { if (annotation.localNotebookItemId === this.reportId) { this.hasNewAnnotation = true; this.latestAnnotations = this.AnnotationService.getLatestNotebookItemAnnotations( diff --git a/src/assets/wise5/classroomMonitor/classroomMonitorComponents/edit-component-annotations/edit-component-annotations.component.ts b/src/assets/wise5/classroomMonitor/classroomMonitorComponents/edit-component-annotations/edit-component-annotations.component.ts index 69b2e63fe5a..f275ae3f6cd 100644 --- a/src/assets/wise5/classroomMonitor/classroomMonitorComponents/edit-component-annotations/edit-component-annotations.component.ts +++ b/src/assets/wise5/classroomMonitor/classroomMonitorComponents/edit-component-annotations/edit-component-annotations.component.ts @@ -5,6 +5,7 @@ import { Subscription } from 'rxjs'; import { AnnotationService } from '../../../services/annotationService'; import { ConfigService } from '../../../services/configService'; import { TeacherDataService } from '../../../services/teacherDataService'; +import { Annotation } from '../../../common/Annotation'; @Component({ selector: 'edit-component-annotations', @@ -49,11 +50,9 @@ export class EditComponentAnnotationsComponent { this.periodId = toUserInfo.periodId; } this.annotationSavedToServerSubscription = this.AnnotationService.annotationSavedToServer$.subscribe( - ({ annotation }) => { + (annotation: Annotation) => { // TODO: we're watching this here and in the parent component's controller; probably want to optimize! - const annotationNodeId = annotation.nodeId; - const annotationComponentId = annotation.componentId; - if (this.nodeId === annotationNodeId && this.componentId === annotationComponentId) { + if (annotation.nodeId === this.nodeId && annotation.componentId === this.componentId) { this.processAnnotations(); } } diff --git a/src/assets/wise5/classroomMonitor/classroomMonitorComponents/milestones/milestone-grading-view/milestone-grading-view.component.ts b/src/assets/wise5/classroomMonitor/classroomMonitorComponents/milestones/milestone-grading-view/milestone-grading-view.component.ts index dbbb70d6062..075bed3d065 100644 --- a/src/assets/wise5/classroomMonitor/classroomMonitorComponents/milestones/milestone-grading-view/milestone-grading-view.component.ts +++ b/src/assets/wise5/classroomMonitor/classroomMonitorComponents/milestones/milestone-grading-view/milestone-grading-view.component.ts @@ -10,6 +10,7 @@ import { TeacherDataService } from '../../../../services/teacherDataService'; import { TeacherPeerGroupService } from '../../../../services/teacherPeerGroupService'; import { TeacherProjectService } from '../../../../services/teacherProjectService'; import { NodeGradingViewComponent } from '../../nodeGrading/node-grading-view/node-grading-view.component'; +import { Annotation } from '../../../../common/Annotation'; @Component({ selector: 'milestone-grading-view', @@ -70,7 +71,7 @@ export class MilestoneGradingViewComponent extends NodeGradingViewComponent { super.subscribeToEvents(); if (this.milestone.report.locations.length > 1) { this.subscriptions.add( - this.annotationService.annotationReceived$.subscribe(({ annotation }) => { + this.annotationService.annotationReceived$.subscribe((annotation: Annotation) => { const workgroupId = annotation.toWorkgroupId; if (annotation.nodeId === this.firstNodeId && this.workgroupsById[workgroupId]) { this.updateWorkgroup(workgroupId); diff --git a/src/assets/wise5/classroomMonitor/classroomMonitorComponents/nodeGrading/node-grading-view/node-grading-view.component.ts b/src/assets/wise5/classroomMonitor/classroomMonitorComponents/nodeGrading/node-grading-view/node-grading-view.component.ts index 0c936603aa2..053c484c6b0 100644 --- a/src/assets/wise5/classroomMonitor/classroomMonitorComponents/nodeGrading/node-grading-view/node-grading-view.component.ts +++ b/src/assets/wise5/classroomMonitor/classroomMonitorComponents/nodeGrading/node-grading-view/node-grading-view.component.ts @@ -15,6 +15,7 @@ import { copy } from '../../../../common/object/object'; import { ShowNodeInfoDialogComponent } from '../../../../../../app/classroom-monitor/show-node-info-dialog/show-node-info-dialog.component'; import { MatDialog } from '@angular/material/dialog'; import { MilestoneDetailsDialogComponent } from '../../milestones/milestone-details-dialog/milestone-details-dialog.component'; +import { Annotation } from '../../../../common/Annotation'; @Component({ selector: 'node-grading-view', @@ -103,7 +104,7 @@ export class NodeGradingViewComponent implements OnInit { ); this.subscriptions.add( - this.annotationService.annotationReceived$.subscribe(({ annotation }) => { + this.annotationService.annotationReceived$.subscribe((annotation: Annotation) => { const workgroupId = annotation.toWorkgroupId; if (annotation.nodeId === this.nodeId && this.workgroupsById[workgroupId]) { this.updateWorkgroup(workgroupId); diff --git a/src/assets/wise5/classroomMonitor/student-grading/student-grading.component.ts b/src/assets/wise5/classroomMonitor/student-grading/student-grading.component.ts index 5650a897e29..9941423e2f5 100644 --- a/src/assets/wise5/classroomMonitor/student-grading/student-grading.component.ts +++ b/src/assets/wise5/classroomMonitor/student-grading/student-grading.component.ts @@ -8,6 +8,7 @@ import { NotificationService } from '../../services/notificationService'; import { TeacherDataService } from '../../services/teacherDataService'; import { TeacherProjectService } from '../../services/teacherProjectService'; import { ActivatedRoute } from '@angular/router'; +import { Annotation } from '../../common/Annotation'; @Component({ selector: 'student-grading', @@ -104,7 +105,7 @@ export class StudentGradingComponent implements OnInit { private subscribeToAnnotationReceived(): void { this.subscriptions.add( - this.annotationService.annotationReceived$.subscribe(({ annotation }) => { + this.annotationService.annotationReceived$.subscribe((annotation: Annotation) => { const workgroupId = annotation.toWorkgroupId; const nodeId = annotation.nodeId; if (workgroupId === this.workgroupId && this.nodesById[nodeId]) { diff --git a/src/assets/wise5/common/Annotation.ts b/src/assets/wise5/common/Annotation.ts new file mode 100644 index 00000000000..0cd1deef480 --- /dev/null +++ b/src/assets/wise5/common/Annotation.ts @@ -0,0 +1,15 @@ +export class Annotation { + clientSaveTime: number; + componentId: string; + data: any; + fromWorkgroupId: number; + id: number; + localNotebookItemId?: number; + nodeId: string; + notebookItemId: number; + periodId: number; + serverSaveTime: number; + studentWorkId: number; + toWorkgroupId: number; + type: string; +} diff --git a/src/assets/wise5/components/component-student.component.ts b/src/assets/wise5/components/component-student.component.ts index f37051214d7..d03569c1de5 100644 --- a/src/assets/wise5/components/component-student.component.ts +++ b/src/assets/wise5/components/component-student.component.ts @@ -17,6 +17,7 @@ import { StudentAssetRequest } from '../vle/studentAsset/StudentAssetRequest'; import { ComponentService } from './componentService'; import { ComponentStateRequest } from './ComponentStateRequest'; import { ComponentStateWrapper } from './ComponentStateWrapper'; +import { Annotation } from '../common/Annotation'; @Directive() export abstract class ComponentStudent { @@ -119,9 +120,9 @@ export abstract class ComponentStudent { this.subscribeToRequestComponentState(); } - subscribeToAnnotationSavedToServer() { + private subscribeToAnnotationSavedToServer(): void { this.subscriptions.add( - this.AnnotationService.annotationSavedToServer$.subscribe(({ annotation }) => { + this.AnnotationService.annotationSavedToServer$.subscribe((annotation: Annotation) => { if (this.isForThisComponent(annotation)) { this.latestAnnotations = this.AnnotationService.getLatestComponentAnnotations( this.nodeId, diff --git a/src/assets/wise5/components/openResponse/open-response-student/open-response-student.component.ts b/src/assets/wise5/components/openResponse/open-response-student/open-response-student.component.ts index a9c47a7a849..8aeae31729f 100644 --- a/src/assets/wise5/components/openResponse/open-response-student/open-response-student.component.ts +++ b/src/assets/wise5/components/openResponse/open-response-student/open-response-student.component.ts @@ -484,9 +484,10 @@ export class OpenResponseStudent extends ComponentStudent { } private getFeedbackText(rule: FeedbackRule): string { - const annotationsForFeedbackRule = this.AnnotationService.annotations.filter((annotation) => { - return this.isForThisComponent(annotation) && annotation.data.feedbackRuleId === rule.id; - }); + const annotationsForFeedbackRule = this.AnnotationService.getAnnotations().filter( + (annotation) => + this.isForThisComponent(annotation) && annotation.data.feedbackRuleId === rule.id + ); return rule.feedback[annotationsForFeedbackRule.length % rule.feedback.length]; } diff --git a/src/assets/wise5/services/annotationService.ts b/src/assets/wise5/services/annotationService.ts index 5d91d965c6a..95a860ee0eb 100644 --- a/src/assets/wise5/services/annotationService.ts +++ b/src/assets/wise5/services/annotationService.ts @@ -7,15 +7,16 @@ import { HttpClient, HttpHeaders } from '@angular/common/http'; import { Observable, Subject } from 'rxjs'; import { isMatchingPeriods } from '../common/period/period'; import { generateRandomKey } from '../common/string/string'; +import { Annotation } from '../common/Annotation'; @Injectable() export class AnnotationService { - annotations: any = []; + annotations: Annotation[] = []; dummyAnnotationId: number = 1; // used in preview mode when we simulate saving of annotation - private annotationSavedToServerSource: Subject = new Subject(); - public annotationSavedToServer$: Observable = this.annotationSavedToServerSource.asObservable(); - private annotationReceivedSource: Subject = new Subject(); - public annotationReceived$: Observable = this.annotationReceivedSource.asObservable(); + private annotationSavedToServerSource: Subject = new Subject(); + public annotationSavedToServer$: Observable = this.annotationSavedToServerSource.asObservable(); + private annotationReceivedSource: Subject = new Subject(); + public annotationReceived$: Observable = this.annotationReceivedSource.asObservable(); constructor( private http: HttpClient, @@ -23,7 +24,7 @@ export class AnnotationService { private ProjectService: ProjectService ) {} - getAnnotations() { + getAnnotations(): Annotation[] { return this.annotations; } @@ -197,7 +198,7 @@ export class AnnotationService { localAnnotation.serverSaveTime = savedAnnotation.serverSaveTime; //localAnnotation.requestToken = null; // requestToken is no longer needed. - this.broadcastAnnotationSavedToServer({ annotation: localAnnotation }); + this.broadcastAnnotationSavedToServer(localAnnotation); break; } else if ( localAnnotation.requestToken != null && @@ -221,7 +222,7 @@ export class AnnotationService { this.dummyAnnotationId++; } - this.broadcastAnnotationSavedToServer({ annotation: localAnnotation }); + this.broadcastAnnotationSavedToServer(localAnnotation); break; } } @@ -798,11 +799,11 @@ export class AnnotationService { return null; } - broadcastAnnotationSavedToServer(args: any) { - this.annotationSavedToServerSource.next(args); + broadcastAnnotationSavedToServer(annotation: Annotation): void { + this.annotationSavedToServerSource.next(annotation); } - broadcastAnnotationReceived(args: any) { - this.annotationReceivedSource.next(args); + broadcastAnnotationReceived(annotation: Annotation): void { + this.annotationReceivedSource.next(annotation); } } diff --git a/src/assets/wise5/services/notebookService.ts b/src/assets/wise5/services/notebookService.ts index 753a2f2bdb1..6b4d8dfad01 100644 --- a/src/assets/wise5/services/notebookService.ts +++ b/src/assets/wise5/services/notebookService.ts @@ -8,6 +8,7 @@ import { StudentAssetService } from './studentAssetService'; import { Subject } from 'rxjs'; import { MatDialog } from '@angular/material/dialog'; import { EditNotebookItemDialogComponent } from '../themes/default/notebook/edit-notebook-item-dialog/edit-notebook-item-dialog.component'; +import { Annotation } from '../common/Annotation'; @Injectable() export class NotebookService { @@ -52,7 +53,7 @@ export class NotebookService { reports = []; publicNotebookItems = {}; notebooksByWorkgroup = {}; - private notebookItemAnnotationReceivedSource: Subject = new Subject(); + private notebookItemAnnotationReceivedSource: Subject = new Subject(); public notebookItemAnnotationReceived$ = this.notebookItemAnnotationReceivedSource.asObservable(); private notebookItemChosenSource: Subject = new Subject(); public notebookItemChosen$ = this.notebookItemChosenSource.asObservable(); @@ -77,7 +78,7 @@ export class NotebookService { private StudentAssetService: StudentAssetService ) {} - broadcastNotebookItemAnnotationReceived(annotation: any) { + broadcastNotebookItemAnnotationReceived(annotation: Annotation) { this.notebookItemAnnotationReceivedSource.next(annotation); } diff --git a/src/assets/wise5/services/studentDataService.ts b/src/assets/wise5/services/studentDataService.ts index f1a09143ff6..bdc6ff0711a 100644 --- a/src/assets/wise5/services/studentDataService.ts +++ b/src/assets/wise5/services/studentDataService.ts @@ -491,7 +491,7 @@ export class StudentDataService extends DataService { this.setRemoteIdIntoLocalId(savedAnnotation, localAnnotation); this.setRemoteServerSaveTimeIntoLocalServerSaveTime(savedAnnotation, localAnnotation); this.clearRequestToken(localAnnotation); - this.AnnotationService.broadcastAnnotationSavedToServer({ annotation: localAnnotation }); + this.AnnotationService.broadcastAnnotationSavedToServer(localAnnotation); break; } } diff --git a/src/assets/wise5/services/studentWebSocketService.ts b/src/assets/wise5/services/studentWebSocketService.ts index 0a77b126089..6f10a45745c 100644 --- a/src/assets/wise5/services/studentWebSocketService.ts +++ b/src/assets/wise5/services/studentWebSocketService.ts @@ -10,6 +10,7 @@ import { Message } from '@stomp/stompjs'; import { NotebookService } from './notebookService'; import { StompService } from './stompService'; import { ConfigService } from './configService'; +import { Annotation } from '../common/Annotation'; @Injectable() export class StudentWebSocketService { @@ -36,8 +37,7 @@ export class StudentWebSocketService { const studentWork = JSON.parse(body.content); this.StudentDataService.broadcastStudentWorkReceived(studentWork); } else if (body.type === 'annotation') { - const annotation = JSON.parse(body.content); - this.AnnotationService.broadcastAnnotationReceived({ annotation: annotation }); + this.AnnotationService.broadcastAnnotationReceived(JSON.parse(body.content)); } else if (body.type === 'goToNode') { this.goToStep(body.content); } else if (body.type === 'node') { @@ -54,9 +54,9 @@ export class StudentWebSocketService { this.stompService.workgroupMessage$.subscribe((message: Message) => { const body = JSON.parse(message.body); if (body.type === 'annotation') { - const annotationData = JSON.parse(body.content); - this.AnnotationService.addOrUpdateAnnotation(annotationData); - this.handleAnnotationReceived(annotationData); + const annotation = JSON.parse(body.content); + this.AnnotationService.addOrUpdateAnnotation(annotation); + this.handleAnnotationReceived(annotation); } else if (body.type === 'tagsToWorkgroup') { const tags = JSON.parse(body.content); this.TagService.setTags(tags); @@ -72,12 +72,12 @@ export class StudentWebSocketService { }); } - handleAnnotationReceived(annotation: any): void { + private handleAnnotationReceived(annotation: Annotation): void { this.StudentDataService.studentData.annotations.push(annotation); if (annotation.notebookItemId) { - this.notebookService.broadcastNotebookItemAnnotationReceived({ annotation: annotation }); + this.notebookService.broadcastNotebookItemAnnotationReceived(annotation); } else { - this.AnnotationService.broadcastAnnotationReceived({ annotation: annotation }); + this.AnnotationService.broadcastAnnotationReceived(annotation); } } diff --git a/src/assets/wise5/services/teacherDataService.ts b/src/assets/wise5/services/teacherDataService.ts index c7a5329b985..3fe50e5c635 100644 --- a/src/assets/wise5/services/teacherDataService.ts +++ b/src/assets/wise5/services/teacherDataService.ts @@ -13,6 +13,7 @@ import { compressToEncodedURIComponent } from 'lz-string'; import { isMatchingPeriods } from '../common/period/period'; import { getIntersectOfArrays } from '../common/array/array'; import { serverSaveTimeComparator } from '../common/object/object'; +import { Annotation } from '../common/Annotation'; @Injectable() export class TeacherDataService extends DataService { @@ -50,11 +51,11 @@ export class TeacherDataService extends DataService { } subscribeToEvents() { - this.AnnotationService.annotationSavedToServer$.subscribe(({ annotation }) => { + this.AnnotationService.annotationSavedToServer$.subscribe((annotation: Annotation) => { this.handleAnnotationReceived(annotation); }); - this.TeacherWebSocketService.newAnnotationReceived$.subscribe(({ annotation }) => { + this.TeacherWebSocketService.newAnnotationReceived$.subscribe((annotation: Annotation) => { this.handleAnnotationReceived(annotation); }); @@ -70,7 +71,7 @@ export class TeacherDataService extends DataService { }); } - handleAnnotationReceived(annotation) { + private handleAnnotationReceived(annotation: Annotation): void { this.studentData.annotations.push(annotation); const toWorkgroupId = annotation.toWorkgroupId; if (this.studentData.annotationsToWorkgroupId[toWorkgroupId] == null) { @@ -83,7 +84,7 @@ export class TeacherDataService extends DataService { } this.studentData.annotationsByNodeId[nodeId].push(annotation); this.AnnotationService.setAnnotations(this.studentData.annotations); - this.AnnotationService.broadcastAnnotationReceived({ annotation: annotation }); + this.AnnotationService.broadcastAnnotationReceived(annotation); } saveEvent(context, nodeId, componentId, componentType, category, event, data) { diff --git a/src/assets/wise5/services/teacherWebSocketService.ts b/src/assets/wise5/services/teacherWebSocketService.ts index 8d8f1cdcc3a..33cd8eb9346 100644 --- a/src/assets/wise5/services/teacherWebSocketService.ts +++ b/src/assets/wise5/services/teacherWebSocketService.ts @@ -8,13 +8,14 @@ import { Observable, Subject } from 'rxjs'; import { AchievementService } from './achievementService'; import { RxStomp } from '@stomp/rx-stomp'; import { Message } from '@stomp/stompjs'; +import { Annotation } from '../common/Annotation'; @Injectable() export class TeacherWebSocketService { runId: number; rxStomp: RxStomp; - private newAnnotationReceivedSource: Subject = new Subject(); - public newAnnotationReceived$: Observable = this.newAnnotationReceivedSource.asObservable(); + private newAnnotationReceivedSource: Subject = new Subject(); + public newAnnotationReceived$: Observable = this.newAnnotationReceivedSource.asObservable(); private newStudentWorkReceivedSource: Subject = new Subject(); public newStudentWorkReceived$: Observable = this.newStudentWorkReceivedSource.asObservable(); @@ -55,8 +56,7 @@ export class TeacherWebSocketService { const achievement = JSON.parse(body.content); this.AchievementService.broadcastNewStudentAchievement(achievement); } else if (body.type === 'annotation') { - const annotationData = JSON.parse(body.content); - this.broadcastNewAnnotationReceived({ annotation: annotationData }); + this.broadcastNewAnnotationReceived(JSON.parse(body.content)); } }); } @@ -65,8 +65,8 @@ export class TeacherWebSocketService { this.newStudentWorkReceivedSource.next(args); } - broadcastNewAnnotationReceived(args: any) { - this.newAnnotationReceivedSource.next(args); + broadcastNewAnnotationReceived(annotation: Annotation): void { + this.newAnnotationReceivedSource.next(annotation); } subscribeToTeacherWorkgroupTopic() { diff --git a/src/messages.xlf b/src/messages.xlf index e9b6f54c3a0..18f4465469e 100644 --- a/src/messages.xlf +++ b/src/messages.xlf @@ -1714,7 +1714,7 @@ Click "Cancel" to keep the invalid JSON open so you can fix it.New src/app/classroom-monitor/component-new-work-badge/component-new-work-badge.component.ts - 8 + 9 src/app/classroom-monitor/step-info/step-info.component.html @@ -13605,7 +13605,7 @@ Click "Cancel" to keep the invalid JSON open so you can fix it. src/assets/wise5/services/teacherDataService.ts - 635 + 636 @@ -20852,7 +20852,7 @@ If this problem continues, let your teacher know and move on to the next activit Notebook src/assets/wise5/services/notebookService.ts - 17 + 18 src/assets/wise5/services/teacherProjectService.ts @@ -20863,7 +20863,7 @@ If this problem continues, let your teacher know and move on to the next activit note src/assets/wise5/services/notebookService.ts - 30 + 31 src/assets/wise5/services/teacherProjectService.ts @@ -20878,7 +20878,7 @@ If this problem continues, let your teacher know and move on to the next activit notes src/assets/wise5/services/notebookService.ts - 31 + 32 src/assets/wise5/services/teacherProjectService.ts @@ -20893,14 +20893,14 @@ If this problem continues, let your teacher know and move on to the next activit Manage Notes src/assets/wise5/services/notebookService.ts - 32 + 33 report src/assets/wise5/services/notebookService.ts - 42 + 43 src/assets/wise5/services/teacherProjectService.ts @@ -20911,7 +20911,7 @@ If this problem continues, let your teacher know and move on to the next activit reports src/assets/wise5/services/notebookService.ts - 43 + 44 src/assets/wise5/services/teacherProjectService.ts @@ -20922,7 +20922,7 @@ If this problem continues, let your teacher know and move on to the next activit Report src/assets/wise5/services/notebookService.ts - 44 + 45 src/assets/wise5/services/teacherProjectService.ts