|
|
|
@ -227,7 +227,6 @@ $url = api_get_self().'?'.api_get_cidreq().'&'.http_build_query( |
|
|
|
|
|
|
|
|
|
if (isset($_REQUEST['action'])) { |
|
|
|
|
switch ($_REQUEST['action']) { |
|
|
|
|
// Delete selected courses |
|
|
|
|
case 'reuse': |
|
|
|
|
if (!empty($_REQUEST['questions']) && !empty($fromExercise)) { |
|
|
|
|
$questions = $_REQUEST['questions']; |
|
|
|
@ -253,6 +252,46 @@ if (isset($_REQUEST['action'])) { |
|
|
|
|
exit; |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case 'clone': |
|
|
|
|
if (!empty($_REQUEST['questions']) && !empty($fromExercise)) { |
|
|
|
|
$questions = $_REQUEST['questions']; |
|
|
|
|
$objExercise = new Exercise(); |
|
|
|
|
$objExercise->read($fromExercise, false); |
|
|
|
|
|
|
|
|
|
$origin_course_id = (int) $_GET['course_id']; |
|
|
|
|
$origin_course_info = api_get_course_info_by_id($origin_course_id); |
|
|
|
|
$current_course = api_get_course_info(); |
|
|
|
|
|
|
|
|
|
if (count($questions) > 0) { |
|
|
|
|
foreach ($questions as $questionId) { |
|
|
|
|
// gets an existing question and copies it into a new exercise |
|
|
|
|
// Reading the source question |
|
|
|
|
$old_question_obj = Question::read($questionId, $origin_course_info); |
|
|
|
|
$courseId = $current_course['real_id']; |
|
|
|
|
if ($old_question_obj) { |
|
|
|
|
$old_question_obj->updateTitle($old_question_obj->selectTitle().' - '.get_lang('Copy')); |
|
|
|
|
// Duplicating the source question, in the current course |
|
|
|
|
$new_id = $old_question_obj->duplicate($current_course); |
|
|
|
|
// Reading new question |
|
|
|
|
$new_question_obj = Question::read($new_id); |
|
|
|
|
$new_question_obj->addToList($fromExercise); |
|
|
|
|
//Reading Answers obj of the current course |
|
|
|
|
$new_answer_obj = new Answer($old_question_id, $origin_course_id); |
|
|
|
|
$new_answer_obj->read(); |
|
|
|
|
//Duplicating the Answers in the current course |
|
|
|
|
$new_answer_obj->duplicate($new_question_obj, $current_course); |
|
|
|
|
// destruction of the Question object |
|
|
|
|
unset($new_question_obj); |
|
|
|
|
unset($old_question_obj); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Display::addFlash(Display::return_message(get_lang('Added'))); |
|
|
|
|
header('Location: '.$url); |
|
|
|
|
exit; |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -796,7 +835,7 @@ if ($fromExercise <= 0) { |
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
// IN A TEST - NOT IN THE COURSE |
|
|
|
|
$actionLabel = get_lang('Reuse'); |
|
|
|
|
$actionLabel = get_lang('ReUseACopyInCurrentTest'); |
|
|
|
|
$actionIcon1 = 'clone'; |
|
|
|
|
$actionIcon2 = ''; |
|
|
|
|
$questionTagA = 0; |
|
|
|
@ -929,6 +968,9 @@ echo $pagination; |
|
|
|
|
echo '<form id="question_pool_id" method="get" action="'.$url.'">'; |
|
|
|
|
echo '<input type="hidden" name="fromExercise" value="'.$fromExercise.'">'; |
|
|
|
|
echo '<input type="hidden" name="cidReq" value="'.$_course['code'].'">'; |
|
|
|
|
echo '<input type="hidden" name="selected_course" value="'.$selected_course.'">'; |
|
|
|
|
echo '<input type="hidden" name="course_id" value="'.$selected_course.'">'; |
|
|
|
|
|
|
|
|
|
Display::display_sortable_table( |
|
|
|
|
$header, |
|
|
|
|
$data, |
|
|
|
@ -951,7 +993,13 @@ $html .= '<div class="btn-group"> |
|
|
|
|
</button>'; |
|
|
|
|
$html .= '<ul class="dropdown-menu">'; |
|
|
|
|
|
|
|
|
|
$actions = ['reuse' => get_lang('ReuseQuestion')]; |
|
|
|
|
|
|
|
|
|
$actionLabel = get_lang('ReUseACopyInCurrentTest'); |
|
|
|
|
$actions = ['clone' => get_lang('ReUseACopyInCurrentTest')]; |
|
|
|
|
if ($selected_course == api_get_course_int_id()) { |
|
|
|
|
$actions = ['reuse' => get_lang('ReuseQuestion')]; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
foreach ($actions as $action => &$label) { |
|
|
|
|
$html .= '<li> |
|
|
|
|
<a data-action ="'.$action.'" href="#" onclick="javascript:action_click(this, \''.$tableId.'\');">'. |
|
|
|
|