Show questions on list for teacher by AJAX - refs BT#11562

1.10.x
Angel Fernando Quiroz Campos 9 years ago
parent f84186622b
commit ed25ba75ad
  1. 46
      main/exercice/question_list_admin.inc.php
  2. 29
      main/inc/ajax/exercise.ajax.php
  3. 4
      main/inc/lib/exercise.lib.php

@ -103,7 +103,37 @@ $ajax_url = api_get_path(WEB_AJAX_PATH)."exercise.ajax.php?".api_get_cidreq()."&
heightStyle: "content",
active: false, // all items closed by default
collapsible: true,
header: ".header_operations"
header: ".header_operations",
beforeActivate: function (e, ui) {
var data = ui.newHeader.data();
if (typeof data === 'undefined') {
return;
}
var exerciseId = data.exercise || 0,
questionId = data.question || 0;
if (!questionId || !exerciseId) {
return;
}
var $pnlQuestion = $('#pnl-question-' + questionId);
if ($pnlQuestion.html().trim().length) {
return;
}
$pnlQuestion.html('<span class="fa fa-spinner fa-spin fa-3x fa-fw" aria-hidden="true"></span>');
$.get('<?php echo api_get_path(WEB_AJAX_PATH) ?>exercise.ajax.php', {
a: 'show_question',
exercise: exerciseId,
question: questionId
}, function (response) {
$pnlQuestion.html(response)
});
}
})
.sortable({
cursor: "move", // works?
@ -152,8 +182,6 @@ if (!$inATest) {
echo "</tr>";
echo "</table>";
echo "</div>";
echo "<div style='clear:both'>&nbsp;</div>";
echo '<div id="question_list">';
if ($nbrQuestions) {
//Always getting list from DB
@ -257,7 +285,7 @@ if (!$inATest) {
$questionScore = Display::tag('div', $objQuestionTmp->selectWeighting(), array('style'=>$styleScore));
echo '<div id="question_id_list_'.$id.'" >';
echo '<div class="header_operations">';
echo '<div class="header_operations" data-exercise="' . $objExercise->selectId() . '" data-question="' . $id . '">';
echo $questionName;
echo $questionType;
echo $questionCategory;
@ -265,11 +293,11 @@ if (!$inATest) {
echo $questionScore;
echo $actions;
echo '</div>';
echo '<div class="question-list-description-block">';
echo '<p class="lead">' . get_lang($question_class) . '</p>';
//echo get_lang('Level').': '.$objQuestionTmp->selectLevel();
ExerciseLib::showQuestion($id, false, null, null, false, true, false, true, $objExercise->feedback_type, true);
echo '</div>';
echo Display::tag(
'div',
null,
['class' => 'question-list-description-block', 'id' => "pnl-question-$id"]
);
echo '</div>';
unset($objQuestionTmp);
}

@ -503,6 +503,35 @@ switch ($action) {
}
echo 'ok';
break;
case 'show_question':
$questionId = isset($_GET['question']) ? intval($_GET['question']) : 0;
$exerciseId = isset($_REQUEST['exercise']) ? intval($_REQUEST['exercise']) : 0;
if (!$questionId || !$exerciseId) {
break;
}
$objExercise = new Exercise();
$objExercise->read($exerciseId);
$objQuestion = Question::read($questionId);
$objQuestion->get_question_type_name();
echo '<p class="lead">' . $objQuestion->get_question_type_name() . '</p>';
//echo get_lang('Level').': '.$objQuestionTmp->selectLevel();
ExerciseLib::showQuestion(
$questionId,
false,
null,
null,
false,
true,
false,
true,
$objExercise->feedback_type,
true
);
break;
default:
echo '';
}

@ -1138,7 +1138,7 @@ HTML;
$relPath = api_get_path(REL_PATH);
echo "
<script>
$(document).on('ready', function () {
// $(document).on('ready', function () {
new " . ($answerType == HOT_SPOT ? "HotspotQuestion" : "DelineationQuestion") . "({
questionId: $questionId,
exerciseId: $exerciseId,
@ -1146,7 +1146,7 @@ HTML;
for: 'preview',
relPath: '$relPath'
});
});
// });
</script>
<div id=\"hotspot-preview-$questionId\"></div>
";

Loading…
Cancel
Save