diff --git a/css/qsm-admin.css b/css/qsm-admin.css index 15cb2ed67..8e91a87be 100644 --- a/css/qsm-admin.css +++ b/css/qsm-admin.css @@ -3358,8 +3358,7 @@ body .qsm_tab_content .qsm-small-input-field input[type="text"] { padding-top: 4px; } fieldset#enable_quick_correct_answer_info { - margin-left: 25px; - margin-top: 4px; + margin-top: 8px; } .qsm-mb-1, .qsm_tab_content fieldset{ margin-bottom: .25rem; diff --git a/js/qsm-admin.js b/js/qsm-admin.js index 0ab7aade3..e369f2ad7 100644 --- a/js/qsm-admin.js +++ b/js/qsm-admin.js @@ -160,17 +160,6 @@ var QSMAdmin; jQuery('.category_selection_random').parents("tr").hide(); } }); - show_hide_show_correct_answer(); - $(document).on('change', '#enable_quick_result_mc-1', function (event) { - show_hide_show_correct_answer(); - }); - function show_hide_show_correct_answer() { - if (jQuery('#enable_quick_result_mc-1:checked').length > 0) { - jQuery('#enable_quick_correct_answer_info').css('opacity', '1'); - } else { - jQuery('#enable_quick_correct_answer_info').css('opacity', '0.5'); - } - } jQuery(document).on('change', '#preferred-date-format-custom', function() { let customValue = jQuery(this).val(); jQuery('#preferred_date_format label.qsm-option-label:last input[type="radio"]').val(customValue); diff --git a/js/qsm-quiz.js b/js/qsm-quiz.js index 1ce36906f..931c01998 100644 --- a/js/qsm-quiz.js +++ b/js/qsm-quiz.js @@ -1486,6 +1486,12 @@ jQuery(function () { let question_id = $i_this.attr('name').split('question')[1]; if (qmn_quiz_data[quizID].enable_quick_result_mc == 1) { qsm_show_inline_result(quizID, question_id, value, $this, 'radio', $i_this) + } else if (qmn_quiz_data[quizID].enable_quick_correct_answer_info != 0) { + let data = qsm_question_quick_result_js(question_id, value, 'radio', qmn_quiz_data[quizID].enable_quick_correct_answer_info,quizID); + $this.find('.quick-question-res-p, .qsm-inline-correct-info').remove(); + if ( 0 < value.length && data.success != '') { + $this.append('
' + qsm_check_shortcode(data.message) + '
'); + } } jQuery(document).trigger('qsm_after_select_answer', [quizID, question_id, value, $this, 'radio']); if (qmn_quiz_data[quizID].end_quiz_if_wrong > 0 && !jQuery(this).parents('.qsm-quiz-container').find('.mlw_next:visible').length ) { @@ -1507,10 +1513,24 @@ jQuery(function () { } else { value = $i_this.val(); } + let sendValue; + if (typeof value === 'string') { + sendValue = value.trim(); + } else if (value.length) { + sendValue = value[value.length - 1]; + } else { + sendValue = ''; + } clearTimeout(qsm_inline_result_timer); qsm_inline_result_timer = setTimeout(() => { if (qmn_quiz_data[quizID].enable_quick_result_mc == 1) { - qsm_show_inline_result(quizID, question_id, value, $this, 'input', $i_this, $this.find('.qmn_fill_blank').index($i_this)); + qsm_show_inline_result(quizID, question_id, sendValue, $this, 'input', $i_this, $this.find('.qmn_fill_blank').index($i_this)); + } else if (qmn_quiz_data[quizID].enable_quick_correct_answer_info != 0) { + let data = qsm_question_quick_result_js(question_id, sendValue, 'input', qmn_quiz_data[quizID].enable_quick_correct_answer_info,quizID); + $this.find('.quick-question-res-p, .qsm-inline-correct-info').remove(); + if ( 0 < value.length && data.success != '') { + $this.append('
' + qsm_check_shortcode(data.message) + '
'); + } } jQuery(document).trigger('qsm_after_select_answer', [quizID, question_id, value, $this, 'input', $this.find('.qmn_fill_blank').index($i_this)]); }, 2000); @@ -1541,6 +1561,12 @@ jQuery(function () { } if (qmn_quiz_data[quizID].enable_quick_result_mc == 1) { qsm_show_inline_result(quizID, question_id, checkedValues, $this, 'checkbox', $i_this) + } else if (qmn_quiz_data[quizID].enable_quick_correct_answer_info != 0) { + let data = qsm_question_quick_result_js(question_id, checkedValues, 'checkbox', qmn_quiz_data[quizID].enable_quick_correct_answer_info,quizID); + $this.find('.quick-question-res-p, .qsm-inline-correct-info').remove(); + if ( 0 < checkedValues.length && data.success != '') { + $this.append('
' + qsm_check_shortcode(data.message) + '
'); + } } jQuery(document).trigger('qsm_after_select_answer', [quizID, question_id, checkedValues, $this, 'checkbox']); }); diff --git a/php/classes/class-qmn-quiz-manager.php b/php/classes/class-qmn-quiz-manager.php index 2249f83cf..0ea0ca276 100644 --- a/php/classes/class-qmn-quiz-manager.php +++ b/php/classes/class-qmn-quiz-manager.php @@ -658,7 +658,7 @@ public function display_shortcode( $atts ) { $encryption[ $question['question_id'] ]['correct_info_text'] = isset( $question['question_answer_info'] ) ? html_entity_decode( $question['question_answer_info'] ) : ''; $encryption[ $question['question_id'] ]['correct_info_text'] = $mlwQuizMasterNext->pluginHelper->qsm_language_support( $encryption[ $question['question_id'] ]['correct_info_text'], "correctanswerinfo-{$question['question_id']}" ); } - if ( ( isset($qmn_json_data['end_quiz_if_wrong']) && 0 < $qmn_json_data['end_quiz_if_wrong'] ) || ( ! empty( $qmn_json_data['enable_quick_result_mc'] ) && 1 == $qmn_json_data['enable_quick_result_mc'] ) || ( ! empty( $qmn_json_data['ajax_show_correct'] ) && 1 == $qmn_json_data['ajax_show_correct'] ) ) { + if ( ( isset($qmn_json_data['end_quiz_if_wrong']) && 0 < $qmn_json_data['end_quiz_if_wrong'] ) || ( ! empty( $qmn_json_data['enable_quick_result_mc'] ) && 1 == $qmn_json_data['enable_quick_result_mc'] ) || ( ! empty( $qmn_json_data['enable_quick_correct_answer_info'] ) && 0 != $qmn_json_data['enable_quick_correct_answer_info'] ) || ( ! empty( $qmn_json_data['ajax_show_correct'] ) && 1 == $qmn_json_data['ajax_show_correct'] ) ) { $quiz_id = $qmn_json_data['quiz_id']; $qsm_inline_encrypt_js = ' if (encryptionKey === undefined) { diff --git a/php/classes/class-qsm-install.php b/php/classes/class-qsm-install.php index dcfae08fe..fb34c2143 100644 --- a/php/classes/class-qsm-install.php +++ b/php/classes/class-qsm-install.php @@ -494,7 +494,7 @@ public function register_default_settings() { ), 'enable_quick_correct_answer_info' => array( 'type' => 'radio', - 'prefix_text' => __( "Display the correct answer information in real-time", 'quiz-master-next' ), + 'prefix_text' => '' . __( "Display the correct answer information in real-time", 'quiz-master-next' ) . '', 'options' => array( array( 'label' => __( "Display only if the answer is correct", 'quiz-master-next' ),