B.7 Documentation Log Events
During the delivery of assessment components created with the CBA ItemBuilder, log events are generated, which can be collected and stored by the software used for test deployment. The log events are delivered using the TaskPlayer API (see section 7.7) as JSON objects. The deployment software is responsible for storing and probably transforming the format of the data provided in log events. Raw Log Events are generated by default (see section 2.8.1). The documentation of the different Raw Log Events provided by CBA ItemBuilder is done separately for events of different components-categories:
- Raw Log Events for basic components (table B.23): Click events for buttons and links, page change and scroll events
- Raw Log Events for components that support selection (table B.24): Log events that occur when components in the test are clicked or selected
- Raw Log Events for answer-changes (table B.25): Log events, which can indicate the change of a response
- Raw Log Events for text entry components (table B.26): Log events for selection and modification of components for text entry
- Raw Log Events for value inputs (table B.27): Log events for value input components
- Raw Log Events for audio an video components (table B.28): Log events for player components used to embed media
- Raw Log Events for tree components (table B.29): Log events for the CBA ItemBuilder tree component
- Raw Log Events for advanced components (table B.30): Log events for advanced components
- Raw Log Events for text highlighting (table B.31): Log events for the text highlighting in
TextFields - Raw Log Events for variable and state changes (table B.32): Log events for variable value changes, language switching, caret position changes, and interactions with frozen components
- Raw Log Events for snapshots and recommendations (table B.33): Log events for task state snapshots and navigation recommendations
- Raw Log Events for test deployment (table B.34): Log events for the test deployment. Note that the deployment software can provide additional events.
As described in section 2.8.4 log data can be stored in different formats, such as the Universal Log Format, Flat and Sparse Log Data Tables or as eXtensible Event Stream (XES). All formats use the The event name is either contained as a column (flat and sparse log data table) or corresponds to the table in which the log data of this event type is stored (universal log format).
The different tables list the events with different names (event type), give a short description, and name the central event-specific data transmitted by the events. Optional attributes are specially marked. Beyond the documented attributes, log events often provide the following additional attributes:
indexPath: The index path of the component instance.userDefIdPath: The user defined ID path of the component instance.clientX/clientY/pageX/pageY/screenX/screenY: The position of the element in different metrics.
These attributes’ values reproduce properties of the affected components and can be used to map the affected parts of the instrument (beyond the UserDefinedID).
| Event Name | Description | Event-Specific Data |
|---|---|---|
| Button | Button is pressed. | UserDefId of the button, oldSelected (was the button selected before), subtype\(^1\) (type of the button) |
| Link | Link is hit. | UserDefId of the Link, oldSelected (was the Link selected before) |
| ValueDisplay | Value display is selected. | UserDefId of ValueDisplay, displayType (type of the display, either number, text, image icon, audio or video) |
| EmbeddedLink | Embedded link is selected. | indexPath (Index path of the embedded link), no UserDefId |
| ScrollbarMove | Scrollbar slider moved. | userDefId of the component, orientation (either horizontal or vertical), direction (either down, up, left, or right), horizontalScroll (position of the horizontal slider at the end of the move in percent of total size, 0% is at the left end, 100% is at the right end), verticalScroll (position of the vertical slider at the end of the move in percent of total size, 0% is at the top, 100% is at the bottom) |
| PageSwitchTopLevel | A page switch in a top level page area occurs. | pageAreaType (type of the page area, either main, dialog or modal), pageAreaName (name of the page area), newPageName (name of the page displayed in the page area), position\(^1\) (X/Y) |
| PageSwitchEmbedded | A page switch in an embedding component instance occurs. | userDefId of the component, newPageName (name of the new page embedded in the component instance), tab\(^1\) (name of the target tab in the embedding component instance), historyMove\(^1\) (history move operation that triggered the page switch, either home, back, or forward) |
\(^1\) Optional event-specific data.
| Event Name | Description | Event-Specific Data |
|---|---|---|
| SimpleTextField | Simple text field is selected. | UserDefId of the SimpleTextField |
| ImageField | Image field is selected. | UserDefId of the ImageField |
| ExternalPageFrame | An external page frame is selected. | UserDefId of the ExternalPageFrame |
| Panel | Panel is selected. | UserDefId of the Panel |
| Container | Container is selected. | UserDefId of the Container |
| RegionMap | Region map is selected. | UserDefId of RegionMap |
| PageArea | Page area is selected. | UserDefId of PageArea |
| Event Name | Description | Event-Specific Data |
|---|---|---|
| Checkbox | Checkbox is pressed. | UserDefId of the Checkbox, oldSelected (was the Checkbox selected before) |
| RadioButton | RadioButton is pressed. | UserDefId of the RadioButton, oldSelected (was the RadioButton selected before) |
| Combobox | Combo box selected entry changes. The combox box will not trace an event if the user selects the currently selected item once more. | UserDefId of the Combobox, oldSelected (index of the previously selected combo box item), oldSelectedUserDefId (user defined ID of the previously selected item), newSelected (index of the now selected combo box item), newSelectedUserDefId (user defined ID of the now selected item) |
| ImageArea | Image area is selected. | UserDefId of ImageArea, oldSelected (was the ImageArea selected before) |
| ImageTextField | Image text field is selected. | UserDefId of ImageTextField, oldSelected (was the ImageTextField selected before) |
| RichText | Rich text field is selected. | UserDefId of RichText, oldSelected (was the RichText selected before) |
\(^1\) Optional event-specific data.
| Event Name | Description | Event-Specific Data |
|---|---|---|
| SingleLineInputField | Single line input field is selected. | UserDefId of SingleLineInputField, currentTextValue (text value of the input field) |
| SingleLineInputFieldModified | Single line input field receives modification request. | UserDefId of SingleLineInputFieldModified, oldTextValue (old text value of the input field), newTextValue (new text value of the input field), origin (origin of the modification request, either keyboard or cutAndPaste), validationPattern\(^1\) (validation pattern configured for the field), invalidTextValue\(^1\) (text value that was rejected by the pattern validation) |
| InputField | Input field is selected. | UserDefId of InputField, currentTextValue (text value of the input field) |
| InputFieldModified | Input field receives modification request. | UserDefId of InputFieldModified, oldTextValue (old text value of the input field), newTextValue (new text value of the input field), origin (origin of the modification request, either keyboard or cutAndPaste), validationPattern\(^1\) (validation pattern configured for the field), invalidTextValue\(^1\) (text value that was rejected by the pattern validation) |
\(^1\) Optional event-specific data.
| Event Name | Description | Event-Specific Data |
|---|---|---|
| ValueInput | Variable value input field is selected. | UserDefId of ValueInput |
| ValueInputModified | Variable value Input field is modified. | UserDefId of ValueInput, newValue (new value for the variable) |
| ScaleValueInput | Scale value input field is selected. | UserDefId of ScaleValueInput |
| SpinnerValueInput | Spinner value input field is selected. | UserDefId of SpinnerValueInput |
| Event Name | Description | Event-Specific Data |
|---|---|---|
| AudioPlayer | Audio player receives click with hidden controls. | UserDefId of AudioPlayer |
| AudioPlayerControl | Audio player starts/pauses/ends playing. | UserDefId of AudioPlayerControl, operation (either play, pause, stop, or ended), maxPlay (maximum number of plays allowed), currentPlayNo (number of the current play), automaticStart (true if automatic start), hideControls (true if controls are hidden), volumeLevel (current volume level in percent), isStatemachineTriggered (true if triggered by FSM) |
| VideoPlayer | Video player receives click with hidden controls. | UserDefId of VideoPlayer |
| VideoPlayerControl | Video player starts/pauses/ends playing. | UserDefId of AudioPlayerControl, operation (either play, pause, stop, or ended), maxPlay (maximum number of plays allowed), currentPlayNo (number of the current play), automaticStart (true if automatic start), hideControls (true if controls are hidden), volumeLevel (current volume level in percent), isStatemachineTriggered (true if triggered by FSM) |
| Event Name | Description | Event-Specific Data |
|---|---|---|
| TreeNode | Operation on node in tree. | UserDefId of the tree, operation (type of operation, either emptySelection, selection, doubleClick, expandNode, collapseNode, new, delete, rename, cut, copy, paste, drag, or drop), nodePathId\(^1\) (node path id of selected node), nodeType\(^1\) (type of selected node), nodeName (name of selected node), oldValue\(^1\) (for operation=rename only: old column value), newValue\(^1\) (for operation=rename only: new column value), columnName\(^1\) (for operation=rename only: name of column changed by the operation), triggeredEvent\(^1\) (for operation=delete only: name of the FSM event triggered instead of executing the operation) |
| TreeViewNode | Operation on node in tree view. | UserDefId of the tree, operation (type of operation, either emptySelection, selection, doubleClick, expandNode, collapseNode, new, delete, rename, cut, copy, paste, drag, or drop), nodePathId\(^1\) (node path id of selected node), nodeType\(^1\) (type of selected node), nodeName (name of selected node), oldValue\(^1\) (for operation=rename only: old column value), newValue\(^1\) (for operation=rename only: new column value), columnName\(^1\) (for operation=rename only: name of column changed by the operation), triggeredEvent\(^1\) (for operation=delete only: name of the FSM event triggered instead of executing the operation) |
| TreeViewSort | Sort by column operation in tree view. | UserDefId of the tree, sortDirection (direction of the sorting applied to the rows, either ascending, descending, or none), columnName\(^1\) (name of the column to sort rows by), columnIndex\(^1\) (index of the column to sort rows by) |
| TreeChildArea | Tree child area receives click | UserDefId of the tree |
\(^1\) Optional event-specific data.
| Event Name | Description | Event-Specific Data |
|---|---|---|
| TableCell | Table cell is selected. | UserDefId of the TableCell, tableUserDefId (userDefId of the table containing the cell), row (index of the row of the cell), column (index of the column of the cell), oldSelected (was the TableCell selected before) |
| TableCellModified | Table cell is modified. | UserDefId of the TableCell, tableUserDefId (userDefId of the table containing the cell), row (index of the row of the cell), column (index of the column of the cell), cellType (text combo or formula), oldValue (old value of the cell), newValue (new value of the cell), oldEvaluatedValue (evaluated value of the old formula), newEvaluatedValue (evaluated value of the new formula), errorInFormula (error value returned by the formula evaluation for the new formula) |
| BrowserTab | Switch the current Browser tab. Event is raised by selecting the tab. | UserDefId of the web child area component, tab (name of the selected tab), page (name of the page displayed in the selected tab) |
| DragAndDropReceive | Drag & drop operation completed. | senderUserDefId\(^1\) (user defined ID of the sending component), receiverUserDefId\(^1\) (user defined ID of the receiving component), startPosition (X/Y), endPosition (X/Y), sendingType, receivingType, operation |
| JavaScriptInjected | Some external JavaScript code triggered this entry in the trace log. | userDefId\(^1\) (as specified by the JavaScript code), origin (origin URL of the event triggered by the JavaScript code), message\(^1\) (as specified by the JavaScript code) |
| CutCopyPaste | A cut/copy/paste command was triggered. | contentUserDefId\(^1\) (ser defined ID of the component providing/receiving the clipboard content), triggerUserDefId\(^1\) (user defined ID of the triggering component), triggerType (type of the triggering action, either button, contextMenu, or keyboard), operation (operation triggered, either cut, copy, or paste), content\(^1\) (xchanged clipboard content, not given for denied requests), isPerformed\(^1\) (indicates whether the requested operation was performed or denied) |
| Bookmark | A bookmark related command triggered. | ownerUserDefId\(^1\) (user defined ID of the component owning the bookmarks), triggerUserDefId\(^1\) (user defined ID of the triggering component), triggerType (type of the triggering action, either button or contextMenu), operation (operation triggered, either add, drop, select, or manage), pageName\(^1\) (name of the target page of the bookmark), pageUrl\(^1\) (URL of the target page of the bookmark), tab\(^1\) (tab in the browser targeted by the bookmark, for tabbed browsers only) |
| OperatorTraceText | Operator trace_text() or trace_typed_text() includes text in trace log. |
text (evaluated text from the operator arguments), type\(^1\) (evaluated type from the operator arguments, for trace_typed_text() only) |
| OperatorTraceSnapshot | Operator trace_snapshot() or trace_typed_snapshot() includes text and a task snapshot in trace log. |
text (evaluated text from the operator arguments), type\(^1\) (evaluated type from the operator arguments, for trace_typed_snapshot() only) |
| OperatorSetTextValue | Operator insertText() sets text value of input element. |
UserDefId of component, oldTextValue (old text value), newTextValue (new text value), insertedValue (text snippet to insert), insertPosition (start position of the insert operation), dropLength (number of old characters dropped) |
\(^1\) Optional event-specific data.
| Event Name | Description | Event-Specific Data |
|---|---|---|
| RichTextHighlight | Highlighted area in rich text field changes. | UserDefId of the RichTextHighlight, startKey (ID of the block where the area starts), startOffset (position in the block where the area starts), endKey (ID of the block where the area ends), endOffset (position where the area ends), highlightColor (color used for the highlighted area), operationType (either Add, Remove, or Change) |
| RichTextHighlightStatus | Reports a single change in the overall highlight status. | UserDefId of the component, startKey (ID of the block where the area starts), startOffset (position where the area starts), endKey (ID of the block where the area ends), endOffset (position where the area ends), highlightColor (color used), operationType (either Added or Removed) |
The RichTextHighlight event tracks individual highlight operations. The RichTextHighlightStatus event reports the resulting changes in the overall highlight state. Both events use block-based coordinates (startKey/startOffset to endKey/endOffset) to identify text ranges within TextField components.
| Event Name | Description | Event-Specific Data |
|---|---|---|
| SetVariableValue | A variable value change operation occurred (from FSM operator, ExternalPageFrame, or Task Initialization). | variableName (name of the variable), variableType\(^1\) (value type: integer, number, string, or boolean), variableGlobal\(^1\) (global flag), oldValue\(^1\) (old value), newValue (new value), operationStatus (execution status: ok, valueWrongType, givenTypeNoMatch, givenGlobalFlagNoMatch, typeMissing, typeInconsistent, globalMissing, globalMissingInOtherTasks, globalTypeMismatchInOtherTasks, or globalNotGlobalInOtherTasks) |
| CaretPositionChange | Caret (cursor) position changed in an input component. | UserDefId of the component, componentType (either SingleLineInputField, InputField, or ValueInput), position (caret position as integer) |
| FrozenComponentInteraction | A frozen (disabled) component was clicked. | UserDefId of the component, componentType (type of the frozen component, e.g., Button, CheckBox, RadioButton, ComboBox, InputField, SingleLineInputField, Menu, Bookmark, ValueInput, TableCell, etc.) |
| ChangeLanguage | Attempt to switch the display language via changeLanguage() operator or LanguageSwitcher component. |
UserDefId of the LanguageSwitcher\(^1\), currentLanguage (current task language), targetLanguage (target language to be applied) |
\(^1\) Optional event-specific data.
| Event Name | Description | Event-Specific Data |
|---|---|---|
| Snapshot | A complete task state snapshot included in the trace. Used for restoring tasks and replay. | components (array of component states with indexPath, userDefId, componentType, and componentState), presentation (current state of the task presenter), incidents (incident counter and time values), clipboard (current clipboard content), statemachine (currently active states and event history), variables (array of variable names, values, types, and global flags), calculator\(^1\) (current state of the calculator) |
\(^1\) Optional event-specific data.
| Event Name | Description | Event-Specific Data |
|---|---|---|
| TasksViewVisible | The tasks view becomes visible. The view showing the task(s) becomes visible for the test user. | Settings for running the task |
| UserLogin | A test-taker logged in. | User name, information about the browser used to display the test |
| ItemSwitch | An item switch occurs. | Configuration of the new item |
| TaskSwitch | A task switch occurs. | oldTask (name of the interrupted tas), oldItem (name of the item containing the interrupted task), oldTest (name of the test of the interrupted task), newTask (name of the installed task), newItem (name of the item containing the installed task), newTest (name of the test of the installed task), taskResult (results for the named evaluations for the interrupted task) |
| HeaderButton | One of the header buttons provided by the viewer was pressed. | index (index of the header buttons in the header buttons list) |
| NavigationButton | One of the task/test navigation buttons provided by the viewer was pressed. | navigationType (type of the navigation button, either test or task), navigationTarget (name of the test or task to navigate to) |
| RuntimeController | The controlling environment triggered an action. | actionType (triggered action), details (parameters specifying the details of the triggered action) |
| ApplicationFullScreen | A fullscreen related command triggers. | type (type of operation triggered, either enterFullscreen or exitFullscreen), alternateStateDuration (duration in seconds since the last visibility change) |
| ApplicationVisibility | Application visibility changed. | type (type of change, either pageHidden or pageShown), alternateStateDuration (duration in seconds since the last visibility change) |
| PauseResume | Test run was paused or resumed after pause. | type (type of action, either pause or resume) |
\(^1\) Optional event-specific data.