From 97fede6ec877c0551f93d40edd8d1a1600ed1319 Mon Sep 17 00:00:00 2001 From: Jonathan Lim-Breitbart Date: Tue, 25 Apr 2023 16:38:12 -0700 Subject: [PATCH] refactor(UtilService): Move convertMillisecondsToFormattedDateTime() --- .../data-export/data-export.component.ts | 9 +-- .../export-step-visits.component.ts | 13 +--- .../AbstractComponentDataExportStrategy.ts | 7 +- .../strategies/AbstractDataExportStrategy.ts | 3 - .../DiscussionComponentDataExportStrategy.ts | 7 +- .../strategies/EventDataExportStrategy.ts | 9 +-- .../strategies/NotebookDataExportStrategy.ts | 13 ++-- .../NotificationDataExportStrategy.ts | 17 +++-- .../OneWorkgroupPerRowDataExportStrategy.ts | 7 +- .../wise5/common/datetime/datetime.spec.ts | 8 +++ src/assets/wise5/common/datetime/datetime.ts | 11 +++ src/assets/wise5/services/configService.ts | 12 ++-- src/assets/wise5/services/utilService.ts | 15 ---- src/messages.xlf | 70 +++++++++---------- 14 files changed, 94 insertions(+), 107 deletions(-) create mode 100644 src/assets/wise5/common/datetime/datetime.spec.ts create mode 100644 src/assets/wise5/common/datetime/datetime.ts diff --git a/src/assets/wise5/classroomMonitor/dataExport/data-export/data-export.component.ts b/src/assets/wise5/classroomMonitor/dataExport/data-export/data-export.component.ts index 6af5bd7d817..deb99dba269 100644 --- a/src/assets/wise5/classroomMonitor/dataExport/data-export/data-export.component.ts +++ b/src/assets/wise5/classroomMonitor/dataExport/data-export/data-export.component.ts @@ -6,7 +6,6 @@ import { ConfigService } from '../../../services/configService'; import { DataExportService } from '../../../services/dataExportService'; import { MatchService } from '../../../components/match/matchService'; import { TeacherDataService } from '../../../services/teacherDataService'; -import { UtilService } from '../../../services/utilService'; import { TeacherProjectService } from '../../../services/teacherProjectService'; import { ComponentServiceLookupService } from '../../../services/componentServiceLookupService'; import { StudentWorkDataExportStrategy } from '../strategies/StudentWorkDataExportStrategy'; @@ -23,6 +22,7 @@ import { DiscussionComponentDataExportStrategy } from '../strategies/DiscussionC import { LabelComponentDataExportStrategy } from '../strategies/LabelComponentDataExportStrategy'; import { Component as WISEComponent } from '../../../common/Component'; import { removeHTMLTags } from '../../../common/string/string'; +import { millisecondsToDateTime } from '../../../common/datetime/datetime'; @Component({ selector: 'data-export', @@ -122,8 +122,7 @@ export class DataExportComponent implements OnInit { private matchService: MatchService, public projectService: TeacherProjectService, public teacherDataService: TeacherDataService, - private upgrade: UpgradeModule, - public utilService: UtilService + private upgrade: UpgradeModule ) {} ngOnInit(): void { @@ -283,9 +282,7 @@ export class DataExportComponent implements OnInit { row[columnNameToNumber['Run ID']] = this.configService.getRunId(); row[columnNameToNumber['Student Work ID']] = componentState.id; if (componentState.serverSaveTime != null) { - var formattedDateTime = this.utilService.convertMillisecondsToFormattedDateTime( - componentState.serverSaveTime - ); + var formattedDateTime = millisecondsToDateTime(componentState.serverSaveTime); row[columnNameToNumber['Server Timestamp']] = formattedDateTime; } if (componentState.clientSaveTime != null) { diff --git a/src/assets/wise5/classroomMonitor/dataExport/export-step-visits/export-step-visits.component.ts b/src/assets/wise5/classroomMonitor/dataExport/export-step-visits/export-step-visits.component.ts index 57301a11a8a..a605c15fb26 100644 --- a/src/assets/wise5/classroomMonitor/dataExport/export-step-visits/export-step-visits.component.ts +++ b/src/assets/wise5/classroomMonitor/dataExport/export-step-visits/export-step-visits.component.ts @@ -5,6 +5,7 @@ import { TeacherProjectService } from '../../../services/teacherProjectService'; import { UtilService } from '../../../services/utilService'; import ExportController from '../exportController'; import { UpgradeModule } from '@angular/upgrade/static'; +import { millisecondsToDateTime } from '../../../common/datetime/datetime'; @Component({ selector: 'export-step-visits', @@ -418,20 +419,12 @@ export class ExportStepVisitsComponent extends ExportController { this.setCellInRow(visit, 'End Date', this.configService.getFormattedEndDate()); this.setCellInRow(visit, 'Node ID', nodeId); this.setCellInRow(visit, 'Step Title', this.getStepNumberAndTitle(nodeId)); - this.setCellInRow( - visit, - 'Enter Time', - this.utilService.convertMillisecondsToFormattedDateTime(nodeEnteredEvent.clientSaveTime) - ); + this.setCellInRow(visit, 'Enter Time', millisecondsToDateTime(nodeEnteredEvent.clientSaveTime)); if (nodeExitedEvent == null) { this.setCellInRow(visit, 'Exit Time', '(Unknown Exit Time)'); this.setCellInRow(visit, 'Visit Duration (Seconds)', '(Unknown Visit Duration)'); } else if (nodeExitedEvent != null) { - this.setCellInRow( - visit, - 'Exit Time', - this.utilService.convertMillisecondsToFormattedDateTime(nodeExitedEvent.clientSaveTime) - ); + this.setCellInRow(visit, 'Exit Time', millisecondsToDateTime(nodeExitedEvent.clientSaveTime)); this.setCellInRow( visit, 'Visit Duration (Seconds)', diff --git a/src/assets/wise5/classroomMonitor/dataExport/strategies/AbstractComponentDataExportStrategy.ts b/src/assets/wise5/classroomMonitor/dataExport/strategies/AbstractComponentDataExportStrategy.ts index 4a676682fb6..07083bffcc2 100644 --- a/src/assets/wise5/classroomMonitor/dataExport/strategies/AbstractComponentDataExportStrategy.ts +++ b/src/assets/wise5/classroomMonitor/dataExport/strategies/AbstractComponentDataExportStrategy.ts @@ -4,6 +4,7 @@ import { ComponentDataExportParams } from '../ComponentDataExportParams'; import { ComponentRevisionCounter } from '../ComponentRevisionCounter'; import { UserIdsAndStudentNames } from '../UserIdsAndStudentNames'; import { AbstractDataExportStrategy } from './AbstractDataExportStrategy'; +import { millisecondsToDateTime } from '../../../common/datetime/datetime'; export abstract class AbstractComponentDataExportStrategy extends AbstractDataExportStrategy { abstract COMPONENT_TYPE: string; @@ -167,9 +168,9 @@ export abstract class AbstractComponentDataExportStrategy extends AbstractDataEx row[this.columnNameToNumber.get('Project Name')] = this.projectService.getProjectTitle(); row[this.columnNameToNumber.get('Run ID')] = this.configService.getRunId(); row[this.columnNameToNumber.get('Student Work ID')] = componentState.id; - row[ - this.columnNameToNumber.get('Server Timestamp') - ] = this.utilService.convertMillisecondsToFormattedDateTime(componentState.serverSaveTime); + row[this.columnNameToNumber.get('Server Timestamp')] = millisecondsToDateTime( + componentState.serverSaveTime + ); const clientSaveTime = new Date(componentState.clientSaveTime); const clientSaveTimeString = clientSaveTime.toDateString() + ' ' + clientSaveTime.toLocaleTimeString(); diff --git a/src/assets/wise5/classroomMonitor/dataExport/strategies/AbstractDataExportStrategy.ts b/src/assets/wise5/classroomMonitor/dataExport/strategies/AbstractDataExportStrategy.ts index 69a10e168da..008736041d2 100644 --- a/src/assets/wise5/classroomMonitor/dataExport/strategies/AbstractDataExportStrategy.ts +++ b/src/assets/wise5/classroomMonitor/dataExport/strategies/AbstractDataExportStrategy.ts @@ -3,7 +3,6 @@ import { ConfigService } from '../../../services/configService'; import { DataExportService } from '../../../services/dataExportService'; import { TeacherDataService } from '../../../services/teacherDataService'; import { TeacherProjectService } from '../../../services/teacherProjectService'; -import { UtilService } from '../../../services/utilService'; import { DataExportComponent } from '../data-export/data-export.component'; import { DataExportContext } from '../DataExportContext'; import { DataExportStrategy } from './DataExportStrategy'; @@ -16,7 +15,6 @@ export abstract class AbstractDataExportStrategy implements DataExportStrategy { dataExportService: DataExportService; projectService: TeacherProjectService; teacherDataService: TeacherDataService; - utilService: UtilService; setDataExportContext(context: DataExportContext) { this.context = context; @@ -26,7 +24,6 @@ export abstract class AbstractDataExportStrategy implements DataExportStrategy { this.dataExportService = context.controller.dataExportService; this.projectService = context.controller.projectService; this.teacherDataService = context.controller.teacherDataService; - this.utilService = context.controller.utilService; } abstract export(); diff --git a/src/assets/wise5/classroomMonitor/dataExport/strategies/DiscussionComponentDataExportStrategy.ts b/src/assets/wise5/classroomMonitor/dataExport/strategies/DiscussionComponentDataExportStrategy.ts index 8b328bc9761..019ddd077ef 100644 --- a/src/assets/wise5/classroomMonitor/dataExport/strategies/DiscussionComponentDataExportStrategy.ts +++ b/src/assets/wise5/classroomMonitor/dataExport/strategies/DiscussionComponentDataExportStrategy.ts @@ -1,5 +1,6 @@ import { removeHTMLTags } from '../../../common/string/string'; import { AbstractDataExportStrategy } from './AbstractDataExportStrategy'; +import { millisecondsToDateTime } from '../../../common/datetime/datetime'; export class DiscussionComponentDataExportStrategy extends AbstractDataExportStrategy { constructor(private nodeId: string, private component: any) { @@ -128,9 +129,9 @@ export class DiscussionComponentDataExportStrategy extends AbstractDataExportStr row[columnNameToNumber['Run ID']] = this.configService.getRunId(); if (componentState.serverSaveTime != null) { - row[ - columnNameToNumber['Server Timestamp'] - ] = this.utilService.convertMillisecondsToFormattedDateTime(componentState.serverSaveTime); + row[columnNameToNumber['Server Timestamp']] = millisecondsToDateTime( + componentState.serverSaveTime + ); } if (componentState.clientSaveTime != null) { diff --git a/src/assets/wise5/classroomMonitor/dataExport/strategies/EventDataExportStrategy.ts b/src/assets/wise5/classroomMonitor/dataExport/strategies/EventDataExportStrategy.ts index 646378b3e98..3c8531aee18 100644 --- a/src/assets/wise5/classroomMonitor/dataExport/strategies/EventDataExportStrategy.ts +++ b/src/assets/wise5/classroomMonitor/dataExport/strategies/EventDataExportStrategy.ts @@ -1,5 +1,6 @@ import { removeHTMLTags } from '../../../common/string/string'; import { AbstractDataExportStrategy } from './AbstractDataExportStrategy'; +import { millisecondsToDateTime } from '../../../common/datetime/datetime'; export class EventDataExportStrategy extends AbstractDataExportStrategy { export() { @@ -386,15 +387,11 @@ export class EventDataExportStrategy extends AbstractDataExportStrategy { } private setServerSaveTime(row, columnNameToNumber, data) { - row[ - columnNameToNumber['Server Timestamp'] - ] = this.utilService.convertMillisecondsToFormattedDateTime(data.serverSaveTime); + row[columnNameToNumber['Server Timestamp']] = millisecondsToDateTime(data.serverSaveTime); } private setClientSaveTime(row, columnNameToNumber, data) { - row[ - columnNameToNumber['Client Timestamp'] - ] = this.utilService.convertMillisecondsToFormattedDateTime(data.clientSaveTime); + row[columnNameToNumber['Client Timestamp']] = millisecondsToDateTime(data.clientSaveTime); } private setNodeId(row, columnNameToNumber, data) { diff --git a/src/assets/wise5/classroomMonitor/dataExport/strategies/NotebookDataExportStrategy.ts b/src/assets/wise5/classroomMonitor/dataExport/strategies/NotebookDataExportStrategy.ts index 7dd6b2caafa..d5882533fc3 100644 --- a/src/assets/wise5/classroomMonitor/dataExport/strategies/NotebookDataExportStrategy.ts +++ b/src/assets/wise5/classroomMonitor/dataExport/strategies/NotebookDataExportStrategy.ts @@ -1,5 +1,6 @@ import { removeHTMLTags } from '../../../common/string/string'; import { AbstractDataExportStrategy } from './AbstractDataExportStrategy'; +import { millisecondsToDateTime } from '../../../common/datetime/datetime'; export class NotebookDataExportStrategy extends AbstractDataExportStrategy { constructor(private exportType: string) { @@ -90,12 +91,12 @@ export class NotebookDataExportStrategy extends AbstractDataExportStrategy { if (position != -1) { row[columnNameToNumber['Component Part Number']] = position + 1; } - row[ - columnNameToNumber['Client Save Time'] - ] = this.utilService.convertMillisecondsToFormattedDateTime(notebookItem.clientSaveTime); - row[ - columnNameToNumber['Server Save Time'] - ] = this.utilService.convertMillisecondsToFormattedDateTime(notebookItem.serverSaveTime); + row[columnNameToNumber['Client Save Time']] = millisecondsToDateTime( + notebookItem.clientSaveTime + ); + row[columnNameToNumber['Server Save Time']] = millisecondsToDateTime( + notebookItem.serverSaveTime + ); row[columnNameToNumber['Type']] = notebookItem.type; row[columnNameToNumber['Content']] = JSON.parse(notebookItem.content); row[columnNameToNumber['Run ID']] = notebookItem.runId; diff --git a/src/assets/wise5/classroomMonitor/dataExport/strategies/NotificationDataExportStrategy.ts b/src/assets/wise5/classroomMonitor/dataExport/strategies/NotificationDataExportStrategy.ts index 25849f9796f..7234fc0f44b 100644 --- a/src/assets/wise5/classroomMonitor/dataExport/strategies/NotificationDataExportStrategy.ts +++ b/src/assets/wise5/classroomMonitor/dataExport/strategies/NotificationDataExportStrategy.ts @@ -1,4 +1,5 @@ import { AbstractDataExportStrategy } from './AbstractDataExportStrategy'; +import { millisecondsToDateTime } from '../../../common/datetime/datetime'; export class NotificationDataExportStrategy extends AbstractDataExportStrategy { export() { @@ -76,16 +77,14 @@ export class NotificationDataExportStrategy extends AbstractDataExportStrategy { if (componentPosition != -1) { row[columnNameToNumber['Component Part Number']] = componentPosition + 1; } - row[ - columnNameToNumber['Server Save Time'] - ] = this.utilService.convertMillisecondsToFormattedDateTime(notification.serverSaveTime); - row[ - columnNameToNumber['Time Generated'] - ] = this.utilService.convertMillisecondsToFormattedDateTime(notification.timeGenerated); + row[columnNameToNumber['Server Save Time']] = millisecondsToDateTime( + notification.serverSaveTime + ); + row[columnNameToNumber['Time Generated']] = millisecondsToDateTime(notification.timeGenerated); if (notification.timeDismissed != null) { - row[ - columnNameToNumber['Time Dismissed'] - ] = this.utilService.convertMillisecondsToFormattedDateTime(notification.timeDismissed); + row[columnNameToNumber['Time Dismissed']] = millisecondsToDateTime( + notification.timeDismissed + ); } row[columnNameToNumber['Type']] = notification.type; if (notification.groupId != null) { diff --git a/src/assets/wise5/classroomMonitor/dataExport/strategies/OneWorkgroupPerRowDataExportStrategy.ts b/src/assets/wise5/classroomMonitor/dataExport/strategies/OneWorkgroupPerRowDataExportStrategy.ts index 9e04426bb20..6ebaf38095e 100644 --- a/src/assets/wise5/classroomMonitor/dataExport/strategies/OneWorkgroupPerRowDataExportStrategy.ts +++ b/src/assets/wise5/classroomMonitor/dataExport/strategies/OneWorkgroupPerRowDataExportStrategy.ts @@ -1,5 +1,6 @@ import { removeHTMLTags } from '../../../common/string/string'; import { AbstractDataExportStrategy } from './AbstractDataExportStrategy'; +import { millisecondsToDateTime } from '../../../common/datetime/datetime'; export class OneWorkgroupPerRowDataExportStrategy extends AbstractDataExportStrategy { /** @@ -126,7 +127,7 @@ export class OneWorkgroupPerRowDataExportStrategy extends AbstractDataExportStra } if (this.controller.includeStudentWorkTimestamps) { if (componentState.serverSaveTime != null) { - var formattedDateTime = this.utilService.convertMillisecondsToFormattedDateTime( + var formattedDateTime = millisecondsToDateTime( componentState.serverSaveTime ); workgroupRow[ @@ -148,7 +149,7 @@ export class OneWorkgroupPerRowDataExportStrategy extends AbstractDataExportStra var commentAnnotation = latestComponentAnnotations.comment; if (scoreAnnotation != null) { if (this.controller.includeScoreTimestamps) { - var scoreTimestamp = this.utilService.convertMillisecondsToFormattedDateTime( + var scoreTimestamp = millisecondsToDateTime( scoreAnnotation.serverSaveTime ); workgroupRow[ @@ -169,7 +170,7 @@ export class OneWorkgroupPerRowDataExportStrategy extends AbstractDataExportStra } if (commentAnnotation != null) { if (this.controller.includeCommentTimestamps) { - var commentTimestamp = this.utilService.convertMillisecondsToFormattedDateTime( + var commentTimestamp = millisecondsToDateTime( commentAnnotation.serverSaveTime ); workgroupRow[ diff --git a/src/assets/wise5/common/datetime/datetime.spec.ts b/src/assets/wise5/common/datetime/datetime.spec.ts new file mode 100644 index 00000000000..69b20378fec --- /dev/null +++ b/src/assets/wise5/common/datetime/datetime.spec.ts @@ -0,0 +1,8 @@ +import { millisecondsToDateTime } from './datetime'; + +describe('millisecondsToDateTime()', () => { + it('should convert milliseconds to formatted date/time string', () => { + expect(millisecondsToDateTime(1682115840000)).toEqual('Fri Apr 21 2023 10:24:00 PM'); + expect(millisecondsToDateTime(-1682115840000)).toEqual('Tue Sep 12 1916 1:36:00 AM'); + }); +}); diff --git a/src/assets/wise5/common/datetime/datetime.ts b/src/assets/wise5/common/datetime/datetime.ts new file mode 100644 index 00000000000..7b99a35ae8d --- /dev/null +++ b/src/assets/wise5/common/datetime/datetime.ts @@ -0,0 +1,11 @@ +/** + * Convert milliseconds since the epoch to a pretty printed date time + * @param milliseconds the milliseconds since the epoch + * @return a string containing the pretty printed date time + * example + * Wed Apr 06 2016 9:05:38 AM + */ +export function millisecondsToDateTime(milliseconds: number): string { + const date = new Date(milliseconds); + return `${date.toDateString()} ${date.toLocaleTimeString()}`; +} diff --git a/src/assets/wise5/services/configService.ts b/src/assets/wise5/services/configService.ts index edb90ccc1aa..7f0673c0ef2 100644 --- a/src/assets/wise5/services/configService.ts +++ b/src/assets/wise5/services/configService.ts @@ -4,8 +4,8 @@ import { Inject, Injectable, LOCALE_ID } from '@angular/core'; import { HttpClient } from '@angular/common/http'; import { Observable, Subject } from 'rxjs'; import { formatDate } from '@angular/common'; -import { UtilService } from './utilService'; import { isMatchingPeriods } from '../common/period/period'; +import { millisecondsToDateTime } from '../common/datetime/datetime'; @Injectable() export class ConfigService { @@ -13,11 +13,7 @@ export class ConfigService { private configRetrievedSource: Subject = new Subject(); public configRetrieved$: Observable = this.configRetrievedSource.asObservable(); - constructor( - private http: HttpClient, - @Inject(LOCALE_ID) private localeID: string, - private utilService: UtilService - ) {} + constructor(private http: HttpClient, @Inject(LOCALE_ID) private localeID: string) {} setConfig(config) { this.config = config; @@ -985,12 +981,12 @@ export class ConfigService { } getFormattedStartDate() { - return this.utilService.convertMillisecondsToFormattedDateTime(this.getStartDate()); + return millisecondsToDateTime(this.getStartDate()); } getFormattedEndDate() { if (this.getEndDate() != null) { - return this.utilService.convertMillisecondsToFormattedDateTime(this.getEndDate()); + return millisecondsToDateTime(this.getEndDate()); } return ''; } diff --git a/src/assets/wise5/services/utilService.ts b/src/assets/wise5/services/utilService.ts index f5fe4b84c6e..6bad5ac878e 100644 --- a/src/assets/wise5/services/utilService.ts +++ b/src/assets/wise5/services/utilService.ts @@ -25,21 +25,6 @@ export class UtilService { } } - /** - * Convert milliseconds since the epoch to a pretty printed date time - * @param milliseconds the milliseconds since the epoch - * @return a string containing the pretty printed date time - * example - * Wed Apr 06 2016 9:05:38 AM - */ - convertMillisecondsToFormattedDateTime(milliseconds) { - const date = new Date(milliseconds); - if (date != null) { - return date.toDateString() + ' ' + date.toLocaleTimeString(); - } - return ''; - } - /** * Determine whether the component has been authored to import work. * @param componentContent The component content. diff --git a/src/messages.xlf b/src/messages.xlf index 580a9cec3bc..189f60648b6 100644 --- a/src/messages.xlf +++ b/src/messages.xlf @@ -11971,49 +11971,49 @@ Are you sure you want to proceed? Correctness column key: 0 = Incorrect, 1 = Correct, 2 = Correct bucket but wrong position src/assets/wise5/classroomMonitor/dataExport/data-export/data-export.component.ts - 134 + 133 One Workgroup Per Row src/assets/wise5/classroomMonitor/dataExport/data-export/data-export.component.ts - 173 + 172 Latest Student Work src/assets/wise5/classroomMonitor/dataExport/data-export/data-export.component.ts - 175 + 174 All Student Work src/assets/wise5/classroomMonitor/dataExport/data-export/data-export.component.ts - 177 + 176 Events src/assets/wise5/classroomMonitor/dataExport/data-export/data-export.component.ts - 179 + 178 Raw Data src/assets/wise5/classroomMonitor/dataExport/data-export/data-export.component.ts - 181 + 180 Downloading Export src/assets/wise5/classroomMonitor/dataExport/data-export/data-export.component.ts - 2125 + 2122 @@ -12087,182 +12087,182 @@ Are you sure you want to proceed? The row number. src/assets/wise5/classroomMonitor/dataExport/export-step-visits/export-step-visits.component.ts - 120 + 121 The ID of the group. src/assets/wise5/classroomMonitor/dataExport/export-step-visits/export-step-visits.component.ts - 121 + 122 The User ID of the first student in the group. This ID follows the student for all runs. src/assets/wise5/classroomMonitor/dataExport/export-step-visits/export-step-visits.component.ts - 124 + 125 The name of the first student. This only shows up if you have permission to view the student names and you enabled the 'Include Student Names' checkbox. src/assets/wise5/classroomMonitor/dataExport/export-step-visits/export-step-visits.component.ts - 128 + 129 The UserID of the second student in the group. This ID follows the student for all runs. src/assets/wise5/classroomMonitor/dataExport/export-step-visits/export-step-visits.component.ts - 132 + 133 The name of the second student. This only shows up if you have permission to view the student names and you enabled the 'Include Student Names' checkbox. src/assets/wise5/classroomMonitor/dataExport/export-step-visits/export-step-visits.component.ts - 136 + 137 The User ID of the third student in the group. This ID follows the student for all runs. src/assets/wise5/classroomMonitor/dataExport/export-step-visits/export-step-visits.component.ts - 140 + 141 The name of the third student. This only shows up if you have permission to view the student names and you enabled the 'Include Student Names' checkbox. src/assets/wise5/classroomMonitor/dataExport/export-step-visits/export-step-visits.component.ts - 144 + 145 The ID of the run. src/assets/wise5/classroomMonitor/dataExport/export-step-visits/export-step-visits.component.ts - 146 + 147 The ID of the project. src/assets/wise5/classroomMonitor/dataExport/export-step-visits/export-step-visits.component.ts - 147 + 148 The name of the project. src/assets/wise5/classroomMonitor/dataExport/export-step-visits/export-step-visits.component.ts - 148 + 149 The ID of the period that this student is in. src/assets/wise5/classroomMonitor/dataExport/export-step-visits/export-step-visits.component.ts - 149 + 150 The period name that this student is in. This name is chosen by the teacher that created the run. src/assets/wise5/classroomMonitor/dataExport/export-step-visits/export-step-visits.component.ts - 152 + 153 The start date of the run. src/assets/wise5/classroomMonitor/dataExport/export-step-visits/export-step-visits.component.ts - 154 + 155 The end date of the run. src/assets/wise5/classroomMonitor/dataExport/export-step-visits/export-step-visits.component.ts - 155 + 156 The ID of the step. Each step in a unit has a unique Node ID. src/assets/wise5/classroomMonitor/dataExport/export-step-visits/export-step-visits.component.ts - 158 + 159 The title of the step. src/assets/wise5/classroomMonitor/dataExport/export-step-visits/export-step-visits.component.ts - 160 + 161 The timestamp when the student entered the step. src/assets/wise5/classroomMonitor/dataExport/export-step-visits/export-step-visits.component.ts - 163 + 164 The timestamp when the student exited the step. This value can be empty if WISE did not get the chance to save a step exit event. This can happen if the student closes their laptop without signing out of WISE or if they refresh the WISE page. src/assets/wise5/classroomMonitor/dataExport/export-step-visits/export-step-visits.component.ts - 167 + 168 The amount of time the student spent on the step during this visit measured in seconds. src/assets/wise5/classroomMonitor/dataExport/export-step-visits/export-step-visits.component.ts - 171 + 172 The number of times the student has visited this step so far. src/assets/wise5/classroomMonitor/dataExport/export-step-visits/export-step-visits.component.ts - 175 + 176 The number of times the student has revisited this step so far. This will always be 1 less than the 'Visit Counter' for a given visit. src/assets/wise5/classroomMonitor/dataExport/export-step-visits/export-step-visits.component.ts - 179 + 180 The Node ID of the step the student was on before visiting this step. src/assets/wise5/classroomMonitor/dataExport/export-step-visits/export-step-visits.component.ts - 183 + 184 The step title of the step the student was on before visiting this step. src/assets/wise5/classroomMonitor/dataExport/export-step-visits/export-step-visits.component.ts - 187 + 188 A list of Node IDs that contain the steps the student visited before revisiting this step. This cell will only contain values if they revisit a step. For example if the student navigated to node1, then node2, then node3, then node1. For the second visit to node1, the 'Node IDs Since Last Visit' will show node2, node3. src/assets/wise5/classroomMonitor/dataExport/export-step-visits/export-step-visits.component.ts - 191 + 192 A list of step numbers that contain the steps the student visited before revisiting this step. This cell will only contain values if they revisit a step. For example if the student navigated to 1.1, then 1.2, then 1.3, then 1.1. For the second visit to 1.1, the 'Steps Since Last Visit' will show 1.2, 1.3. src/assets/wise5/classroomMonitor/dataExport/export-step-visits/export-step-visits.component.ts - 195 + 196 @@ -16505,7 +16505,7 @@ Warning: This will delete all existing choices and buckets in this component.Match src/assets/wise5/components/match/matchService.ts - 9 + 10 @@ -18411,7 +18411,7 @@ If this problem continues, let your teacher know and move on to the next activit Student src/assets/wise5/services/configService.ts - 577 + 573