132 switch ($DIC->ctrl()->getNextClass($this)) {
133 case 'ilrepositorysearchgui':
135 require_once
'Modules/Test/classes/class.ilTestParticipantAccessFilter.php';
136 require_once
'Services/Search/classes/class.ilRepositorySearchGUI.php';
139 $gui->setCallback($this, self::CALLBACK_ADD_PARTICIPANT, array());
146 $DIC->ctrl()->setReturn($this, self::CMD_SHOW);
147 $DIC->ctrl()->forwardCommand($gui);
151 case "iltestevaluationgui":
153 require_once
'Modules/Test/classes/class.ilTestEvaluationGUI.php';
158 $DIC->tabs()->clearTargets();
159 $DIC->tabs()->clearSubTabs();
161 $DIC->ctrl()->forwardCommand($gui);
167 $command = $DIC->ctrl()->getCmd(self::CMD_SHOW) .
'Cmd';
180 require_once
'Modules/Test/classes/class.ilTestParticipantAccessFilter.php';
182 $a_user_ids = call_user_func_array($filterCallback, [$a_user_ids]);
186 if (is_array($a_user_ids)) {
188 foreach ($a_user_ids as $user_id) {
189 $client_ip =
$_POST[
"client_ip"][
$i];
190 $this->
getTestObj()->inviteUser($user_id, $client_ip);
197 $message = $DIC->language()->txt(
"tst_invited_selected_users");
206 $DIC->ctrl()->redirect($this, self::CMD_SHOW);
216 require_once
'Modules/Test/classes/tables/class.ilTestParticipantsTableGUI.php';
219 $tableGUI->setParticipantHasSolutionsFilterEnabled(
223 if ($this->
getTestObj()->getFixedParticipants()) {
224 $tableGUI->setTitle($DIC->language()->txt(
'tst_tbl_invited_users'));
226 $tableGUI->setTitle($DIC->language()->txt(
'tst_tbl_participants'));
238 $tableGUI->initFilter($this->
getTestObj()->getFixedParticipants());
239 $tableGUI->writeFilterToSession();
240 $tableGUI->resetOffset();
250 $tableGUI->resetFilter();
251 $tableGUI->resetOffset();
265 if ($this->
getTestObj()->getFixedParticipants()) {
266 $participantList = $this->
getTestObj()->getInvitedParticipantList()->getAccessFilteredList(
270 $tableGUI->setData($this->
applyFilterCriteria($participantList->getParticipantsTableRows()));
271 $tableGUI->setRowKeyDataField(
'usr_id');
272 $tableGUI->setManageInviteesCommandsEnabled(
true);
273 $tableGUI->setDescription($DIC->language()->txt(
"fixed_participants_hint"));
275 $participantList = $this->
getTestObj()->getActiveParticipantList()->getAccessFilteredList(
279 $tableGUI->setData($participantList->getParticipantsTableRows());
280 $tableGUI->setRowKeyDataField(
'active_id');
283 $tableGUI->setManageResultsCommandsEnabled(
true);
288 $tableGUI->setAnonymity($this->
getTestObj()->getAnonymity());
290 $tableGUI->initColumns();
291 $tableGUI->initCommands();
293 $tableGUI->initFilter();
294 $tableGUI->setFilterCommand(self::CMD_SET_FILTER);
295 $tableGUI->setResetCommand(self::CMD_RESET_FILTER);
297 $DIC->ui()->mainTemplate()->setContent($DIC->ctrl()->getHTML($tableGUI));
308 $sess_filter =
$_SESSION[
'form_tst_participants_' . $this->
getTestObj()->getRefId()][
'selection'];
309 $sess_filter = str_replace(
'"',
'', $sess_filter);
310 $sess_filter = explode(
':', $sess_filter);
311 $filter = substr($sess_filter[2], 0, strlen($sess_filter[2]) - 1);
313 if ($filter ==
'all' || $filter ==
false) {
314 return $in_rows; #unchanged - no filter.
317 $with_result = array();
318 $without_result = array();
319 foreach ($in_rows as
$row) {
320 $result = $DIC->database()->query(
321 'SELECT count(solution_id) count 323 WHERE active_fi = ' . $DIC->database()->quote($row[
'active_id'])
325 $count = $DIC->database()->fetchAssoc(
$result);
326 $count = $count[
'count'];
329 $without_result[] =
$row;
331 $with_result[] =
$row;
335 if ($filter ==
'withSolutions') {
338 return $without_result;
345 if ($this->
getTestObj()->getFixedParticipants()) {
350 $DIC->toolbar()->addSeparator();
367 include_once
'./Services/Search/classes/class.ilRepositorySearchGUI.php';
372 'auto_complete_name' => $DIC->language()->txt(
'user'),
373 'submit_name' => $DIC->language()->txt(
'add')
377 require_once
'Services/UIComponent/Button/classes/class.ilLinkButton.php';
379 $search_btn->setCaption(
'tst_search_users');
380 $search_btn->setUrl($DIC->ctrl()->getLinkTargetByClass(
'ilRepositorySearchGUI',
'start'));
394 $finish_all_user_passes_btn->setCaption(
'finish_all_user_passes');
395 $finish_all_user_passes_btn->setUrl($DIC->ctrl()->getLinkTargetByClass(
'iltestevaluationgui',
'finishAllUserPasses'));
406 require_once
'Modules/Test/classes/class.ilTestParticipantAccessFilter.php';
408 $a_user_ids = call_user_func_array($filterCallback, [(array)
$_POST[
"chbUser"]]);
410 if (is_array($a_user_ids)) {
411 foreach ($a_user_ids as $user_id) {
412 $this->
getTestObj()->setClientIP($user_id, $_POST[
"clientip_" . $user_id]);
417 $DIC->ctrl()->redirect($this, self::CMD_SHOW);
427 require_once
'Modules/Test/classes/class.ilTestParticipantAccessFilter.php';
429 $a_user_ids = call_user_func_array($filterCallback, [(array)
$_POST[
"chbUser"]]);
431 if (is_array($a_user_ids)) {
432 foreach ($a_user_ids as $user_id) {
439 $DIC->ctrl()->redirect($this, self::CMD_SHOW);
setObjectiveParent(ilTestObjectiveOrientedContainer $objectiveParent)
removeParticipantsCmd()
remove participants command
addParticipants($a_user_ids=array())
const CMD_SHOW
Command/Callback Constants.
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
catch(Exception $e) $message
resetFilterCmd()
reset table filter command
setFilterCmd()
set table filter command
Output class for assessment test evaluation.
executeCommand()
Execute Command.
__construct(ilObjTest $testObj, ilTestQuestionSetConfig $questionSetConfig)
ilTestParticipantsGUI constructor.
addUserSearchControls(ilToolbarGUI $toolbar)
saveClientIpCmd()
save client ip command
const CALLBACK_ADD_PARTICIPANT
applyFilterCriteria($in_rows)
static getManageParticipantsUserFilter($refId)
initToolbarControls(ilTestParticipantList $participantList)
addFinishAllPassesButton(ilToolbarGUI $toolbar)
static fillAutoCompleteToolbar($parent_object, ilToolbarGUI $toolbar=null, $a_options=array(), $a_sticky=false)
fill toolbar with
setTestAccess(ilTestAccess $testAccess)
setQuestionSetConfig($questionSetConfig)