/*global $, Morris, gettext*/ $(function () { // Question view if (!$("#question-stats").length) { return; } $(".chart").css("height", "250px"); var data_type = $("#question_chart").attr("data-type"), data = JSON.parse($("#question-chart-data").html()), others_sum = 0, max_num = 8; for (var i in data) { data[i].value = data[i].count; data[i].label = data[i].answer; if (data[i].label.length > 20) { data[i].label = data[i].label.substring(0, 20) + '…'; } } if (data_type == 'N') { // Sort data.sort(function (a, b) { if (parseFloat(a.label) > parseFloat(b.label)) { return 1; } else if (parseFloat(a.label) < parseFloat(b.label)) { return -1; } else { return 0; } }); max_num = 20; } // Limit shown options if (data.length > max_num) { for (var i = max_num; i < data.length; i++) { others_sum += data[i].count; } data = data.slice(0, max_num); data.push({'value': others_sum, 'label': gettext('Others')}); } if (data_type === 'B') { var colors; if (data[0].answer_bool) { colors = ['#50A167', '#D36060']; } else { colors = ['#D36060', '#50A167']; } new Morris.Donut({ element: 'question_chart', data: data, resize: true, colors: colors }); } else if (data_type === 'C') { new Morris.Donut({ element: 'question_chart', data: data, resize: true, colors: [ '#7F4A91', '#50A167', '#FFB419', '#5F9CD4', '#D36060', '#83FFFA', '#FF6C38', '#1f5b8e', '#2d683c', ] }); } else { // M, N, S, T new Morris.Bar({ element: 'question_chart', data: data, resize: true, xkey: 'label', ykeys: ['count'], labels: [gettext('Count')] }); } // N, S, T }); $(function () { // Question editor if (!$("#answer-options").length) { return; } // Question editor $("#id_type").change(question_page_toggle_view); $("#id_required").change(question_page_toggle_view); question_page_toggle_view(); function question_page_toggle_view() { var show = $("#id_type").val() == "C" || $("#id_type").val() == "M"; $("#answer-options").toggle(show); $("#valid-date").toggle($("#id_type").val() == "D"); $("#valid-datetime").toggle($("#id_type").val() == "W"); $("#valid-number").toggle($("#id_type").val() == "N"); show = $("#id_type").val() == "B" && $("#id_required").prop("checked"); $(".alert-required-boolean").toggle(show); } var $val = $("#id_dependency_values"); var $dq = $("#id_dependency_question"); var oldval = JSON.parse($("#dependency_value_val").text()); function update_dependency_options() { $val.parent().find(".loading-indicator").remove(); $("#id_dependency_values option").remove(); $("#id_dependency_values").prop("required", false); var val = $dq.children("option:selected").val(); if (!val) { $("#id_dependency_values").show(); $val.show(); return; } $("#id_dependency_values").prop("required", true); $val.hide(); $val.parent().append("