diff --git a/main/exercise/overview.php b/main/exercise/overview.php
index 1b9f3a2690..bfd0b4cd0f 100755
--- a/main/exercise/overview.php
+++ b/main/exercise/overview.php
@@ -149,6 +149,24 @@ $exercise_url_button = Display::url(
['class' => 'btn btn-success btn-large']
);
+$btnCheck = '';
+$quizCheckButtonEnabled = api_get_configuration_value('quiz_check_button_enable');
+
+if ($quizCheckButtonEnabled) {
+ $btnCheck = Display::button(
+ 'quiz_check_request_button',
+ Display::returnFontAwesomeIcon('spinner', '', true, 'fa-spin hidden').' '.get_lang('TestYourBrowser'),
+ [
+ 'type' => 'button',
+ 'role' => 'button',
+ 'id' => 'quiz-check-request-button',
+ 'class' => 'btn btn-default',
+ 'data-loading-text' => get_lang('Loading'),
+ 'autocomplete' => 'off',
+ ]
+ ).PHP_EOL.'';
+}
+
//3. Checking visibility of the exercise (overwrites the exercise button)
$visible_return = $objExercise->is_visible(
$learnpath_id,
@@ -421,6 +439,14 @@ $isLimitReached = ExerciseLib::isQuestionsLimitPerDayReached(
);
if (!empty($exercise_url_button) && !$isLimitReached) {
+ if ($quizCheckButtonEnabled) {
+ $html .= Display::div(
+ $btnCheck,
+ ['class' => 'exercise_overview_options']
+ );
+ $html .= '
';
+ }
+
$html .= Display::div(
Display::div(
$exercise_url_button,
@@ -451,6 +477,75 @@ if ($certificateBlock) {
$html .= PHP_EOL.$certificateBlock;
}
+if ($quizCheckButtonEnabled) {
+ $quizCheckRequestUrl = api_get_path(WEB_AJAX_PATH).'exercise.ajax.php?'.api_get_cidreq().'&a=browser_test';
+ $params = http_build_query(
+ [
+ 'exe_id' => 1,
+ 'exerciseId' => $exercise_id,
+ 'learnpath_id' => $learnpath_id,
+ 'learnpath_item_id' => $learnpath_item_id,
+ 'learnpath_item_view_id' => $learnpathItemViewId,
+ 'reminder' => '0',
+ 'type' => 'simple',
+ 'question_id' => 23,
+ 'choice[23]' => 45,
+ ]
+ ).'&'.api_get_cidreq();
+
+ $html .= "";
+}
+
echo $html;
Display::display_footer();
diff --git a/main/inc/ajax/exercise.ajax.php b/main/inc/ajax/exercise.ajax.php
index 33205aa7dd..536296a70f 100755
--- a/main/inc/ajax/exercise.ajax.php
+++ b/main/inc/ajax/exercise.ajax.php
@@ -790,6 +790,18 @@ switch ($action) {
header('Content-Type: application/json');
echo json_encode($result);
+ break;
+ case 'browser_test':
+ $quizCheckButtonEnabled = api_get_configuration_value('quiz_check_button_enable');
+
+ if ($quizCheckButtonEnabled) {
+ if (isset($_POST['sleep'])) {
+ sleep(2);
+ }
+
+ echo 'ok';
+ }
+
break;
default:
echo '';
diff --git a/main/install/configuration.dist.php b/main/install/configuration.dist.php
index ff3a865cf6..9902b8373d 100755
--- a/main/install/configuration.dist.php
+++ b/main/install/configuration.dist.php
@@ -589,6 +589,8 @@ $_configuration['send_all_emails_to'] = [
//$_configuration['quiz_generate_certificate_ending'] = false;
// Allow the teacher to rate the open, oral expression and annotation question types with a decimal score.
//$_configuration['quiz_open_question_decimal_score'] = false;
+// Add answer-saving procedure check before starting the quiz
+//$_configuration['quiz_check_button_enable'] = false;
// Hide search form in session list
//$_configuration['hide_search_form_in_session_list'] = false;