File "std-quizzes-helpers.min.js"
Path: /StudyIB/js/std-quizzes-helpersminjs
File size: 11.48 KB
MIME-type: text/plain
Charset: utf-8
function initDraggableEvents(t){bindDragEvents(t),bindDraggables(t),bindDropEvents(t)}function bindDragEvents(t){var a;$("."+(t?"slick-slide":"exercise")).each((function(){$(this).find('input[type="text"], td.drag, div.q-question').on("dragover",(function(t){return t.preventDefault(),$(this).focus(),!1})),$(this).find('input[type="text"]').on("dragleave",(function(t){return t.preventDefault(),$(this).blur(),!1}))}))}function bindDraggables(t){var a;$("."+(t?"slick-slide":"exercise")).each((function(){var a=$(this).find("span.draggable"),e=$(this).find('input[type="text"][data-draggable-id]');t&&$("*[draggable!=true]",".slick-track").unbind("dragstart"),a.off("dragstart").on("dragstart",(function(t){if(t.target.id||(t.target.id=(new Date).getTime()),t.originalEvent.dataTransfer.setData("elementId",t.target.id),$(t.target).closest("table.match-table").length){var a=$(this).attr("id");if($(t.target).closest("table.match-table").find('input[data-draggable-id="'+a+'"]').length)return t.preventDefault(),!1}})),a.off("dragend").on("dragend",(function(t){if($(t.target).closest("table.match-table").length)$(t.target).closest("td").removeClass("dragged");else{var a=$(this).attr("id"),e;$(this).closest(".exercise").find(".q-answer").find('input[data-draggable-id="'+a+'"]').length||$(this).removeClass("dragged-1 dragged-7")}})),e.off("dragstart").on("dragstart",(function(t){t.originalEvent.dataTransfer.setData("gapId",t.target.getAttribute("data-draggable-id"))}))}))}function bindDropEvents(t){var a;$("."+(t?"slick-slide":"exercise")).each((function(){var t=$(this).find('input[type="text"]'),a=$(this).find("td.drag"),e=$(this).find("div.q-question p");t.on("drop",(function(t){var a=t.originalEvent,e=null,i,s;$(this)[0].hasAttribute("data-draggable-id")&&(e=$(this).data("draggable-id"),$(t.target).closest("table.match-table").length?$(t.target).closest("table.match-table").find("span.draggable").each((function(){var t;$(this).attr("id")==e&&$.inArray("elementid",a.dataTransfer.types)>=0&&$(this).removeClass("dragged")})):$(t.target).closest(".exercise").find(".q-question").find("span.draggable").each((function(){var t;$(this).attr("id")==e&&$.inArray("elementid",a.dataTransfer.types)>=0&&$(this).removeClass("dragged-1 dragged-7")})));if(a.dataTransfer.getData("elementId").length>1){a.preventDefault();var r=a.dataTransfer.getData("elementId"),n,d=(n=$("#"+r).text()).length<2?"2ch":n.length+2+"ch";$(this).get(0).focus(),$(this).width(d),$(this).val(n);var l=$(this);if($(t.target).closest("table.match-table").length){$(this).attr("draggable",!0),$(this).attr("data-draggable-id",r).data("draggable-id",r);var c=$(t.target).closest("div.q-answer").width();l.width()>.7*c&&($(this).closest("td.drop").css("width",.7*c),l.css("width","100%")),$(t.target).closest("table.match-table").find('span.draggable[id="'+r+'"]').addClass("dragged")}else $(this).attr("draggable",!0),$(this).attr("data-draggable-id",r).data("draggable-id",r),$(t.target).closest(".exercise").find('span.draggable[id="'+r+'"]').addClass("dragged-1");bindDraggables(!1),fixGapDropDraggables($(t.target))}if(a.dataTransfer.getData("gapId").length>1){a.preventDefault();var g=a.dataTransfer.getData("gapId");if(e==g)return!1;var n,d=(n=$("#"+g).text()).length<2?"2ch":n.length+2+"ch";$(this).get(0).focus(),$(this).width(d),$(this).val(n);var h=$(this);if($(t.target).closest("table.match-table").length){$(this).attr("draggable",!0),$(this).attr("data-draggable-id",g).data("draggable-id",g);var c=$(t.target).closest("div.q-answer").width(),o;h.width()>.7*c&&($(this).closest("td.drop").css("width",.7*c),h.css("width","100%")),h[0].hasAttribute("data-draggable-id")&&$(t.target).closest("table.match-table").find("span#"+e).removeClass("dragged"),(o=$(t.target).closest("table.match-table").find('input[data-draggable-id="'+g+'"]').not(this)).val(""),o.css("width","auto"),o.removeAttr("draggable"),o.removeAttr("data-draggable-id")}else{var o;$(this).attr("draggable",!0),$(this).attr("data-draggable-id",g).data("draggable-id",g),h[0].hasAttribute("data-draggable-id")&&$(t.target).closest(".exercise").find("span#"+e).removeClass("dragged-1 dragged-7"),(o=$(t.target).closest(".q-answer").find('input[data-draggable-id="'+g+'"]').not(this)).val(""),o.css("width","100px"),o.removeAttr("draggable"),o.removeAttr("data-draggable-id")}bindDraggables(!1)}})),a.on("drop",(function(t){if($(t.target).closest("table.match-table").length){var a=t.originalEvent.dataTransfer.getData("gapId");""!=a&&($(t.target).closest("table.match-table").find("td.drop").each((function(){var t;if($(this).find('input[data-draggable-id="'+a+'"]').length){var e=$(this).find('input[data-draggable-id="'+a+'"]');e.val(""),e.css("width","auto"),e.removeAttr("draggable"),e.removeAttr("data-draggable-id")}})),$(t.target).closest("table.match-table").find('span.q-text-draggable[id="'+a+'"]').removeClass("dragged"))}})),e.on("drop",(function(t){var a=t.originalEvent.dataTransfer.getData("gapId");if(""!=a){var e=$(t.target).closest(".exercise").find(".q-answer");if(e.find('input[type="text"][data-draggable-id="'+a+'"]').length){var i=e.find('input[type="text"][data-draggable-id="'+a+'"]');i.val(""),i.css("width","auto"),i.removeAttr("draggable"),i.removeAttr("data-draggable-id")}$(t.target).closest(".exercise").find('span.q-text-draggable[id="'+a+'"]').removeClass("dragged-1 dragged-7")}}))}))}function fixGapDropDraggables(t){var a=t.closest("div.exercise").find(".q-question"),e=t.closest("div.exercise").find(".q-answer");a.find("span.draggable").each((function(){var t=$(this),a=!1;e.find('input[type="text"][data-draggable-id]').each((function(){$(this).data("draggable-id")==t.attr("id")&&(a=!0)})),a||t.removeClass("dragged-1 dragged-7")}))}function adjustMatchExerciseHeight(){var t=null;$(".tib-quiz").find("table.match-table").length&&$("table.match-table tr").each((function(){var a=$(this).height();(null==t||a>t)&&(t=a)})).height(t)}function preventMatchKeyInput(t){var a;$("."+(t?"slick-slide":"exercise")).each((function(){var t=$(this).find('input[type="text"]');t.on("keypress",(function(t){$(t.target).closest("table.match-table").length&&t.preventDefault()})),t.on("input",(function(t){if($(t.target).closest("table.match-table").length){$(this).val(""),$(this).css("width","auto");var a=$(this).data("draggable-id");$(t.target).closest("table.match-table").find('span.q-text-draggable[id="'+a+'"]').removeClass("dragged"),$(this).removeAttr("draggable"),$(this).removeAttr("data-draggable-id")}}))}))}function emptyTextAnswers(t){t.children('.exercise input[type="text"]').each((function(){$(this).val("")}))}function prepareAnswers(t){var a=0;t.children(".exercise").each((function(){$(this).find('input[type="radio"]').length>0&&$(this).find('input[type="radio"]').attr("name","e-"+a),a++})),t.children('.exercise .q-answer input[type="text"]').each((function(){var t,a=$(this).data("c").length;$(this).width(14*a)}))}function gradeColor(t,a){var e="A";return 100==a?t.addClass("A"):a>70?(e="B",t.addClass("B")):a>50?(e="C",t.addClass("C")):a>30?(e="D",t.addClass("D")):(e="E",t.addClass("E")),e}function getQuestionMark(t){var a=t.mark;return 1==t.markTotal&&(a=1==t.markCorrect?'<i class="fa fa-check fa-lg" style="color: rgb(0, 114, 60);"></i>':'<i class="fa fa-times fa-lg" style="color: rgb(167, 38, 38);"></i>'),a}function labelMultipleCorrectAnswers(t){t.find(".exercise").each((function(){if(0==$(this).find(".table-true-false").length){var t=$(this).find('input[type="checkbox"].c').length,a="";t>1?a="Select the "+t+" correct answers":1==t&&(a="Select one correct answer");var e=$(this).find(".q-question");a.length>0&&e.append('<span class="n-correct-answers pull-right"><em>'+a+"</em></span>")}}))}function limitedMultipleChoices(t){var a=t.closest(".q-answer"),e=0,i=0;a.closest(".exercise").find(".table-true-false").length?t.closest("tr").find("input:checked").length>1&&$.when(t.closest("tr").find('input[type="checkbox"]').prop("checked",!1)).then(t.prop("checked",!0)):(a.find("input").each((function(){$(this).hasClass("c")&&e++,$(this).is(":checked")&&i++})),i==e?a.find("input").each((function(){$(this).is(":checked")||$(this).attr("disabled",!0)})):a.find("input").attr("disabled",!1))}function checkExercise(t){var a=t.closest("div.exercise"),e=a.find(".q-answer"),i=0,s=0,r=0,n=!1,d="none",l;a.find("label").length>0?a.find("label").each((function(){$(this).hasClass("checkbox")&&!n?(n=!0,d="check"):$(this).hasClass("radio")&&(n=!1,d="radio"),$(this).find("input").hasClass("c")&&($(this).addClass("correct"),i+=1),$(this).find("input").is(":checked")&&$(this).find("input").hasClass("c")&&($(this).append(' <i class="fa fa-check fa-1x" style="color: rgb(0, 114, 60);"></i>'),s+=1),$(this).find("input").is(":checked")&&!$(this).find("input").hasClass("c")&&($(this).addClass("fail"),$(this).append(' <i class="fa fa-times fa-1x" style="color: rgb(167, 38, 38);"></i>'),r+=1)})):a.find('input[type="text"]').length>0&&(n=!0,d="gaps",i=a.find('input[type="text"]').length,a.find('input[type="text"]').each((function(){var t=$.trim($(this).data("c")),a=$.trim($(this).val());if(t.toLowerCase()==a.toLowerCase())$(this).addClass("correct"),$(this).val(t),s+=1;else{var e=' <span class="failed-answer">'+t+"</span> ";$(this).addClass("fail"),$(this).next(".review").append(e),r+=1}}))),e.find("input").each((function(){$(this).attr("disabled",!0)})),a.find(".q-question").find(".draggable").each((function(){$(this).removeAttr("draggable")}));var c=n?i:1,g=0;switch(d){case"radio":case"gaps":case"truefalse":case"check":g=s}var h=g+" out of "+c,o=0==g?0:Math.round(100*g/c),f={};return f.markCorrect=g,f.markTotal=c,f.mark=h,f.score=o,f}function checkTotalQuiz(t){var a=0,e=0,i=0,s="";$.when(t.find(".btn.check").trigger("click")).then($.each(t.find(".exercise"),(function(){var t=$(this).find(".score");a++,e+=parseInt(t.data("markcorrect")),i+=parseInt(t.data("marktotal"));var r=$(this).prop("outerHTML");s+='<div class="label label-default q-number">'+a+"</div>"+r})));var r=e+" out of "+i,n=e>0?Math.round(100*e/i):0;logQuizStats(t,e,i,n);var d={};return d.markCorrect=e,d.markTotal=i,d.mark=r,d.score=n,d.quizResults=s,d}function logQuizStats(t,a,e,i){if(t.hasClass("qbank")){var s=[];t.find(".q-question").each((function(){s.push({id:$(this).data("id"),score:$(this).parent(".exercise").find(".score").data("score"),tags:{topics:$(this).data("topics"),skills:$(this).data("skills"),levels:$(this).data("levels")}})}));var r=$("#try-it-new").serializeArray();$.each(t.find(".exercise").find("input[data-c]"),(function(){var t=$(this);t.val()&&t.attr("value",t.val())})),$.post("/pages/subjects/activity/user-stats-qbank.php",{s:t.data("s"),cq:t.prop("outerHTML"),d:s,sc:i,mc:a,mt:e,p:r,t:$("#ticket").val()})}else $.get("/pages/subjects/activity/user-stats-quiz.php",{d:t.data("stats"),n:e,sc:i,t:$("#ticket").val()})}function addLettersBeforeOptions(t,a=!1){var e=["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"],i;(a?t.contents().find(".exercise"):t.find(".exercise")).each((function(){$(this).find(".q-answer").each((function(){if(!$(this).find(".table-true-false").length){var t=$(this).find('input[type="radio"], input[type="checkbox"]'),a=checkIfPutLetters(t);$(t).each((function(t,i){a&&$(i).closest("label").attr("data-letter",e[t]).css("padding-left","45px")}))}}))}))}function checkIfPutLetters(t){var a=!1;return $(t).each((function(t,e){var i;if(null===$(e).closest("p, label").text().match(/^\s+[A-Z][).-]?\s*?$/g))return a=!0,!1})),a}function adjustImageSizes(t){t.find(".exercise").each((function(){var t=$(this);t.find("img").each((function(){var a=$(this);t.width()<=a.width()+20&&a.css({width:"100%",height:"auto"})}))}))}