var dtLMSQuizFrontend = { dtInit : function() { function start_timer() { var $quiztime = parseInt(jQuery('.dtlms-quiz-timer').attr('data-time')); var $quiztimer = jQuery('.dtlms-quiz-timer').find('.dtlms-timer'); var $this = jQuery('.dtlms-quiz-timer'); var $timercolors = {}; $fgcolor = lmsquizfrontendobject.quizTimerForegroundColor; $bgcolor = lmsquizfrontendobject.quizTimerBackgroundColor; $quiztimer.timer({ 'timer': $quiztime, 'width' : 160 , 'height' : 160 , 'fgColor' : $fgcolor, 'bgColor' : $bgcolor }); var prevval = ''; $quiztimer.on('change',function(){ var $countdown= $this.find('.dtlms-countdown'); var val = parseInt( $quiztimer.attr('data-timer')); if(val > 0){ val--; $quiztimer.attr('data-timer',val); var $text=''; if(val > 60){ $text = Math.floor(val/60) + ':' + ((parseInt(val%60) < 10)?'0'+parseInt(val%60):parseInt(val%60)) + ''; }else{ $text = '00:'+ ((val < 10)?'0'+val:val); } $countdown.html($text); } else{ $countdown.html(lmsquizfrontendobject.quizTimeout); jQuery('#dtlms-complete-quiz').trigger('click'); $quiztimer.off(); } }); } jQuery( 'body' ).delegate( "#dtlms-start-quiz", 'click', function(){ var this_item = jQuery(this), startquiz_nonce = this_item.attr('data-startquiz-nonce'), course_id = this_item.attr('data-courseid'), user_id = this_item.attr('data-userid'), lesson_id = this_item.attr('data-lessonid'), quiz_id = this_item.attr('data-quizid'), assignment_id = this_item.attr('data-assignmentid'), author_id = this_item.attr('data-authorid'), parent_curriculum_id = this_item.attr('data-parentcurriculumid'); jQuery.ajax({ type: "POST", url: lmsfrontendobject.ajaxurl, data: { action: 'dtlms_start_quiz', startquiz_nonce: startquiz_nonce, course_id: course_id, user_id: user_id, lesson_id: lesson_id, quiz_id: quiz_id, assignment_id: assignment_id, author_id: author_id, parent_curriculum_id: parent_curriculum_id, }, beforeSend: function(){ this_item.prepend( '' ); }, error: function (xhr, status, error) { jQuery('.dtlms-curriculum-content-holder').html('Something went wrong!'); }, success: function (response) { jQuery('.dtlms-curriculum-content-holder').html(response); jQuery(window).on('beforeunload', function(){ return lmsquizfrontendobject.onRefresh; }); jQuery(window).on('unload',function(){ jQuery('#dtlms-complete-quiz').trigger('click'); }); start_timer(); jQuery('#dtlms-course-curriculum-popup').addClass('dtlms-curriculum-quiz-lock'); jQuery('.dtlms-quiz-questions ul li img').on('click', function(e){ if(!jQuery(this).parents('ul').hasClass('disabled')) { jQuery(this).parents('.dtlms-quiz-questions').find('li').removeClass('selected'); jQuery(this).parents('.dtlms-quiz-questions').find('.multichoice-image').removeAttr('checked'); jQuery(this).parents('li').addClass('selected'); jQuery(this).next('input').prop('checked', true); } e.preventDefault(); }); dtLMSFrontendUtils.dtLMSEnableCourseCurriculumContentScroll(); dtLMSFrontendUtils.dtLMSEnableCourseCurriculumDetailsScroll(); dtLMSFrontendUtils.dtLMSEnableCourseCurriculumResponsiveScroll(); }, complete: function(){ this_item.find('span').remove(); } }); }); jQuery( 'body' ).delegate( "#dtlms-submit-question", 'click', function(){ var this_item = jQuery(this), course_id = this_item.attr('data-courseid'), user_id = this_item.attr('data-userid'), lesson_id = this_item.attr('data-lessonid'), quiz_id = this_item.attr('data-quizid'), assignment_id = this_item.attr('data-assignmentid'), author_id = this_item.attr('data-authorid'), current_question_num = jQuery('#dtlms-current-question-number').val(), current_question_id = jQuery('.dtlms-question:visible').find('#dtlms-current-question-id').val(), total_questions = jQuery('#dtlms-total-questions').val(); var form = jQuery('.formQuiz')[0]; var data = new FormData(form); data.append('action', 'dtlms_show_answers_with_explanation'); data.append('course_id', course_id); data.append('user_id', user_id); data.append('lesson_id', lesson_id); data.append('quiz_id', quiz_id); data.append('assignment_id', assignment_id); data.append('author_id', author_id); data.append('question_id', current_question_id); jQuery.ajax({ type: "POST", url: lmsfrontendobject.ajaxurl, data: data, processData: false, contentType: false, cache: false, beforeSend: function(){ dtLMSCommonUtils.dtLMSAjaxBeforeSend(undefined); }, error: function (xhr, status, error) { jQuery('.dtlms-curriculum-content-holder').html('Something went wrong!'); }, success: function (response) { if(jQuery.trim(response) == 'passed') { if(parseInt(current_question_num, 10) == parseInt(total_questions, 10)) { jQuery('#dtlms-complete-quiz').trigger('click'); return; } jQuery('.dtlms-question-'+current_question_num).slideUp(); next_question_num = parseInt(current_question_num, 10) + 1; jQuery('#dtlms-current-question-number').val(next_question_num); if(parseInt(next_question_num, 10) <= parseInt(total_questions, 10)) { jQuery('.dtlms-question-'+next_question_num).slideDown(); } if(parseInt(next_question_num, 10) >= parseInt(total_questions, 10)) { jQuery('#dtlms-submit-question').removeClass('hidden'); jQuery('#dtlms-next-question').addClass('hidden'); } jQuery('.dtlms-question-counter-container .dtlms-current-question').html(next_question_num); } else { jQuery('.dtlms-question-'+current_question_num).find('input,textarea').attr('readonly', 'readonly').next('label').css( 'pointer-events', 'none' ).prev('img').css( 'pointer-events', 'none' ); jQuery('.dtlms-question-'+current_question_num).find('input,textarea').prev('img').css( 'pointer-events', 'none' ); jQuery('#dtlms-answer-holder').html(response); if(parseInt(current_question_num, 10) >= parseInt(total_questions, 10)) { jQuery('#dtlms-submit-question').addClass('hidden'); jQuery('#dtlms-next-question').addClass('hidden'); jQuery('#dtlms-complete-quiz').removeClass('hidden'); } else { jQuery('#dtlms-submit-question').addClass('hidden'); jQuery('#dtlms-next-question').removeClass('hidden'); } } dtLMSFrontendUtils.dtLMSEnableCourseCurriculumContentScroll(); dtLMSFrontendUtils.dtLMSEnableCourseCurriculumDetailsScroll(); dtLMSFrontendUtils.dtLMSEnableCourseCurriculumResponsiveScroll(); }, complete: function() { dtLMSCommonUtils.dtLMSAjaxAfterSend(undefined); } }); }); jQuery( 'body' ).delegate( "#dtlms-next-question", 'click', function(){ var this_item = jQuery(this), course_id = this_item.attr('data-courseid'), quiz_id = this_item.attr('data-quizid'), user_id = this_item.attr('data-userid'), author_id = this_item.attr('data-authorid'), current_question_num = jQuery('#dtlms-current-question-number').val(), current_question_id = jQuery('#dtlms-current-question-id').val(), total_questions = jQuery('#dtlms-total-questions').val(), correctanswer_and_answerexplanation = jQuery('#dtlms-correctanswer-and-answerexplanation').val(); jQuery('.dtlms-question-'+current_question_num).slideUp(); next_question_num = parseInt(current_question_num, 10) + 1; jQuery('#dtlms-current-question-number').val(next_question_num); if(parseInt(next_question_num, 10) <= parseInt(total_questions, 10)) { jQuery('.dtlms-question-'+next_question_num).slideDown(); } if(correctanswer_and_answerexplanation == 'true') { jQuery('#dtlms-submit-question').removeClass('hidden'); jQuery('#dtlms-next-question').addClass('hidden'); } else if(parseInt(next_question_num, 10) >= parseInt(total_questions, 10)) { jQuery('#dtlms-next-question').addClass('hidden'); jQuery('#dtlms-complete-quiz').removeClass('hidden'); } jQuery(window).trigger('resize'); jQuery('#dtlms-answer-holder').html(''); setTimeout(function() { jQuery.scrollTo('.dtlms-questions-list', 800, { offset: { top: -250 }}); jQuery('.dtlms-question-counter-container .dtlms-current-question').html(next_question_num); }, 800); }); jQuery( 'body' ).delegate( "#dtlms-complete-quiz", 'click', function(){ jQuery( window ).off( "beforeunload" ); jQuery( window ).off( "unload" ); var this_item = jQuery(this), course_id = this_item.attr('data-courseid'), user_id = this_item.attr('data-userid'), lesson_id = this_item.attr('data-lessonid'), quiz_id = this_item.attr('data-quizid'), assignment_id = this_item.attr('data-assignmentid'), author_id = this_item.attr('data-authorid'), markasgraded = this_item.attr('data-markasgraded'), parent_curriculum_id = this_item.attr('data-parentcurriculumid'), timings = jQuery('.dtlms-quiz-timer .dtlms-timer').attr('data-timer'), next_curriculum_id = this_item.attr('data-nextcurriculumid'), enable_next_curriculum = this_item.attr('data-enablenextcurriculum'); var form = jQuery('.formQuiz')[0]; var data = new FormData(form); data.append('action', 'dtlms_ajax_validate_quiz'); data.append('course_id', course_id); data.append('user_id', user_id); data.append('lesson_id', lesson_id); data.append('quiz_id', quiz_id); data.append('assignment_id', assignment_id); data.append('author_id', author_id); data.append('parent_curriculum_id', parent_curriculum_id); data.append('next_curriculum_id', next_curriculum_id); data.append('timings', timings); jQuery.ajax({ type: "POST", url: lmsfrontendobject.ajaxurl, data: data, processData: false, contentType: false, cache: false, beforeSend: function(){ this_item.prepend( '' ); }, error: function (xhr, status, error) { jQuery('.dtlms-curriculum-content-holder').html('Something went wrong!'); }, success: function (response) { jQuery('.dtlms-curriculum-content-holder').html(response); if(markasgraded == 'true') { if(parent_curriculum_id > 0) { jQuery('ul.dtlms-curriculum-list li a[data-curriculumid="' + quiz_id + '"][ data-parentcurriculumid="' + parent_curriculum_id + '"]').append(''); } else { jQuery('ul.dtlms-curriculum-list li a[data-curriculumid="' + quiz_id + '"][ data-parentcurriculumid="-1"]').append(''); } } jQuery('#dtlms-course-curriculum-popup').removeClass('dtlms-curriculum-quiz-lock'); // Enable next curriculum item if(enable_next_curriculum == 'true') { if(next_curriculum_id > 0) { if(parent_curriculum_id > 0) { jQuery('ul.dtlms-curriculum-list li a[data-curriculumid="' + next_curriculum_id + '"][ data-parentcurriculumid="' + parent_curriculum_id + '"]').parents('li').removeClass('locked').addClass('unlocked'); } else { jQuery('ul.dtlms-curriculum-list li a[data-curriculumid="' + next_curriculum_id + '"][ data-parentcurriculumid="-1"]').parents('li').removeClass('locked').addClass('unlocked'); } } } dtLMSFrontendUtils.dtLMSProgressBar(false); jQuery(window).trigger('resize'); setTimeout(function() { jQuery.scrollTo('.dtlms-curriculum-content-holder', 800, { offset: { top: -250 }}); }, 800); }, complete: function(){ this_item.find('span').remove(); } }); }); jQuery('body').delegate('.dtlms-view-quiz-result', 'click', function(e){ var this_item = jQuery(this), quiz_id = this_item.attr('data-quizid'), grade_id = this_item.attr('data-gradeid'); jQuery.ajax({ type: "POST", url: lmsfrontendobject.ajaxurl, data: { action: 'dtlms_view_quiz_results', quiz_id: quiz_id, grade_id: grade_id, }, beforeSend: function(){ this_item.prepend( '' ); }, success: function (response) { jQuery('.dtlms-curriculum-content-holder').html(response); dtLMSFrontendUtils.dtLMSInitializeDonutChart(); dtLMSFrontendUtils.dtLMSProgressBar(false); dtLMSFrontendUtils.dtLMSEnableCourseCurriculumContentScroll(); dtLMSFrontendUtils.dtLMSEnableCourseCurriculumDetailsScroll(); dtLMSFrontendUtils.dtLMSEnableCourseCurriculumResponsiveScroll(); }, complete: function(){ this_item.find('span').remove(); } }); e.preventDefault(); }); } }; jQuery(document).ready(function() { "use strict"; dtLMSQuizFrontend.dtInit(); });