$(document).ready(function() {
$('#administration_home_screen').show();
});
var question_count, questions, users;
function load_settings() {
settings = retrieve_settings();
$('#settings_question_count').val(settings.question_count);
}
load_settings();
$('#administration_settings_save_button').click(function() {
var new_settings = new Object();
new_settings.question_count = $('#settings_question_count').val();
if (new_settings.question_count < 0) {
alert('Please enter a question display count greater than 0');
return;
}
save_settings(new_settings);
alert('Settings have been saved');
});
function load_entry_list() {
users = retrieve_users();
if (!users || users.length == 0) {
$('#administration_home_entry_table').hide();
$('#administration_home_entry_none').show();
return;
} else {
$('#administration_home_entry_none').hide();
$('#administration_home_entry_table').show();
}
user_count = users.length;
$('#administration_entry_export').html(JSON.stringify(users));
$('.administration_home_entry_row').remove();
$.each(users, function(index, user) {
if (index > 4) {
return;
}
$('#administration_home_entry_list').append('
'+user.score+' | '+seconds_to_time(user.time)+' | '+user.screen_name+' | '+user.first_name+' | '+user.last_name+' | '+user.email_address+' | '+user.company+' |
');
});
}
load_entry_list();
$('#administration_entry_import_button').click(function() {
var import_type = $('input[name="administration_entry_import_type"]:checked').val();
switch (import_type) {
case 'merge_highest':
if (confirm("This operation will overwrite any duplicate entries with the highest score. Continue?")) {
var users = retrieve_users();
var imported_users = JSON.parse($('#administration_entry_import').val());
$.each(imported_users, function(index, user) {
users.push(user);
});
users.sort(user_compare);
var emails = new Array();
var position = 0;
for (i = 0; i < users.length; i++) {
if (typeof users[i] == 'undefined') {
continue;
}
if ($.inArray(users[i].email_address, emails) > -1) {
users.splice(i,1);
i--;
} else {
emails.push(users[i].email_address);
}
}
users.sort(user_compare);
save_users(users);
alert('Users have been merged');
$('#administration_entry_import').val('');
load_entry_list();
}
break;
case 'merge_lowest':
if (confirm("This operation will overwrite any duplicate entries with the lowest score. Continue?")) {
var users = retrieve_users();
var imported_users = JSON.parse($('#administration_entry_import').val());
$.each(imported_users, function(index, user) {
users.push(user);
});
users.sort(user_compare);
var emails = new Array();
var position = 0;
users.reverse();
for (i = 0; i < users.length; i++) {
if (typeof users[i] == 'undefined') {
continue;
}
if ($.inArray(users[i].email_address, emails) > -1) {
users.splice(i,1);
i--;
} else {
emails.push(users[i].email_address);
}
}
users.sort(user_compare);
save_users(users);
alert('Users have been merged');
$('#administration_entry_import').val('');
load_entry_list();
}
break;
case 'overwrite':
if (confirm("This will overwrite any existing entries. Continue?")) {
users = Array();
users = JSON.parse($('#administration_entry_import').val());
save_users(users);
alert('Users have been imported');
$('#administration_entry_import').val('');
load_entry_list();
}
break;
}
});
function load_question_list() {
questions = retrieve_questions();
if (!questions) {
return;
}
question_count = questions.length;
$('#question_list').html('');
$('#question_export').html(JSON.stringify(questions));
$.each(questions, function(index, value) {
$('#question_item_template').clone().attr('id', 'question_item_template_copied').addClass('question_item').appendTo('#question_list');
$('#question_item_template_copied').attr('data-id', index);
$('#question_item_template_copied').attr('data-question', index);
$('#question_item_template_copied .question_delete_button').attr('data-question', index);
// Set content
$('#question_item_template_copied .question_text').val(value.name);
if (value.include == "true") {
$('#question_item_template_copied .question_include').prop('checked', true);
} else {
$('#question_item_template_copied .question_include').prop('checked', false);
}
$.each(value.options, function(index2, value2) {
$('#question_item_template_copied .question_answer[data-answer="'+index2+'"] .question_answer_text').val(value2.text);
if (value2.isAnswer == "true") {
$('#question_item_template_copied .question_answer[data-answer="'+index2+'"] .question_answer_correct').attr("checked", true);
} else {
$('#question_item_template_copied .question_answer[data-answer="'+index2+'"] .question_answer_correct').attr("checked", false);
}
});
$('#question_item_template_copied').removeAttr('id');
if ((index + 1) % 5 == 0 && index < (question_count - 5)) {
$('#question_save_template').clone().removeAttr('id').addClass('question_save_container').appendTo('#question_list');
}
});
}
load_question_list();
$('.question_delete_button').click(function() {
if (confirm('Are you sure you want to delete this question?')) {
var index = $(this).attr('data-question');
$('.question_item[data-question="'+index+'"]').remove();
store_questions();
}
});
$('#question_add_button').click(function() {
question_count++;
index = question_count;
$('#question_item_template').clone().attr('id', 'question_item_template_copied').addClass('question_item').appendTo('#question_list');
$('#question_item_template_copied').attr('data-id', index);
$('#question_item_template_copied').attr('data-question', index);
$('#question_item_template_copied .question_delete_button').attr('data-question', index);
$('#question_item_template_copied').removeAttr('id');
});
function store_questions() {
var questions = Array();
$.each($('.question_item'), function(index, value) {
var i = $(this).attr('data-id');
var question = Object();
question.name = $('.question_item[data-question='+i+'] .question_text').val();
question.name = question.name.replace(/"/g, '\'');
if ($('.question_item[data-question="'+i+'"] .question_include').is(':checked')) {
question.include = 'true';
} else {
question.include = 'false';
}
question.options = Array();
for (i2 = 0; i2 < 4; i2++) {
var text = $('.question_item[data-question="'+i+'"] .question_answer[data-answer="'+i2+'"] .question_answer_text').val();
text = text.replace(/"/g, '\'');
if (text.length == 0) {
continue;
}
question.options[i2] = Object();
question.options[i2].text = text;
if ($('.question_item[data-question="'+i+'"] .question_answer[data-answer="'+i2+'"] .question_answer_correct').is(':checked')) {
question.options[i2].isAnswer = 'true';
} else {
question.options[i2].isAnswer = 'false';
}
};
questions.push(question);
});
save_questions(questions);
$('#question_export').html(JSON.stringify(questions));
}
$('.question_form_submit').click(function() {
store_questions();
alert('Questions have been saved');
});
$('#question_import_button').click(function() {
if (confirm("Importing will overwrite any existing questions. Continue?")) {
questions = Array();
questions = JSON.parse($('#question_import').val());
save_questions(questions);
alert('Questions have been imported');
$('#question_import').val('');
load_question_list();
}
});
$('#question_export_select_button').click(function() {
$('#question_export').select();
});
$('#administration_entry_export_select_button').click(function() {
$('#administration_entry_export').select();
});
$('#entry_reset_button').click(function() {
if (confirm("This will remove all existing entries. Continue?")) {
var users = Array();
save_users(users);
load_entry_list();
}
});
/*
$('#question_export_download_button').click(function() {
window.open('data:application/json,'+$('#question_export').val(),'_blank');
});
*/