From c4371f61a68dcc25c42fa9fc78c624d75b9964dc Mon Sep 17 00:00:00 2001 From: sotech117 Date: Thu, 18 Jan 2024 13:26:24 -0500 Subject: add files via upload --- record.js | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 record.js (limited to 'record.js') diff --git a/record.js b/record.js new file mode 100644 index 0000000..a97ebbd --- /dev/null +++ b/record.js @@ -0,0 +1,43 @@ +// generate a random UID for this user, on page load. +const UID = Math.round(Math.random() * 1000000); +// takes in an event object and updates local storage to contain that event +const recordAction = event => { + let data = localStorage.getItem("cs1300-ab-testing-data"); + data = JSON.parse(data); + // check if parsing is correct + if (!Array.isArray(data)) { + console.error("DATA is not an array") + return; + } + + // get version form the meta tag on the html file + const version = document.querySelector("meta[name='version']").getAttribute("content"); + const uid = UID; + const timestamp = Date.now().toString(); + const action = event.type; + let target = event.target.tagName; + let targetId = event.target.id; + if (target == null) { + target = 'N/A' + } + if (targetId) { + target += `#${targetId}` + } + data.push({uid, version, action, target, timestamp}); + + localStorage.setItem("cs1300-ab-testing-data", JSON.stringify(data)); +} +// to be called on the click that determined when the task is completed to clean up event listeners +const done = event => { + // record this event + recordAction(event); + + // TODO: remove event listeners + window.removeEventListener('load', recordAction); + window.removeEventListener('click', recordAction); + + location.href = 'index.html'; +} + +window.addEventListener('load', recordAction); +window.addEventListener('click', recordAction); -- cgit v1.2.3-70-g09d2