diff options
Diffstat (limited to 'js')
-rw-r--r-- | js/codeq/prolog.js | 16 | ||||
-rw-r--r-- | js/codeq/python.js | 12 | ||||
-rw-r--r-- | js/codeq/robot.js | 18 |
3 files changed, 36 insertions, 10 deletions
diff --git a/js/codeq/prolog.js b/js/codeq/prolog.js index 2aeede4..ce1865a 100644 --- a/js/codeq/prolog.js +++ b/js/codeq/prolog.js @@ -166,7 +166,7 @@ 'step': 'run', 'program': editor.getDoc().getValue(), 'query': command, - 'trace': activityHandler.addAndPurge({'typ': 'slv', 'qry': command}) + 'trace': activityHandler.addAndPurge({'typ': 'prolog_solve', 'query': command}) }, problem_id).then(tcs, tcf); } else { @@ -176,7 +176,7 @@ return codeq.comms.sendQuery({ 'problem_id': problem_id, 'step': 'next', - 'trace': activityHandler.addAndPurge({'typ': 'nxt'}) + 'trace': activityHandler.addAndPurge({'typ': 'prolog_next'}) }, problem_id).then(tcs, tcf); } else { @@ -185,10 +185,9 @@ return codeq.comms.sendQuery({ 'problem_id': problem_id, 'step': 'end', - 'trace': activityHandler.addAndPurge({'typ': 'stp'}) + 'trace': activityHandler.addAndPurge({'typ': 'prolog_end'}) }, problem_id).then(tcs, tcf); } - } }; @@ -240,6 +239,7 @@ }); jqBtnPlan.on('click', function () { + activityHandler.queueTrace({'typ': 'plan'}); if (!hinter.planNext()) { jqBtnPlan.prop('disabled', true).blur(); } @@ -255,6 +255,7 @@ }) .then(function (data) { if (data.code === 0) { + activityHandler.queueTrace({'typ': 'hint', 'feedback': data.hints}); hinter.handle(data.hints); } else { @@ -279,6 +280,7 @@ }) .then(function (data) { if (data.code === 0) { + activityHandler.queueTrace({'typ': 'test', 'feedback': data.hints}); hinter.handle(data.hints); } else { @@ -294,6 +296,11 @@ }); codeq.comms.loadProblem(problemDef.id).done(); + activityHandler.queueTrace({ + 'typ': 'open', + 'time': Date.now(), + 'content': editor.getDoc().getValue() + }); return { destroy: function () { @@ -301,6 +308,7 @@ $('#screen_prolog .title').text('');//empty the title text jqAllButtons.off(); editor.off('change'); + activityHandler.queueTrace({'typ': 'close'}); activityHandler.flush(); hinter.destroy(); terminal.destroy(); diff --git a/js/codeq/python.js b/js/codeq/python.js index 4d6ace3..c3a76b9 100644 --- a/js/codeq/python.js +++ b/js/codeq/python.js @@ -139,6 +139,7 @@ terminal.onInput = function (text) { terminal.leftmostCol = 0; + activityHandler.queueTrace({'typ': 'python_input', 'txt': text + '\n'}); return codeq.comms.sendPythonPush({ 'text': text + '\n' }).then(tcs, tcf); @@ -198,6 +199,7 @@ }); jqBtnPlan.on('click', function () { + activityHandler.queueTrace({'typ': 'plan'}); if (!hinter.planNext()) { jqBtnPlan.prop('disabled', true).blur(); } @@ -211,6 +213,7 @@ }) .then(function (data) { if (data.code === 0) { + activityHandler.queueTrace({'typ': 'hint', 'feedback': data.hints}); hinter.handle(data.hints); } else { @@ -229,6 +232,7 @@ }) .then(function (data) { if (data.code === 0) { + activityHandler.queueTrace({'typ': 'test', 'feedback': data.hints}); hinter.handle(data.hints); } else { @@ -240,6 +244,7 @@ }); jqBtnRun.on('click', function () { var program = editor.getDoc().getValue(); + activityHandler.queueTrace({'typ': 'python_run', 'program': program}); codeq.comms.sendPythonStop({}) .then(function () { codeq.comms.sendPythonExec({ @@ -252,12 +257,18 @@ jqTerminal.click(); }); jqBtnStop.on('click', function () { + activityHandler.queueTrace({'typ': 'python_stop'}); codeq.comms.sendPythonStop({}) .fail(commError) .done(); }); codeq.comms.loadProblem(problemDef.id).done(); + activityHandler.queueTrace({ + 'typ': 'open', + 'time': Date.now(), + 'content': editor.getDoc().getValue() + }); return { destroy: function () { @@ -266,6 +277,7 @@ jqAllButtons.off(); editor.off('change'); codeq.comms.off('terminal_output'); // stop listening for the terminal events from server + activityHandler.queueTrace({'typ': 'close'}); activityHandler.flush(); hinter.destroy(); terminal.destroy(); diff --git a/js/codeq/robot.js b/js/codeq/robot.js index 0a62a2a..5d86559 100644 --- a/js/codeq/robot.js +++ b/js/codeq/robot.js @@ -196,6 +196,7 @@ }); jqBtnPlan.on('click', function () { + activityHandler.queueTrace({'typ': 'plan'}); if (!hinter.planNext()) { jqBtnPlan.prop('disabled', true).blur(); } @@ -209,6 +210,7 @@ }) .then(function (data) { if (data.code === 0) { + activityHandler.queueTrace({'typ': 'hint', 'feedback': data.hints}); hinter.handle(data.hints); } else { @@ -219,18 +221,21 @@ .done(); }); jqBtnRun.on('click', function () { - var url = 'http://' + $('#robot_ip').val() + ':8000/run', - doc = editor.getDoc(); - - socket.send(JSON.stringify({action: 'run', program: doc.getValue()})); + var program = editor.getDoc().getValue(); + activityHandler.queueTrace({'typ': 'robot_run', 'program': program}); + socket.send(JSON.stringify({action: 'run', program: program})); }); jqBtnStop.on('click', function () { - var url = 'http://' + $('#robot_ip').val() + ':8000/stop'; - + activityHandler.queueTrace({'typ': 'robot_stop'}); socket.send(JSON.stringify({action: 'stop'})); }); codeq.comms.loadProblem(problemDef.id).done(); + activityHandler.queueTrace({ + 'typ': 'open', + 'time': Date.now(), + 'content': editor.getDoc().getValue() + }); return { destroy: function () { @@ -250,6 +255,7 @@ $('#screen_robot .title').text('');//empty the title text jqAllButtons.off(); editor.off('change'); + activityHandler.queueTrace({'typ': 'close'}); activityHandler.flush(); hinter.destroy(); jqDescriptionContent.empty(); |