Streamlined post form handlers for admin console
This commit is contained in:
@ -28,16 +28,16 @@ $("#btn-toggle-navigator").click(function(event){
|
||||
$(".navigator-text").fadeIn();
|
||||
$(".review-text").fadeOut();
|
||||
toggle_navigator = false;
|
||||
$quiz_navigator.focus();
|
||||
$(window).scrollTop(0);
|
||||
} else {
|
||||
$quiz_navigator.fadeOut();
|
||||
if (toggle_settings) {
|
||||
$quiz_settings.fadeIn();
|
||||
$quiz_settings.focus()
|
||||
$(window).scrollTop(0);
|
||||
toggle_settings = false;
|
||||
} else {
|
||||
$quiz_render.fadeIn();
|
||||
$question_title.focus();
|
||||
$(window).scrollTop(0);
|
||||
}
|
||||
}
|
||||
event.preventDefault();
|
||||
@ -51,17 +51,17 @@ $("#btn-toggle-settings").click(function(event){
|
||||
}
|
||||
$quiz_render.fadeOut();
|
||||
$quiz_settings.fadeIn();
|
||||
$quiz_settings.focus()
|
||||
$(window).scrollTop(0);
|
||||
toggle_settings = false;
|
||||
} else {
|
||||
$quiz_settings.fadeOut();
|
||||
if (toggle_navigator) {
|
||||
$quiz_navigator.fadeIn();
|
||||
toggle_navigator = false;
|
||||
$quiz_navigator.focus();
|
||||
$(window).scrollTop(0);
|
||||
} else {
|
||||
$quiz_render.fadeIn();
|
||||
$question_title.focus();
|
||||
$(window).scrollTop(0);
|
||||
}
|
||||
}
|
||||
event.preventDefault();
|
||||
@ -71,7 +71,7 @@ $(".btn-quiz-return").click(function(event){
|
||||
$quiz_navigator.fadeOut();
|
||||
$quiz_settings.fadeOut();
|
||||
$quiz_render.fadeIn();
|
||||
$question_title.focus();
|
||||
$(window).scrollTop(0);
|
||||
toggle_settings = false;
|
||||
toggle_navigator = false;
|
||||
event.preventDefault();
|
||||
@ -85,9 +85,10 @@ $("#navigator-container").on("click", ".q-navigator-button", function(event){
|
||||
check_answered();
|
||||
update_navigator();
|
||||
current_question = parseInt($(this).attr("name"));
|
||||
$quiz_navigator.fadeOut();
|
||||
$quiz_render.fadeIn();
|
||||
$question_title.focus();
|
||||
$quiz_navigator.fadeOut();
|
||||
$(window).scrollTop(0);
|
||||
toggle_navigator = false;
|
||||
toggle_settings = false;
|
||||
render_question();
|
||||
@ -164,25 +165,7 @@ $("#btn-start-quiz").click(function(event){
|
||||
}
|
||||
},
|
||||
error: function(response) {
|
||||
if (typeof response.responseJSON.error === 'string' || response.responseJSON.error instanceof String) {
|
||||
alert.innerHTML = alert.innerHTML + `
|
||||
<div class="alert alert-danger alert-dismissible fade show" role="alert">
|
||||
<i class="bi bi-exclamation-triangle-fill" title="Danger"></i>
|
||||
${response.responseJSON.error}
|
||||
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
|
||||
</div>
|
||||
`;
|
||||
} else if (response.responseJSON.error instanceof Array) {
|
||||
for (var i = 0; i < response.responseJSON.error.length; i ++) {
|
||||
alert.innerHTML = alert.innerHTML + `
|
||||
<div class="alert alert-danger alert-dismissible fade show" role="alert">
|
||||
<i class="bi bi-exclamation-triangle-fill" title="Danger"></i>
|
||||
${response.responseJSON.error[i]}
|
||||
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
|
||||
</div>
|
||||
`;
|
||||
}
|
||||
}
|
||||
error_response(response);
|
||||
}
|
||||
});
|
||||
|
||||
@ -209,7 +192,7 @@ $("#q-review-answers").click(function(event){
|
||||
$(".navigator-text").fadeOut();
|
||||
$(".review-text").fadeIn();
|
||||
toggle_navigator = false;
|
||||
$quiz_navigator.focus();
|
||||
$(window).scrollTop(0);
|
||||
} else {
|
||||
$quiz_navigator.fadeOut();
|
||||
if (toggle_settings) {
|
||||
@ -238,25 +221,7 @@ $(".quiz-button-submit").click(function(event){
|
||||
window.location.href = `/result/`;
|
||||
},
|
||||
error: function(response) {
|
||||
if (typeof response.responseJSON.error === 'string' || response.responseJSON.error instanceof String) {
|
||||
alert.innerHTML = alert.innerHTML + `
|
||||
<div class="alert alert-danger alert-dismissible fade show" role="alert">
|
||||
<i class="bi bi-exclamation-triangle-fill" title="Danger"></i>
|
||||
${response.responseJSON.error}
|
||||
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
|
||||
</div>
|
||||
`;
|
||||
} else if (response.responseJSON.error instanceof Array) {
|
||||
for (var i = 0; i < response.responseJSON.error.length; i ++) {
|
||||
alert.innerHTML = alert.innerHTML + `
|
||||
<div class="alert alert-danger alert-dismissible fade show" role="alert">
|
||||
<i class="bi bi-exclamation-triangle-fill" title="Danger"></i>
|
||||
${response.responseJSON.error[i]}
|
||||
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
|
||||
</div>
|
||||
`;
|
||||
}
|
||||
}
|
||||
error_response(response);
|
||||
}
|
||||
});
|
||||
|
||||
@ -392,6 +357,7 @@ function render_question() {
|
||||
}
|
||||
$question_options.html(options_output);
|
||||
$question_title.focus();
|
||||
$(window).scrollTop(0);
|
||||
}
|
||||
|
||||
function check_answered() {
|
||||
|
@ -4,7 +4,7 @@ $(document).ready(function() {
|
||||
});
|
||||
|
||||
$('.test-code-input').keyup(function() {
|
||||
var input = $(this).val().split("-").join("").split("—").join(""); // remove hyphens and mdashes
|
||||
var input = $(this).val().split("-").join("").split("—").join("");
|
||||
if (input.length > 0) {
|
||||
input = input.match(new RegExp('.{1,4}', 'g')).join("—");
|
||||
}
|
||||
@ -15,11 +15,8 @@ $(document).ready(function() {
|
||||
$('form[name=form-quiz-start]').submit(function(event) {
|
||||
|
||||
var $form = $(this);
|
||||
var alert = document.getElementById('alert-box');
|
||||
var data = $form.serialize();
|
||||
|
||||
alert.innerHTML = ''
|
||||
|
||||
$.ajax({
|
||||
url: window.location.pathname,
|
||||
type: 'POST',
|
||||
@ -31,31 +28,39 @@ $('form[name=form-quiz-start]').submit(function(event) {
|
||||
window.location.href = `/test/`;
|
||||
},
|
||||
error: function(response) {
|
||||
if (typeof response.responseJSON.error === 'string' || response.responseJSON.error instanceof String) {
|
||||
alert.innerHTML = alert.innerHTML + `
|
||||
<div class="alert alert-danger alert-dismissible fade show" role="alert">
|
||||
<i class="bi bi-exclamation-triangle-fill" title="Danger"></i>
|
||||
${response.responseJSON.error}
|
||||
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
|
||||
</div>
|
||||
`;
|
||||
} else if (response.responseJSON.error instanceof Array) {
|
||||
for (var i = 0; i < response.responseJSON.error.length; i ++) {
|
||||
alert.innerHTML = alert.innerHTML + `
|
||||
<div class="alert alert-danger alert-dismissible fade show" role="alert">
|
||||
<i class="bi bi-exclamation-triangle-fill" title="Danger"></i>
|
||||
${response.responseJSON.error[i]}
|
||||
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
|
||||
</div>
|
||||
`;
|
||||
}
|
||||
}
|
||||
error_response(response);
|
||||
}
|
||||
});
|
||||
|
||||
event.preventDefault();
|
||||
});
|
||||
|
||||
function error_response(response) {
|
||||
|
||||
var alert = $("#alert-box");
|
||||
alert.html('');
|
||||
|
||||
if (typeof response.responseJSON.error === 'string' || response.responseJSON.error instanceof String) {
|
||||
alert.html(`
|
||||
<div class="alert alert-danger alert-dismissible fade show" role="alert">
|
||||
<i class="bi bi-exclamation-triangle-fill" title="Danger"></i>
|
||||
${response.responseJSON.error}
|
||||
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
|
||||
</div>
|
||||
`);
|
||||
} else if (response.responseJSON.error instanceof Array) {
|
||||
for (var i = 0; i < response.responseJSON.error.length; i ++) {
|
||||
alert.html(`
|
||||
<div class="alert alert-danger alert-dismissible fade show" role="alert">
|
||||
<i class="bi bi-exclamation-triangle-fill" title="Danger"></i>
|
||||
${response.responseJSON.error[i]}
|
||||
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
|
||||
</div>
|
||||
`);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Dismiss Cookie Alert
|
||||
$('#dismiss-cookie-alert').click(function(event){
|
||||
|
||||
|
@ -59,10 +59,10 @@ def start():
|
||||
test = db.tests.find_one({'test_code': test_code})
|
||||
if not test:
|
||||
return jsonify({'error': 'The exam code you entered is invalid.'}), 400
|
||||
if test['expiry_date'] < datetime.utcnow():
|
||||
return jsonify({'error': f'The exam code you entered expired on {test["expiry_date"].strftime("%d %b %Y")}.'}), 400
|
||||
if test['expiry_date'] + timedelta(days=1) < datetime.utcnow():
|
||||
return jsonify({'error': f'The exam code you entered expired on {test["expiry_date"].strftime("%d %b %Y")} UTC.'}), 400
|
||||
if test['start_date'] > datetime.utcnow():
|
||||
return jsonify({'error': f'The exam has not yet opened. Your exam code will be valid from {test["start_date"].strftime("%d %b %Y %H:%M")}.'}), 400
|
||||
return jsonify({'error': f'The exam has not yet opened. Your exam code will be valid from {test["start_date"].strftime("%d %b %Y %H:%M")} UTC.'}), 400
|
||||
entry = {
|
||||
'_id': uuid4().hex,
|
||||
'name': encrypt(name),
|
||||
|
Reference in New Issue
Block a user