summaryrefslogtreecommitdiff
path: root/js
diff options
context:
space:
mode:
Diffstat (limited to 'js')
-rw-r--r--js/codeq/prolog.js16
-rw-r--r--js/codeq/python.js12
-rw-r--r--js/codeq/robot.js18
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();