// Generated by CoffeeScript 1.10.0 (function() { var filterQuestions, getItemTypeFilters, getSrsTypeFilters, linearCount, linearMode, refreshQuestion, selection, toggleQuizMode, updateQuizItemStats; linearMode = false; linearCount = 0; selection = null; refreshQuestion = function() { var input_element, items; if (sessionStorage.getItem('user_items')) { items = JSON.parse(sessionStorage.getItem('user_items')); if (linearMode) { selection = items[linearCount]; linearCount++; if (linearCount >= items.length) { linearCount = 0; } } else { selection = items[Math.floor(Math.random() * items.length)]; } $("#help-area").text(''); $("#kana").removeClass("correct").val(''); $("#question-area").text(''); $("#question-image").attr("src", ''); $('#answer').addClass('hidden'); $('#answer').text(selection['answer']); input_element = document.getElementById('kana'); $("#question-image").hide(); if (selection['item_type'] === 'radical') { $("#kana").attr("placeholder", "Meaning"); document.body.style.backgroundColor = "deepskyblue"; wanakana.unbind(input_element); if (selection['question'].indexOf('http') >= 0) { $("#question-image").attr("src", selection['question']); $("#question-image").show(); } else { $("#question-area").text(selection['question']); } return document.getElementById('view-on-wk').href = "https://www.wanikani.com/radicals/" + selection['answer']; } else { if (selection['item_type'] === 'kanji') { document.body.style.backgroundColor = "deeppink"; } else { document.body.style.backgroundColor = "darkviolet"; } $("#question-area").text(selection['question']); if (selection['answer_type'] === 'eng') { $("#kana").attr("placeholder", "Meaning"); wanakana.unbind(input_element); } else { $("#kana").attr("placeholder", "かな"); wanakana.bind(input_element); } return document.getElementById('view-on-wk').href = "https://www.wanikani.com/" + selection['item_type'] + "/" + selection['question']; } } }; updateQuizItemStats = function() { $('#radical-num').text(sessionStorage.getItem('radical_count')); $('#kanji-num').text(sessionStorage.getItem('kanji_count')); $('#vocab-num').text(sessionStorage.getItem('vocabulary_count')); return $('#total-num').text(parseInt(sessionStorage.getItem('radical_count')) + parseInt(sessionStorage.getItem('kanji_count')) + parseInt(sessionStorage.getItem('vocabulary_count'))); }; getSrsTypeFilters = function() { var s, srs_levels; srs_levels = ['burnedcheck', 'enlightencheck', 'mastercheck', 'gurucheck', 'apprenticecheck']; return ((function() { var i, len, results; results = []; for (i = 0, len = srs_levels.length; i < len; i++) { s = srs_levels[i]; if (document.getElementById(s).checked) { results.push(document.getElementById(s).value); } } return results; })()).toString(); }; getItemTypeFilters = function() { var item_types, s; item_types = ['radicalcheck', 'kanjicheck', 'vocabcheck']; return ((function() { var i, len, results; results = []; for (i = 0, len = item_types.length; i < len; i++) { s = item_types[i]; if (document.getElementById(s).checked) { results.push(document.getElementById(s).value); } } return results; })()).toString(); }; filterQuestions = function() { var target_url; sessionStorage.removeItem('user_items'); sessionStorage.removeItem('radical_count'); sessionStorage.removeItem('kanji_count'); sessionStorage.removeItem('vocabulary_count'); target_url = "/user_items?level_range=" + $('#filter-input').val() + "&item_state=" + getSrsTypeFilters() + "&item_types=" + getItemTypeFilters(); return $.ajax({ url: target_url, dataType: 'json', success: function(e) { if (e.hasOwnProperty('error')) { document.getElementById('filter-input').value = ''; $('#error-text').text(e['error']); return $('#error-area').show(); } else { sessionStorage.setItem('user_items', JSON.stringify(e['item_list'])); sessionStorage.setItem('radical_count', e['radical_count']); sessionStorage.setItem('kanji_count', e['kanji_count']); sessionStorage.setItem('vocabulary_count', e['vocabulary_count']); updateQuizItemStats(); return refreshQuestion(); } } }); }; $('#filter-form').submit(function(e) { e.preventDefault(); $('#error-area').hide(); filterQuestions(); $('#modal-filter').modal('hide'); return linearCount = 0; }); toggleQuizMode = function() { linearMode = !linearMode; if (linearMode) { $('#mode-toggle').text("Linear Mode"); } else { linearCount = 0; $('#mode-toggle').text("Random Mode"); } return refreshQuestion(); }; $(document).keypress(function(e) { if (e.which === 13) { return $("#submit-answer").click(); } else { if ($("#kana").hasClass("wrong")) { return $("#kana").removeClass("wrong"); } } }); $("#submit-answer").click(function(e) { var expected_answer, input_answer; e.preventDefault(); if ($("#kana").hasClass("correct")) { return refreshQuestion(); } else { input_answer = document.getElementById('kana').value; expected_answer = selection['answer'].split(/[,\.]/g).map(function(x) { return x.trim(); }); if (selection["item_type"] === "radical") { expected_answer = expected_answer.map(function(x) { return x.replace("-", " "); }); } if (expected_answer.indexOf(input_answer) !== -1) { return $("#kana").addClass("correct").removeClass("wrong"); } else { return $("#kana").addClass("wrong").removeClass("correct").val(''); } } }); $("#get-help").click(function(e) { e.preventDefault(); return $("#answer").removeClass('hidden'); }); $("#api-refresh").click(function(e) { e.preventDefault(); $("#api-refresh").find('span').addClass('glyphicon-spin'); return $.post("/refresh").success(function() { refreshQuestion(); $("#api-refresh").find('span').removeClass('glyphicon-spin'); return $('#success-area').show(); }).fail(function() { $('#error-area').show(); $('#error-text').text("Cannot refresh API. Try again later."); return $("#api-refresh").find('span').removeClass('glyphicon-spin'); }); }); $('#error-area').find('button').click(function() { return $('#error-area').hide(); }); $('#success-area').find('button').click(function() { return $('#success-area').hide(); }); $(function() { return $(document).ready(function() { $('[data-toggle="tooltip"]').tooltip(); document.getElementById('mode-toggle').onclick = toggleQuizMode; return filterQuestions(); }); }); }).call(this); //# sourceMappingURL=quiz_item.js.map