diff --git a/runestone/assess/js/fitb.js b/runestone/assess/js/fitb.js index cefe8a8bd..f9c9169b2 100644 --- a/runestone/assess/js/fitb.js +++ b/runestone/assess/js/fitb.js @@ -219,7 +219,8 @@ FITB.prototype.checkLocalStorage = function () { $(this.blankArray[i]).attr("value", arr[i]); } if (this.useRunestoneServices) { - this.logBookEvent({"event": "fillb", "act": "submitFITB", "answer": storedData.answer.join(","), "correct": storedData.correct, "div_id": this.divid}); + var answer = storedData.answer.join(",") + this.logBookEvent({"event": "fillb", "act": answer, "answer": answer, "correct": storedData.correct, "div_id": this.divid}); this.enableCompareButton(); } } @@ -250,7 +251,8 @@ FITB.prototype.startEvaluation = function (logFlag) { this.evaluateAnswers(); this.renderFITBFeedback(); if (logFlag) { // Sometimes we don't want to log the answer--for example, when timed exam questions are re-loaded - this.logBookEvent({"event": "fillb", "act": "submitFITB", "answer": this.given_arr.join(","), "correct": (this.correct ? "T" : "F"), "div_id": this.divid}); + var answer = this.given_arr.join(","); + this.logBookEvent({"event": "fillb", "act": answer, "answer":answer, "correct": (this.correct ? "T" : "F"), "div_id": this.divid}); } if (this.useRunestoneServices) { this.enableCompareButton(); diff --git a/runestone/assess/js/mchoice.js b/runestone/assess/js/mchoice.js index 52b07b0f0..f030b4f41 100644 --- a/runestone/assess/js/mchoice.js +++ b/runestone/assess/js/mchoice.js @@ -387,7 +387,8 @@ MultipleChoice.prototype.scoreMCMASubmission = function () { MultipleChoice.prototype.logMCMAsubmission = function (data) { var answer = data.answer; var correct = data.correct; - this.logBookEvent({"event": "mChoice", "act": "submitMC", "answer": answer, "correct": correct, "div_id": this.divid}); + var logAnswer = "answer:" + answer + ":" + (correct == "T" ? "correct" : "no"); + this.logBookEvent({"event": "mChoice", "act": logAnswer, "answer":answer, "correct": correct, "div_id": this.divid}); }; @@ -439,7 +440,8 @@ MultipleChoice.prototype.scoreMCMFSubmission = function () { MultipleChoice.prototype.logMCMFsubmission = function () { var answer = this.givenArray[0]; var correct = (this.givenArray[0] == this.correctIndexList[0] ? "T" : "F"); - this.logBookEvent({"event": "mChoice", "act": "submitMC", "answer": answer, "correct": correct, "div_id": this.divid}); + var logAnswer = "answer:" + answer + ":" + (correct == "T" ? "correct" : "no"); // backward compatible + this.logBookEvent({"event": "mChoice", "act": logAnswer, "answer": answer, "correct": correct, "div_id": this.divid}); }; MultipleChoice.prototype.renderMCMFFeedback = function (correct, feedbackText) { diff --git a/runestone/common/js/runestonebase.js b/runestone/common/js/runestonebase.js index b30035ecb..703d8538c 100644 --- a/runestone/common/js/runestonebase.js +++ b/runestone/common/js/runestonebase.js @@ -7,7 +7,7 @@ RunestoneBase.prototype.logBookEvent = function (eventInfo) { if (eBookConfig.useRunestoneServices && eBookConfig.logLevel > 0) { jQuery.get(eBookConfig.ajaxURL + 'hsblog', eventInfo); // Log the run event } - console.log("logging event " + eventInfo); + console.log("logging event " + JSON.stringify(eventInfo)); }; RunestoneBase.prototype.logRunEvent = function (eventInfo) { @@ -18,7 +18,7 @@ RunestoneBase.prototype.logRunEvent = function (eventInfo) { if (eBookConfig.useRunestoneServices && eBookConfig.logLevel > 0) { jQuery.post(eBookConfig.ajaxURL + 'runlog', eventInfo); // Log the run event } - console.log("running " + eventInfo); + console.log("running " + JSON.stringify(eventInfo)); }; /* Checking/loading from storage */ diff --git a/runestone/dragndrop/js/dragndrop.js b/runestone/dragndrop/js/dragndrop.js index 089fad300..75ef588ec 100644 --- a/runestone/dragndrop/js/dragndrop.js +++ b/runestone/dragndrop/js/dragndrop.js @@ -337,7 +337,8 @@ DragNDrop.prototype.dragEval = function (logFlag) { this.setLocalStorage({"correct": (this.correct ? "T" : "F")}); this.renderFeedback(); if (logFlag) // Sometimes we don't want to log the answers--for example, on re-load of a timed exam - this.logBookEvent({"event": "dragNdrop", "act": "submitDND", "answer": this.pregnantIndexArray.join(";"), "minHeight": this.minheight, "div_id": this.divid, "correct": this.correct}); + var answer = this.pregnantIndexArray.join(";"); + this.logBookEvent({"event": "dragNdrop", "act": answer, "answer":answer, "minHeight": this.minheight, "div_id": this.divid, "correct": this.correct}); }; DragNDrop.prototype.renderFeedback = function () { @@ -374,7 +375,8 @@ DragNDrop.prototype.checkLocalStorage = function () { this.pregnantIndexArray = storedObj.answer.split(";"); if (this.useRunestoneServices) { // store answer in database - this.logBookEvent({"event": "dragNdrop", "act": "submitDND", "answer": this.pregnantIndexArray.join(";"), "minHeight": this.minheight, "div_id": this.divid, "correct": storedObj.correct}); + var answer = this.pregnantIndexArray.join(";"); + this.logBookEvent({"event": "dragNdrop", "act": answer, "answer":answer, "minHeight": this.minheight, "div_id": this.divid, "correct": storedObj.correct}); } } }