$(document).ready(function(){ /* selectors for the 3 step tabs*/ $fixed_tab = $("#fixed-tab"); $random_tab = $("#random-tab"); $finish_tab = $("#finish-tab"); $question_type = $("#id_question_type"); $marks = $("#id_marks"); $total_marks = $("#total_marks"); /* ajax requsts on selectors change */ $question_type.change(function() { $.ajax({ url: "/exam/ajax/questionpaper/marks/", type: "POST", data: { question_type: $question_type.val() }, dataType: "html", success: function(output) { $marks.html(output); } }); }); $marks.change(function() { var fixed_question_list = []; var fixed_inputs = $("input[name=fixed]"); var random_question_list = []; var random_inputs = $("input[name=random]"); for(var i = 0; i < fixed_inputs.length; i++){ fixed_question_list.push($(fixed_inputs[i]).val()); } for(var i = 0; i < random_inputs.length; i++){ random_question_list.push($(random_inputs[i]).val()); } $.ajax({ url: "/exam/ajax/questionpaper/questions/", type: "POST", data: { question_type: $question_type.val(), marks: $marks.val(), fixed_list: fixed_question_list, random_list: random_question_list }, dataType: "html", success: function(output) { if($fixed_tab.hasClass("active")) { var questions = $(output).filter("#questions").html(); $("#fixed-available").html(questions); } else if($random_tab.hasClass("active")) { var questions = $(output).filter("#questions").html(); var numbers = $(output).filter("#num").html(); $("#random-available").html(questions); $("#number-wrapper").html(numbers); } } }); }); /* adding fixed questions */ $("#add-fixed").click(function(e) { var count = 0; var selected = []; var html = ""; var $element; var total_marks = parseFloat($total_marks.text()); var marks_per = parseFloat($marks.val()) $("#fixed-available input:checkbox").each(function(index, element) { if($(this).attr("checked")) { qid = $(this).attr("data-qid"); if(!$(this).hasClass("ignore")) { selected.push(qid); $element = $("
"); html += "
  • " + $(this).next().html() + "
  • "; count++; } } }); html = ""; selected = selected.join(","); var $input = $(""); $input.attr({ value: selected, name: "fixed" }); $remove = $("×"); $element.html(count + " question(s) added").append(html).append($input).append($remove); $("#fixed-added").prepend($element); total_marks = total_marks + count * marks_per; $total_marks.text(total_marks) e.preventDefault(); }); /* adding random questions */ $("#add-random").click(function(e) { $numbers = $("#numbers"); random_number = $numbers.val() if($numbers.val()) { $numbers.removeClass("red-alert"); var count = 0; var selected = []; var html = ""; var $element; var total_marks = parseFloat($total_marks.text()); var marks_per = parseFloat($marks.val()) $("#random-available input:checkbox").each(function(index, element) { if($(this).attr("checked")) { qid = $(this).attr("data-qid"); if(!$(this).hasClass("ignore")) { selected.push(qid); $element = $("
    "); html += "
  • " + $(this).next().html() + "
  • "; count++; } } }); html = ""; selected = selected.join(","); var $input_random = $(""); $input_random.attr({ value: selected, name: "random" }); var $input_number = $(""); $input_number.attr({ value: $numbers.val(), name: "number" }); $remove = $("
    ×"); $element.html(random_number + " question(s) will be selected from " + count + " question(s)").append(html).append($input_random).append($input_number).append($remove); $("#random-added").prepend($element); total_marks = total_marks + random_number * marks_per; $total_marks.text(total_marks) } else { $numbers.addClass("red-alert"); } e.preventDefault(); }); /* removing added questions */ $(".qcard .remove").live("click", function(e) { var marks_per = $(this).attr('data-marks'); var num_question = $(this).attr('data-num'); var sub_marks = marks_per*num_question; var total_marks = parseFloat($total_marks.text()); total_marks = total_marks - sub_marks; $total_marks.text(total_marks); $(this).parent().slideUp("normal", function(){ $(this).remove(); }); e.preventDefault(); }); /* showing/hiding selectors on tab click */ $(".tabs li").click(function() { if($(this).attr("id") == "finish-tab") { $("#selectors").hide(); } else { $question_type.val('select'); $marks.val('select') $("#selectors").show(); } }); /* check all questions on checked*/ $("#checkall").live("click", function(){ if($(this).attr("checked")) { if($("#fixed-tab").hasClass("active")) { $("#fixed-available input:checkbox").each(function(index, element) { $(this).attr('checked','checked'); }); } else { $("#random-available input:checkbox").each(function(index, element) { $(this).attr('checked','checked'); }); } } else { if($("#fixed-tab").hasClass("active")) { $("#fixed-available input:checkbox").each(function(index, element) { $(this).removeAttr('checked'); }); } else { $("#random-available input:checkbox").each(function(index, element) { $(this).removeAttr('checked'); }); } } }); /* show preview on preview click */ $("#preview").click(function(){ questions = getQuestions() if(questions.trim() == ""){ $('#modal_body').html("No questions selected"); } else { $('#modal_body').html(questions); } $("#myModal").modal('show'); }); /* tab change on next or previous button click */ $("#fixed-next").click(function(){ $("#random").click(); }); $("#random-next").click(function(){ $("#finished").click(); }); $("#random-prev").click(function(){ $("#fixed").click(); }); $("#finish-prev").click(function(){ $("#random").click(); }); /* Check at least one question is present before saving */ $('#save').click(function(){ questions = getQuestions(); if(questions.trim() == ""){ $("#modalSave").modal("show"); } else { document.forms["frm"].submit(); } }); /* Fetch selected questions */ function getQuestions(){ var fixed_div = $("#fixed-added").html(); var random_div = $("#random-added").html(); return fixed_div+random_div; } }); //document