94 lines
2.8 KiB
HTML
94 lines
2.8 KiB
HTML
<%namespace name='static' file='/static_content.html'/>
|
|
|
|
<script type="text/javascript" src="${static.url('js/vendor/jquery.leanModal.min.js')}"></script>
|
|
<script type="text/javascript">
|
|
|
|
function setup_debug(element_id, edit_link, staff_context){
|
|
$('#' + element_id + '_trig').leanModal();
|
|
$('#' + element_id + '_xqa_log').leanModal();
|
|
$('#' + element_id + '_xqa_form').submit(function () {sendlog(element_id, edit_link, staff_context);});
|
|
|
|
$("#" + element_id + "_history_trig").leanModal();
|
|
|
|
$('#' + element_id + '_history_form').submit(
|
|
function () {
|
|
var username = $("#" + element_id + "_history_student_username").val();
|
|
var location = $("#" + element_id + "_history_location").val();
|
|
|
|
// This is a ridiculous way to get the course_id, but I'm not sure
|
|
// how to do it sensibly from within the staff debug code.
|
|
// staff_problem_info.html is rendered through a wrapper to get_html
|
|
// that's injected by the code that adds the histogram -- it's all
|
|
// kinda bizarre, and it remains awkward to simply ask "what course
|
|
// is this problem being shown in the context of."
|
|
var path_parts = window.location.pathname.split('/');
|
|
var course_id = path_parts[2] + "/" + path_parts[3] + "/" + path_parts[4];
|
|
$("#" + element_id + "_history_text").load('/courses/' + course_id +
|
|
"/submission_history/" + username + "/" + location);
|
|
return false;
|
|
}
|
|
);
|
|
}
|
|
|
|
function sendlog(element_id, edit_link, staff_context){
|
|
|
|
var xqaLog = {
|
|
authkey: staff_context.xqa_key,
|
|
location: staff_context.location,
|
|
category : staff_context.category,
|
|
'username' : staff_context.user.username,
|
|
'return' : 'query',
|
|
format : 'html',
|
|
email : staff_context.user.email,
|
|
tag:$('#' + element_id + '_xqa_tag').val(),
|
|
entry: $('#' + element_id + '_xqa_entry').val()
|
|
};
|
|
|
|
$.ajax({
|
|
url: '${xqa_server}/log',
|
|
type: 'GET',
|
|
contentType: 'application/json',
|
|
data: JSON.stringify(xqaLog),
|
|
crossDomain: true,
|
|
dataType: 'jsonp',
|
|
beforeSend: function (xhr) {
|
|
xhr.setRequestHeader ("Authorization", "Basic eHFhOmFnYXJ3YWw="); },
|
|
timeout : 1000,
|
|
success: function(result) {
|
|
$('#' + element_id + '_xqa_log_data').html(result);
|
|
},
|
|
error: function() {
|
|
alert('Error: cannot connect to XQA server');
|
|
console.log('error!');
|
|
}
|
|
});
|
|
return false;
|
|
};
|
|
|
|
function getlog(element_id, staff_context){
|
|
|
|
var xqaQuery = {
|
|
authkey: staff_context.xqa_key,
|
|
location: staff_context.location,
|
|
format: 'html'
|
|
};
|
|
|
|
$.ajax({
|
|
url: '${xqa_server}/query',
|
|
type: 'GET',
|
|
contentType: 'application/json',
|
|
data: JSON.stringify(xqaQuery),
|
|
crossDomain: true,
|
|
dataType: 'jsonp',
|
|
timeout : 1000,
|
|
success: function(result) {
|
|
$('#' + element_id + '_xqa_log_data').html(result);
|
|
},
|
|
error: function() {
|
|
alert('Error: cannot connect to XQA server');
|
|
}
|
|
});
|
|
|
|
|
|
};
|
|
</script> |