File "flashcards-utils.min.js"

Path: /StudyIB/js/flashcards/flashcards-utilsminjs
File size: 13.11 KB
MIME-type: text/plain
Charset: utf-8

 
Open Back
function flipCard(viewer){viewer.on("click",".fc-viewer-inner",(function(e){e.preventDefault(),viewer.hasClass("flipped")?($("#fc-viewer, .fc-viewer-inner").removeClass("flipped"),$("#right-answer, #wrong-answer").removeClass("bg-gray"),$("#right-answer").addClass("btn-success"),$("#wrong-answer").addClass("bg-red"),$(".fc-actions").show()):($("#fc-viewer, .fc-viewer-inner").addClass("flipped"),$(".fc-viewer-controls-answers").find("button").removeClass("disabled"),$(".fc-actions").hide()),viewer.hasClass("flipped")&&(updateStats(cardsData[currentPosition].card_id,"flips"),isAbleToSetAnAnswer=!0)}))}function markCardAsFavorite(viewer){viewer.on("click",".mark-favorite",(function(e){e.preventDefault(),e.stopPropagation(),toggleFavorite(cardsData[currentPosition].card_id)}))}function markCardAsRight(viewer){viewer.on("click","#right-answer",(function(e){e.preventDefault(),isAbleToSetAnAnswer&&(updateStats(cardsData[currentPosition].card_id,"r-answers"),isAbleToSetAnAnswer=!1,$("#wrong-answer").removeClass("bg-red").addClass("bg-gray"),$(".fc-viewer-controls-answers").find("button").addClass("disabled"))}))}function markCardAsWrong(viewer){viewer.on("click","#wrong-answer",(function(e){e.preventDefault(),isAbleToSetAnAnswer&&(updateStats(cardsData[currentPosition].card_id,"w-answers"),isAbleToSetAnAnswer=!1,$("#right-answer").removeClass("btn-success").addClass("bg-gray"),$(".fc-viewer-controls-answers").find("button").addClass("disabled"))}))}function saveCardNotes(){$(".save-notes").on("click",(function(e){e.preventDefault();var saveBtn=$(this),notesText=saveBtn.closest(".modal").find("textarea.notes").val();if(!notesText.trim().length)return alert("Personal notes cannot be empty!"),!1;var url="/pages/subjects/flashcards/flashcards.php?action=save-notes",data={ticket:$("#ticket").val(),"subject-id":subjectId,"user-id":$("#user-id").val(),"user-role":$("#user-role").val(),"card-id":cardsData[currentPosition].card_id,notes:notesText},btnHtml=saveBtn.html();saveBtn.html('<i class="fa fa-spin fa-circle-o-notch"></i> Saving...'),saveBtn.addClass("disabled"),$.post(url,data,(function(response){"1"==response.success?(cardsData[currentPosition].notes=notesText,setTimeout(()=>{saveBtn.html(btnHtml),saveBtn.removeClass("disabled")},1e3)):alert(response.msg)}),"json")}))}function swipeNextPreviousCard(hammer){hammer.on("swipe",(function(e){var direction=e.offsetDirection;2===direction&&nextPreviousCard("next"),4===direction&&nextPreviousCard("prev")}))}function moveNextPreviousCard(viewer){viewer.on("click",".fc-viewer-controls-bottom button",(function(e){var action;e.preventDefault(),nextPreviousCard($(this).attr("rel"))}))}function shuffleCards(viewer){viewer.on("click",".fc-actions .shuffle",(function(e){e.preventDefault();var shuffleBtn=$(this),prev=shuffleBtn.html();shuffleBtn.html('<i class="fa fa-fw fa-spin fa-circle-o-notch loading"></i> Shuffling...'),$("#fc-viewer-main-front .fc-viewer-content").html('<i class="fa fa-fw fa-spin fa-circle-o-notch gray loading"></i>'),setTimeout(()=>{cardsData=cardsData.map(value=>({value:value,sort:Math.random()})).sort((a,b)=>a.sort-b.sort).map(({value:value})=>value);var card=cardsData[0];$.when(loadCard(0)).then(setBoxfit(card),saveStats(card.card_id),shuffleBtn.html(prev))},800)}))}function reportCardIssue(viewer){viewer.on("click","#issue-report",(function(e){e.preventDefault(),e.stopPropagation();var footer=viewer.find(".modal-footer");$("#fc-viewer").find(".modal-footer").is(":visible")?footer.slideUp("fast"):footer.slideDown("fast")}))}function closeReportCardIssue(viewer){viewer.on("click","#close-send-report",(function(e){e.preventDefault(),$.when($(".modal-footer").slideUp("fast")).then(clearReportError())}))}function sendCardReport(){$("button.send-report").on("click",(function(e){e.preventDefault();var cardId=$("#issue-report").attr("rel"),reportContainer=$(this).closest(".report-problem"),issue=reportContainer.find("textarea").val(),place="Desktop";if("undefined"!=typeof isMobileDevice&&isMobileDevice()&&(place="Mobile"),$.inArray(cardId,cardsReported)>=0)alert("An error has been already reported for this flashcard");else{var url="/pages/subjects/flashcards/flashcards.php?action=send-report",data={ticket:$("#ticket").val(),"issue-description":issue,"subject-id":subjectId,"card-id":cardId,place:place};$.post(url,data,(function(response){"1"==response.success&&(reportContainer.find(".msg").html(response["alert-html"]),reportContainer.find("textarea").val(""),cardsReported.push(cardId),setTimeout((function(){clearReportError()}),1e3))}),"json")}}))}function resetCardData(viewer){viewer.on("click",".reset-stats",(function(e){e.preventDefault(),confirm("Do you want to REMOVE ALL the stats of this flashcard?")&&resetStats(cardsData[currentPosition].card_id)}))}function setViewerSize(viewer){if("undefined"!=typeof isMobileDevice&&isMobileDevice())return!1;var modalW=fcMinW+fcControlsW+2;viewer.find(".modal-dialog").css({width:modalW+"px",margin:"0 auto"})}function clearCardModal(viewer){viewer.on("hidden.bs.modal",(function(e){e.preventDefault(),$(this).removeClass("flipped"),$(this).find("div.flipped").removeClass("flipped"),$("fc-viewer-id").text(""),$(".fc-viewer-controls-bottom").find('button[rel="prev"]').removeClass("disabled"),$(".fc-viewer-controls-bottom").find('button[rel="next"]').removeClass("disabled"),$("#issue-report").removeAttr("rel"),$("#fc-viewer-info").html(""),$("#fc-viewer-main-front .fc-viewer-content").html(""),$("#fc-viewer-main-back .fc-viewer-content").html(""),$("#fc-viewer-tflipped").text(""),$("#fc-viewer-right").text(""),$("#fc-viewer-wrong").text(""),toggleFavoriteBtn("0"),$(".fc-viewer-results-counter").text(""),$(".card-notes").val("")}))}function nextPreviousCard(action){if($("#fc-viewer").hasClass("flipped")&&($(".fc-actions").show(),$("#fc-viewer, .fc-viewer-inner").removeClass("flipped").addClass("no-animation")),clearReportError(),"next"==action&&currentPosition<nFlashcards-1){currentPosition++;var card=cardsData[currentPosition];$.when(loadCard(currentPosition)).then(setBoxfit(card),saveStats(cardsData[currentPosition].card_id))}else if("prev"==action&&currentPosition>0){currentPosition--;var card=cardsData[currentPosition];$.when(loadCard(currentPosition)).then(setBoxfit(card),saveStats(cardsData[currentPosition].card_id))}$("#fc-viewer, .fc-viewer-inner").removeClass("no-animation"),$("#right-answer, #wrong-answer").removeClass("bg-gray"),$("#right-answer").addClass("btn-success"),$("#wrong-answer").addClass("bg-red")}function toggleFavoriteBtn(markedAsFavorite){var favoriteBtn=$(".mark-favorite i");"1"==markedAsFavorite?(favoriteBtn.addClass("fa-star").removeClass("fa-star-o"),favoriteBtn.addClass("colored"),favoriteBtn.closest(".fc-viewer-inner").addClass("colored"),favoriteBtn.parent("button").attr("title","Unmark as favorite")):(favoriteBtn.addClass("fa-star-o").removeClass("fa-star"),favoriteBtn.removeClass("colored"),favoriteBtn.closest(".fc-viewer-inner").removeClass("colored"),favoriteBtn.parent("button").attr("title","Mark as favorite"))}function loadCard(index){if("undefined"==typeof cardsData)return"No cards to load with these search terms";clearReportError();var card=cardsData[index],cardId=card.card_id;currentPosition=index,$(".fc-viewer-id").text("#"+cardId),$(".fc-viewer-controls-bottom").find('button[rel="prev"]').toggleClass("disabled",0==index),$(".fc-viewer-controls-bottom").find('button[rel="next"]').toggleClass("disabled",cardsData.length-1==index);var levels=[],topics=[];$.each(isEditor?card.level_name:card.levels,(function(k,v){levels.push(v)})),$.each(isEditor?card.topic_name:card.topics,(function(k,v){topics.push(v)})),$("#fc-viewer-info").html(["Topics: <strong>"+topics.join(", ")+"</strong>","<br>","Levels: <strong>"+levels.join(", ")+"</strong>"].join("")),$("#issue-report").attr("rel",cardId);var loading='<i class="fa fa-fw fa-spin fa-circle-o-notch gray loading"></i>';$("#fc-viewer-main-front .fc-viewer-content").html(loading).attr("data-card-id",cardId).data("card-id",cardId),$("#fc-viewer-main-back .fc-viewer-content").html(loading);var nFlips=0,nRight=0,nWrong=0,notes="";isEditor||(nFlips=card.n_flips,nRight=card.n_right,nWrong=card.n_wrong,notes=card.notes,toggleFavoriteBtn(card.favorite)),$("#fc-viewer-tflipped").text(nFlips),$("#fc-viewer-right").text(nRight),$("#fc-viewer-wrong").text(nWrong),$(".card-notes").val(notes);var cIndex=++index;return $(".fc-viewer-results-counter").text(cIndex+"/"+nFlashcards),$(".fc-progress").find(".progress-bar").css("width",cIndex/nFlashcards*100+"%"),$("#fc-viewer").modal("show"),$("#fc-viewer").on("shown.bs.modal",(function(){setBoxfit(card)})),$("#fc-viewer").removeClass("flipped"),!1}function setBoxfit(card){var cWidth=$("#flashcard-body").find(".fc-viewer-inner").width(),cHeight=$("#flashcard-body").find(".fc-viewer-inner").height(),maxFontSize="simple"==card.card_mode?40:30;"undefined"!=typeof isMobileDevice&&isMobileDevice()&&(maxFontSize=18),$("#fc-viewer-main-front .fc-viewer-content").html(card.content_front),$("#fc-viewer-main-back .fc-viewer-content").html(card.content_back),$(".fc-viewer-content").boxfit({multiline:!0,width:parseInt(cWidth)-35,height:parseInt(cHeight)-65,maximum_font_size:maxFontSize}),$(".fc-viewer-content").find("p").filter((function(){return""==this.innerHTML.replace("&nbsp;"," ").trim()})).remove(),$(".fc-viewer-content").each((function(){var viewerContent=$(this),boxFont=viewerContent.find(".boxfitted").css("font-size"),hasTable=!1,hasImage=!1,hasList=!1;viewerContent.find("table").length&&(viewerContent.find("table").each((function(){$(this).css("font-size","undefined"!=typeof isMobileDevice&&isMobileDevice()?"12px":"15px"),$(this).css({"margin-left":"auto","margin-right":"auto"}),$(this).find("tbody > tr").css("text-align","left")})),hasTable=!0),viewerContent.find("ul").length&&(viewerContent.find("ul, ol").each((function(){$(this).css({"text-align":"left",display:"inline-block"})})),hasList=!0),viewerContent.find("img").length&&(viewerContent.find("img").each((function(){var img=$(this),inner=img.closest(".fc-viewer-inner");img.css({maxWidth:inner.outerWidth()-60,maxHeight:inner.outerHeight()-60,float:"none",margin:"undefined"!=typeof isMobileDevice&&isMobileDevice()?"15px 0":"0"})})),hasImage=!0),(hasImage||hasTable||hasList)&&(boxFont="undefined"!=typeof isMobileDevice&&isMobileDevice()?"15px":"20px"),viewerContent.find("p, span, strong").each((function(){$(this).css("font-size",boxFont)})),"undefined"!=typeof isMobileDevice&&isMobileDevice()&&($(".fc-viewer-main").height(340),viewerContent.height()+60>$(".fc-viewer-main").height()&&$(".fc-viewer-main").height(viewerContent.height()+30))})),MathJax.Hub.Queue(["Typeset",MathJax.Hub])}function clearReportError(){$(".alert.alert-dismissible").hide("fast"),$(".issue-description").val(""),$(".send-report").addClass("disabled")}function updateCardStatusDom(field){var domElementName="",arrayElementName="";"flips"==field?(domElementName="#fc-viewer-tflipped",arrayElementName="n_flips"):"r-answers"==field?(domElementName="#fc-viewer-right",arrayElementName="n_right"):"w-answers"==field&&(domElementName="#fc-viewer-wrong",arrayElementName="n_wrong");var number=parseInt($(domElementName).text());$(domElementName).text(number+1),cardsData[currentPosition][arrayElementName]++}function updateStats(cardId,field){var data={ticket:$("#ticket").val(),"subject-id":subjectId,"user-id":$("#user-id").val(),"user-role":$("#user-role").val(),"card-id":cardId,field:field},url="/pages/subjects/flashcards/flashcards.php?action=update-stats";if(isEditor)return updateCardStatusDom(field),!1;$.post(url,data,(function(response){"1"==response.success?updateCardStatusDom(field):alert(response.msg)}),"json")}function resetStats(cardId){var data={ticket:$("#ticket").val(),"subject-id":subjectId,"user-id":$("#user-id").val(),"user-role":$("#user-role").val(),"card-id":cardId},url="/pages/subjects/flashcards/flashcards.php?action=reset-stats";$.post(url,data,(function(response){if("1"==response.success){cardsData[currentPosition].n_flips=0,cardsData[currentPosition].n_right=0,cardsData[currentPosition].n_wrong=0,$("#fc-viewer-tflipped").text("0"),$("#fc-viewer-right").text("0"),$("#fc-viewer-wrong").text("0");var favoriteBtn=$(".mark-favorite i");favoriteBtn.addClass("fa-star-o").removeClass("fa-star"),favoriteBtn.removeClass("colored"),favoriteBtn.closest(".fc-viewer-inner").removeClass("colored"),favoriteBtn.parent("button").attr("title","Mark as favorite"),cardsData[currentPosition].favorite=0,isAbleToSetAnAnswer=!0}else alert(response.msg)}),"json")}function saveStats(cardId){var data={ticket:$("#ticket").val(),"subject-id":subjectId,"user-id":$("#user-id").val(),"user-role":$("#user-role").val(),notes:$(".card-notes").val(),"card-id":cardId},url="/pages/subjects/flashcards/flashcards.php?action=save-stats";$.post(url,data,(function(response){"0"==response.success&&alert(response.msg)}),"json")}function toggleFavorite(cardId){var data={ticket:$("#ticket").val(),"subject-id":subjectId,"user-id":$("#user-id").val(),"user-role":$("#user-role").val(),"set-value":$(".mark-favorite i").hasClass("colored"),"card-id":cardId},url="/pages/subjects/flashcards/flashcards.php?action=toggle-favorite";$.post(url,data,(function(response){"1"==response.success?(toggleFavoriteBtn(response.favorite),cardsData[currentPosition].favorite=response.favorite):alert(response.msg)}),"json")}