29 protected \ILIAS\Survey\InternalGUIService
$gui;
53 bool $a_has_write_access
57 $this->survey_service = $DIC->survey()->internal();
59 $this->
tabs = $DIC->tabs();
60 $this->
toolbar = $DIC->toolbar();
61 $this->
access = $DIC->access();
62 $this->rbacsystem = $DIC->rbac()->system();
63 $this->
user = $DIC->user();
64 $this->log = $DIC[
"ilLog"];
65 $ilCtrl = $DIC->ctrl();
66 $lng = $DIC->language();
69 $this->parent_gui = $a_parent_gui;
72 $this->
object = $survey;
73 $this->ref_id = $this->
object->getRefId();
74 $this->has_write = $a_has_write_access;
76 $this->
ctrl = $ilCtrl;
79 $this->invitation_manager = $this
84 $this->code_manager = $this
87 ->code($this->
object, $this->
user->getId());
88 $this->data_manager = $this
91 $this->feature_config = $this
93 ->domain()->modeFeatureConfig($this->
object->getMode());
94 $this->edit_manager = $this->survey_service
97 $this->edit_request = $this->survey_service
101 $this->gui = $this->survey_service->gui();
111 if (!$this->has_write) {
122 $cmd = $ilCtrl->getCmd(
"maintenance");
123 $next_class = $this->
ctrl->getNextClass($this);
125 switch ($next_class) {
126 case 'ilrepositorysearchgui':
129 if (!$this->edit_request->getAppr360() && !$this->edit_request->getRate360()) {
130 $ilTabs->clearTargets();
131 $ilTabs->setBackTarget(
132 $this->
lng->txt(
"btn_back"),
133 $this->
ctrl->getLinkTarget($this,
"maintenance")
136 $rep_search->setCallback(
142 $rep_search->setTitle($lng->
txt(
"svy_invite_participants"));
144 $this->
ctrl->setReturn($this,
'maintenance');
145 $this->
ctrl->forwardCommand($rep_search);
146 $ilTabs->setTabActive(
'maintenance');
147 } elseif ($this->edit_request->getRate360()) {
148 $ilTabs->clearTargets();
149 $ilTabs->setBackTarget(
150 $this->
lng->txt(
"btn_back"),
151 $this->
ctrl->getLinkTarget($this,
"listAppraisees")
154 $this->
ctrl->setParameter($this,
"rate360", 1);
155 $this->
ctrl->saveParameter($this,
"appr_id");
157 $rep_search->setCallback(
165 $this->
ctrl->setReturn($this,
'editRaters');
166 $this->
ctrl->forwardCommand($rep_search);
168 $ilTabs->activateTab(
"survey_360_appraisees");
169 $this->
ctrl->setParameter($this,
"appr360", 1);
171 $rep_search->setCallback(
179 $this->
ctrl->setReturn($this,
'listAppraisees');
180 $this->
ctrl->forwardCommand($rep_search);
184 case 'ilsurveyratergui':
185 $ilTabs->activateTab(
"survey_360_edit_raters");
187 $this->
ctrl->forwardCommand($rater_gui);
198 ?array $a_finished_ids =
null 200 $all_participants = $this->
object->getSurveyParticipants($a_finished_ids,
false,
true);
201 $participant_ids = [];
202 foreach ($all_participants as $participant) {
203 if (isset($participant[
'usr_id'])) {
204 $participant_ids[] = $participant[
'usr_id'];
208 $filtered_participant_ids = $this->
access->filterUserIdsByRbacOrPositionOfCurrentUser(
211 $this->
object->getRefId(),
216 foreach ($all_participants as $username => $user_data) {
217 if (!($user_data[
'usr_id'] ??
false)) {
218 $participants[$username] = $user_data;
220 if (in_array(($user_data[
'usr_id'] ?? -1), $filtered_participant_ids)) {
221 $participants[$username] = $user_data;
225 return $participants;
236 if ($this->
object->get360Mode()) {
244 if ($this->
object->getSkillService() && $skmg_set->isActivated()) {
245 $ilToolbar->addButton(
246 $this->
lng->txt(
"survey_calc_skills"),
247 $this->
ctrl->getLinkTargetByClass(
"ilsurveyskilldeterminationgui"),
256 $ilToolbar->addButton(
257 $this->
lng->txt(
'svy_remove_all_participants'),
258 $this->
ctrl->getLinkTarget($this,
'deleteAllUserData')
261 $ilToolbar->addSeparator();
263 if ($this->
object->isAccessibleWithoutCode()) {
264 $ilToolbar->addButton(
265 $this->
lng->txt(
"svy_invite_participants"),
266 $this->
ctrl->getLinkTargetByClass(
'ilRepositorySearchGUI',
'')
274 foreach ($total as $user_data) {
276 if ($user_data[
"finished"]) {
277 $finished = $user_data[
"finished_tstamp"];
279 if (isset($user_data[
"active_id"])) {
280 $wt = $this->
object->getWorkingtimeForParticipant($user_data[
"active_id"]);
281 $last_access = $this->
object->getLastAccess($user_data[
"active_id"]);
282 $active_id = $user_data[
"active_id"];
290 'name' => $user_data[
"sortname"],
291 'usr_id' => $user_data[
"usr_id"] ??
null,
292 'login' => $user_data[
"login"],
293 'last_access' => $last_access,
294 'workingtime' => $wt,
295 'finished' => $finished,
296 'invited' => $user_data[
"invited"] ??
false 299 $table_gui->setData(
$data);
300 $this->tpl->setVariable(
'ADM_CONTENT', $table_gui->getHTML());
305 $surveySetting =
new ilSetting(
"survey");
307 if ($surveySetting->get(
"anonymous_participants",
false) && $this->
object->hasAnonymizedResults() &&
308 $this->
object->hasAnonymousUserList()) {
309 $end = $this->
object->getEndDate();
310 if ($end && $end < date(
"YmdHis")) {
311 $min = (
int) $surveySetting->get(
"anonymous_participants_min",
'0');
312 $total = $this->
object->getSurveyParticipants();
313 if (!$min || count($total) >= $min) {
331 $this->
lng->txt(
"svy_part_overview"),
332 $this->
ctrl->getLinkTarget($this,
'maintenance')
338 $this->
lng->txt(
"svy_anonymous_participants_svy"),
339 $this->
ctrl->getLinkTarget($this,
'listParticipants')
343 if (!$this->
object->isAccessibleWithoutCode()) {
346 $this->
lng->txt(
"svy_codes"),
347 $this->
ctrl->getLinkTarget($this,
'codes')
352 $data = $this->
object->getExternalCodeRecipients();
356 $this->
lng->txt(
"mail_survey_codes"),
357 $this->
ctrl->getLinkTarget($this,
"mailCodes")
361 $ilTabs->activateSubTab($active);
371 $cgui->setHeaderText($this->
lng->txt(
"confirm_delete_all_user_data"));
372 $cgui->setFormAction($this->
ctrl->getFormAction($this,
"deleteAllUserData"));
373 $cgui->setCancel($this->
lng->txt(
"cancel"),
"cancelDeleteAllUserData");
374 $cgui->setConfirm($this->
lng->txt(
"confirm"),
"confirmDeleteAllUserData");
375 $this->tpl->setContent($cgui->getHTML());
383 if ($this->
access->checkAccess(
'write',
'', $this->object->getRefId())) {
384 $this->
object->deleteAllUserData();
387 foreach ($participants as $something => $participant_data) {
388 $this->
object->removeSelectedSurveyResults([$participant_data[
'active_id']]);
393 if ($this->
object->get360Mode()) {
394 $this->
object->openAllAppraisees();
397 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
"svy_all_user_data_deleted"),
true);
398 $this->
ctrl->redirect($this,
"maintenance");
406 $this->
ctrl->redirect($this,
"maintenance");
414 $user_ids = $this->edit_request->getUserIds();
415 if (count($user_ids) > 0) {
416 $this->
object->removeSelectedSurveyResults(array_filter($user_ids,
static function ($i):
bool {
417 return is_numeric($i);
420 $invitations = array_filter($user_ids,
static function ($i):
bool {
421 return strpos($i,
"inv") === 0;
423 foreach ($invitations as $i) {
424 $this->invitation_manager->remove($this->
object->getSurveyId(), (
int) substr($i, 3));
427 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
"svy_selected_user_data_deleted"),
true);
429 $this->
ctrl->redirect($this,
"maintenance");
437 $this->tpl->setOnScreenMessage(
'info', $this->
lng->txt(
'msg_cancel'),
true);
438 $this->
ctrl->redirect($this,
"maintenance");
448 $user_ids = $this->edit_request->getUserIds();
449 if (count($user_ids) === 0) {
450 $this->tpl->setOnScreenMessage(
'info', $this->
lng->txt(
'no_checkbox'),
true);
451 $this->
ctrl->redirect($this,
"maintenance");
454 $this->tpl->setOnScreenMessage(
'question', $this->
lng->txt(
"confirm_delete_single_user_data"));
456 $total = $this->
object->getSurveyParticipants(
null,
false,
true);
458 foreach ($total as $user_data) {
459 if (in_array(($user_data[
'active_id'] ??
null), $user_ids)
460 || (($user_data[
'invited'] ??
false) && in_array(
"inv" . $user_data[
'usr_id'], $user_ids))) {
461 $last_access = $this->
object->getLastAccess($user_data[
"active_id"] ?? 0);
463 'id' => $user_data[
"active_id"] ?? null,
464 'name' => $user_data[
"sortname"],
465 'login' => $user_data[
"login"] ?? null,
466 'last_access' => $last_access,
467 'finished' => $user_data[
"finished_tstamp"] ?? 0,
468 'usr_id' => $user_data[
"usr_id"] ?? null,
469 'invited' => $user_data[
"invited"] ?? null
473 $table_gui->setData(
$data);
474 $this->tpl->setVariable(
'ADM_CONTENT', $table_gui->getHTML());
482 if (strcmp($this->edit_request->getLang(),
"-1") !== 0) {
484 $ilUser->
writePref(
"survey_code_language", $this->edit_request->getLang());
486 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
'language_changed'),
true);
487 $this->
ctrl->redirect($this,
'codes');
501 if ($this->
object->isAccessibleWithoutCode()) {
502 $this->tpl->setOnScreenMessage(
'info', $this->
lng->txt(
"survey_codes_no_anonymization"));
506 $default_lang = $ilUser->getPref(
"survey_code_language");
509 $ilToolbar->setFormAction($this->
ctrl->getFormAction($this));
514 $ilToolbar->addInputItem($si,
true);
517 $this->
lng->txt(
"create"),
519 )->submit()->toToolbar();
521 $ilToolbar->addSeparator();
524 $this->
lng->txt(
"import_from_file"),
525 "importExternalMailRecipientsFromFileForm" 526 )->submit()->toToolbar();
529 $this->
lng->txt(
"import_from_text"),
530 "importExternalMailRecipientsFromTextForm" 531 )->submit()->toToolbar();
533 $ilToolbar->addSeparator();
536 $this->
lng->txt(
"svy_import_codes"),
538 )->submit()->toToolbar();
540 $ilToolbar->addSeparator();
542 $languages = $this->
lng->getInstalledLanguages();
544 $this->
lng->loadLanguageModule(
"meta");
545 foreach ($languages as
$lang) {
546 $options[
$lang] = $this->
lng->txt(
"meta_l_" . $lang);
550 $si->setValue($default_lang);
551 $ilToolbar->addInputItem($si,
true);
554 $this->
lng->txt(
"set"),
556 )->submit()->toToolbar();
560 $survey_codes = $this->
object->getSurveyCodesTableData(
null, $default_lang);
561 $table_gui->setData($survey_codes);
562 $this->tpl->setContent($table_gui->getHTML());
567 $ids = $this->edit_request->getCodeIds();
568 if (count($ids) === 0) {
569 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
'no_checkbox'),
true);
570 $this->
ctrl->redirect($this,
'codes');
577 $table_gui->setData($this->
object->getSurveyCodesTableData($ids));
578 $this->tpl->setContent($table_gui->getHTML());
583 $codes = $this->edit_request->getCodes();
584 $mails = $this->edit_request->getCodesPar(
"mail");
585 $lnames = $this->edit_request->getCodesPar(
"lname");
586 $fnames = $this->edit_request->getCodesPar(
"fname");
587 $sents = $this->edit_request->getCodesPar(
"sent");
588 if (count($codes) === 0) {
589 $this->
ctrl->redirect($this,
'codes');
594 foreach ($codes as
$id) {
595 if (!$this->
object->updateCode(
602 $errors[] = array($mails[$id], $lnames[$id], $fnames[$id]);
605 if (empty($errors)) {
606 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
'settings_saved'),
true);
608 foreach ($errors as $error) {
609 $error_message .= sprintf($this->
lng->txt(
"error_save_code"), $error[0], $error[1], $error[2]);
611 $this->tpl->setOnScreenMessage(
'failure', $error_message,
true);
614 $this->
ctrl->redirect($this,
'codes');
619 $codes = $this->edit_request->getCodes();
621 $data = $this->
object->getSurveyCodesTableData($codes);
622 $data = array_filter(
$data,
static function ($item):
bool {
623 return !$item[
"used"];
625 if (count(
$data) > 0) {
627 $cgui->setHeaderText($this->
lng->txt(
"survey_code_delete_sure"));
629 $cgui->setFormAction($this->
ctrl->getFormAction($this));
630 $cgui->setCancel($this->
lng->txt(
"cancel"),
"codes");
631 $cgui->setConfirm($this->
lng->txt(
"confirm"),
"deleteCodes");
633 foreach (
$data as $item) {
634 $title = array($item[
"code"]);
635 $title[] = $item[
"email"] ??
"";
636 $title[] = $item[
"last_name"] ??
"";
637 $title[] = $item[
"first_name"] ??
"";
638 $title = implode(
", ", $title);
640 $cgui->addItem(
"chb_code[]", $item[
"code"], $title);
643 $this->tpl->setContent($cgui->getHTML());
645 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
'svy_please_select_unused_codes'),
true);
646 $this->
ctrl->redirect($this,
'codes');
655 $codes = $this->edit_request->getCodes();
656 if (count($codes) > 0) {
657 foreach ($codes as $survey_code) {
658 $this->
object->deleteSurveyCode($survey_code);
660 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
'codes_deleted'),
true);
662 $this->tpl->setOnScreenMessage(
'info', $this->
lng->txt(
'no_checkbox'),
true);
664 $this->
ctrl->redirect($this,
'codes');
672 $codes = $this->edit_request->getCodes();
673 if (count($codes) > 0) {
674 $export = $this->
object->getSurveyCodesForExport(
null, $codes);
677 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
"no_checkbox"),
true);
678 $this->
ctrl->redirect($this,
'codes');
687 $export = $this->
object->getSurveyCodesForExport();
699 $this->tpl->setContent($form_import_file->getHTML());
705 $form_import_file->setFormAction($this->
ctrl->getFormAction($this));
706 $form_import_file->setTableWidth(
"100%");
707 $form_import_file->setId(
"codes_import_file");
710 $headerfile->setTitle($this->
lng->txt(
"svy_import_codes"));
711 $form_import_file->addItem($headerfile);
715 $this->
lng->txt(
'svy_import_codes_info'),
716 $this->
lng->txt(
"export_all_survey_codes")
718 $export_file->setSuffixes(array(
"csv"));
719 $export_file->setRequired(
true);
720 $form_import_file->addItem($export_file);
722 $form_import_file->addCommandButton(
"importAccessCodesAction", $this->
lng->txt(
"import"));
723 $form_import_file->addCommandButton(
"codes", $this->
lng->txt(
"cancel"));
725 return $form_import_file;
735 if ($form->checkInput()) {
737 foreach ($this->
object->getSurveyCodesTableData() as $item) {
738 $existing[$item[
"code"]] = $item[
"id"];
742 $reader->open($_FILES[
'codes'][
'tmp_name']);
743 foreach ($reader->getCsvAsArray() as $row) {
745 $code = $row[0] ??
"";
749 $email = $row[1] ??
"";
750 if (!is_int(strpos($email,
"@")) && $email !==
"") {
753 $last_name = $row[2] ??
"";
754 $first_name = $row[3] ??
"";
758 if (!array_key_exists($code, $existing)) {
774 ,
"lastname" => $last_name
775 ,
"firstname" => $first_name
777 $this->
object->importSurveyCode($code, $created, $user_data);
781 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
'codes_created'),
true);
782 $this->
ctrl->redirect($this,
'codes');
784 $form->setValuesByPost();
787 $this->tpl->setContent($form->getHTML());
796 if ($this->edit_request->getNrOfCodes() > 0) {
797 $ids = $this->code_manager->addCodes($this->edit_request->getNrOfCodes());
798 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
'codes_created'),
true);
799 $this->
ctrl->setParameter($this,
"new_ids", implode(
";", $ids));
800 $this->
ctrl->redirect($this,
'editCodes');
802 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
"enter_valid_number_of_codes"),
true);
803 $this->
ctrl->redirect($this,
'codes');
813 $form_gui->setValuesByPost();
815 if ($form_gui->getSavedMessages()->getValue() > 0) {
817 $settings = $this->
object->getUserSettings($ilUser->getId(),
'savemessage');
818 $form_gui->getMailMessage()->setValue($settings[$form_gui->getSavedMessages()->getValue()][
'value']);
819 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
'msg_message_inserted'));
821 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
'msg_no_message_inserted'));
825 $ilLog->
write(
'Error: ' . $e->getMessage());
827 $this->tpl->setVariable(
"ADM_CONTENT", $form_gui->getHTML());
836 $form_gui->setValuesByPost();
838 if ($form_gui->getSavedMessages()->getValue() > 0) {
839 $this->
object->deleteUserSettings($form_gui->getSavedMessages()->getValue());
841 $form_gui->setValuesByPost();
842 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
'msg_message_deleted'));
844 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
'msg_no_message_deleted'));
848 $ilLog->
write(
'Error: ' . $e->getMessage());
850 $this->tpl->setVariable(
"ADM_CONTENT", $form_gui->getHTML());
858 $mailData[
'm_subject'] =
859 $this->edit_request->getCodeMailPart(
"subject")
860 ?: sprintf($this->
lng->txt(
'default_codes_mail_subject'), $this->
object->getTitle());
861 $mailData[
'm_message'] =
862 $this->edit_request->getCodeMailPart(
"message")
863 ?: $this->
lng->txt(
'default_codes_mail_message');
864 $mailData[
'm_notsent'] =
865 $this->edit_request->getCodeMailPart(
"notsent")
869 $form_gui->setValuesByArray($mailData);
870 $this->tpl->setVariable(
"ADM_CONTENT", $form_gui->getHTML());
881 if ($form_gui->checkInput()) {
882 $url_exists = strpos($this->edit_request->getCodeMailPart(
"message"),
'[url]') !==
false;
884 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
'please_enter_mail_url'));
885 $form_gui->setValuesByPost();
887 if ($this->edit_request->getSaveMessage() === 1) {
889 $title = ($this->edit_request->getSaveMessageTitle())
890 ?:
ilStr::subStr($this->edit_request->getCodeMailPart(
"message"), 0, 40) .
'...';
891 $this->
object->saveUserSettings($ilUser->getId(),
'savemessage', $title, $this->edit_request->getCodeMailPart(
"message"));
894 $lang = $ilUser->getPref(
"survey_code_language");
896 $lang = $this->
lng->getDefaultLanguage();
898 $this->
object->sendCodes(
899 $this->edit_request->getCodeMailPart(
"notsent"),
900 $this->edit_request->getCodeMailPart(
"subject"),
901 nl2br($this->edit_request->getCodeMailPart(
"message")),
904 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
'mail_sent'),
true);
905 $this->
ctrl->redirect($this,
'mailCodes');
908 $form_gui->setValuesByPost();
910 $this->tpl->setVariable(
"ADM_CONTENT", $form_gui->getHTML());
915 if (trim($this->edit_request->getExternalText())) {
916 $data = preg_split(
"/[\n\r]/", $this->edit_request->getExternalText());
917 $fields = explode(
";", array_shift(
$data));
918 if (!in_array(
'email', $fields,
true)) {
919 $this->edit_manager->setExternalText($this->edit_request->getExternalText());
920 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
'err_external_rcp_no_email_column'),
true);
921 $this->
ctrl->redirect($this,
'importExternalMailRecipientsFromTextForm');
923 $existingdata = $this->
object->getExternalCodeRecipients();
924 $existingcolumns = array();
925 if (count($existingdata)) {
926 $first = array_shift($existingdata);
927 foreach ($first as $key => $value) {
928 $existingcolumns[] = $key;
931 $founddata = array();
932 foreach (
$data as $datarow) {
933 $row = explode(
";", $datarow);
934 if (count($row) === count($fields)) {
936 foreach ($fields as $idx => $fieldname) {
937 if (count($existingcolumns)) {
938 if (array_key_exists($idx, $existingcolumns)) {
939 $dataset[$fieldname] = $row[$idx];
942 $dataset[$fieldname] = $row[$idx];
945 if ($dataset[
'email'] !==
'') {
948 $dataset[
'lastname'] ??
"",
949 $dataset[
'firstname'] ??
"" 954 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
'external_recipients_imported'),
true);
955 $this->
ctrl->redirect($this,
'codes');
958 $this->
ctrl->redirect($this,
'importExternalMailRecipientsFromTextForm');
969 $code = $this->data_manager->code(
"")
971 ->withLastName($lastname)
972 ->withFirstName($firstname);
973 $code_id = $this->code_manager->add($code);
981 string $a_from_charset =
"",
982 string $a_to_charset =
"UTF-8" 984 if (extension_loaded(
"mbstring")) {
985 if (!$a_from_charset) {
986 mb_detect_order(
"UTF-8, ISO-8859-1, Windows-1252, ASCII");
987 $a_from_charset = mb_detect_encoding($a_string);
989 if (strtoupper($a_from_charset) !== $a_to_charset) {
990 return mb_convert_encoding($a_string, $a_to_charset, $a_from_charset);
999 $bom = pack(
'H*',
'EFBBBF');
1000 return preg_replace(
'/^' . $bom .
'/',
'', $a_text);
1008 if (!$form->checkInput()) {
1010 $this->tpl->setContent($form->getHTML());
1014 if (trim($_FILES[
'externalmails'][
'tmp_name'])) {
1016 $reader->open($_FILES[
'externalmails'][
'tmp_name']);
1017 $data = $reader->getCsvAsArray();
1018 $fields = array_shift(
$data);
1019 foreach ($fields as $idx => $field) {
1022 if (!in_array(
'email', $fields,
true)) {
1024 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
'err_external_rcp_no_email'),
true);
1025 $this->
ctrl->redirect($this,
'codes');
1027 $existingdata = $this->
object->getExternalCodeRecipients();
1028 $existingcolumns = array();
1029 if (count($existingdata)) {
1030 $first = array_shift($existingdata);
1031 foreach ($first as $key => $value) {
1032 $existingcolumns[] = $key;
1036 $founddata = array();
1037 foreach (
$data as $row) {
1038 if (count($row) === count($fields)) {
1040 foreach ($fields as $idx => $fieldname) {
1044 if (count($existingcolumns)) {
1045 if (array_key_exists($idx, $existingcolumns)) {
1046 $dataset[$fieldname] = $row[$idx];
1049 $dataset[$fieldname] = $row[$idx];
1052 if ($dataset[
'email'] !==
'') {
1053 $founddata[] = $dataset;
1056 $dataset[
'lastname'] ??
"",
1057 $dataset[
'firstname'] ??
"" 1064 if (count($founddata)) {
1065 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
'external_recipients_imported'),
true);
1069 $this->
ctrl->redirect($this,
'codes');
1077 $this->tpl->setContent($form->getHTML());
1085 $form_import_file->setFormAction($this->
ctrl->getFormAction($this));
1086 $form_import_file->setTableWidth(
"100%");
1087 $form_import_file->setId(
"codes_import_file");
1090 $headerfile->setTitle($this->
lng->txt(
"import_from_file"));
1091 $form_import_file->addItem($headerfile);
1093 $externalmails =
new ilFileInputGUI($this->
lng->txt(
"externalmails"),
"externalmails");
1094 $externalmails->
setInfo($this->
lng->txt(
'externalmails_info'));
1095 $externalmails->setRequired(
true);
1096 $form_import_file->addItem($externalmails);
1097 if ($ilAccess->checkAccess(
"write",
"", $this->edit_request->getRefId())) {
1098 $form_import_file->addCommandButton(
"importExternalRecipientsFromFile", $this->
lng->txt(
"import"));
1100 if ($ilAccess->checkAccess(
"write",
"", $this->edit_request->getRefId())) {
1101 $form_import_file->addCommandButton(
"codes", $this->
lng->txt(
"cancel"));
1103 return $form_import_file;
1114 $form_import_text->setFormAction($this->
ctrl->getFormAction($this));
1115 $form_import_text->setTableWidth(
"100%");
1116 $form_import_text->setId(
"codes_import_text");
1119 $headertext->setTitle($this->
lng->txt(
"import_from_text"));
1120 $form_import_text->addItem($headertext);
1123 $external_text = $this->edit_manager->getExternalText();
1124 if ($external_text !==
"") {
1128 $inp->setValue(
"email;firstname;lastname\n" . $this->
lng->txt(
'mail_import_example2') .
"\n" . $this->
lng->txt(
'mail_import_example3') .
"\n");
1130 $inp->setRequired(
true);
1133 $inp->setInfo($this->
lng->txt(
'externaltext_info'));
1134 $form_import_text->addItem($inp);
1135 $this->edit_manager->setExternalText(
"");
1137 if ($ilAccess->checkAccess(
"write",
"", $this->edit_request->getRefId())) {
1138 $form_import_text->addCommandButton(
"importExternalRecipientsFromText", $this->
lng->txt(
"import"));
1140 if ($ilAccess->checkAccess(
"write",
"", $this->edit_request->getRefId())) {
1141 $form_import_text->addCommandButton(
"codes", $this->
lng->txt(
"cancel"));
1144 $this->tpl->setContent($form_import_text->getHTML());
1159 $this->
ctrl->setParameter($this,
"appr360", 1);
1165 'auto_complete_name' => $this->
lng->txt(
'user'),
1166 'submit_name' => $this->
lng->txt(
'add'),
1167 'add_search' =>
true,
1174 if ($this->
object->getSkillService() && $skmg_set->isActivated()) {
1175 $ilToolbar->addSeparator();
1176 $ilToolbar->addButton(
1177 $lng->
txt(
"survey_calc_skills"),
1178 $ilCtrl->getLinkTargetByClass(
"ilsurveyskilldeterminationgui"),
1183 $ilToolbar->addSeparator();
1184 $ilToolbar->addButton(
1185 $this->
lng->txt(
'svy_delete_all_user_data'),
1186 $this->
ctrl->getLinkTarget($this,
'deleteAllUserData')
1189 $this->
ctrl->setParameter($this,
"appr360",
"");
1192 $tbl->setData($this->
object->getAppraiseesData());
1193 $this->tpl->setContent($tbl->getHTML());
1199 if (count($a_user_ids)) {
1201 foreach (array_unique($a_user_ids) as
$user_id) {
1202 $this->
object->addAppraisee($user_id);
1205 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
"settings_saved"),
true);
1207 $this->
ctrl->redirect($this,
"listAppraisees");
1214 $appr_ids = $this->edit_request->getAppraiseeIds();
1215 if (count($appr_ids) === 0) {
1216 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
"select_one"),
true);
1217 $this->
ctrl->redirect($this,
"listAppraisees");
1220 $ilTabs->clearTargets();
1221 $ilTabs->setBackTarget(
1222 $this->
lng->txt(
"btn_back"),
1223 $this->
ctrl->getLinkTarget($this,
"listAppraisees")
1227 $cgui->setHeaderText($this->
lng->txt(
"survey_360_sure_delete_appraises"));
1229 $cgui->setFormAction($this->
ctrl->getFormAction($this,
"deleteAppraisees"));
1230 $cgui->setCancel($this->
lng->txt(
"cancel"),
"listAppraisees");
1231 $cgui->setConfirm($this->
lng->txt(
"confirm"),
"deleteAppraisees");
1233 $data = $this->
object->getAppraiseesData();
1236 foreach ($appr_ids as
$id) {
1237 if (isset(
$data[$id]) && !
$data[$id][
"closed"]) {
1244 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
"select_one"),
true);
1245 $this->
ctrl->redirect($this,
"listAppraisees");
1248 $this->tpl->setContent($cgui->getHTML());
1253 $appr_ids = $this->edit_request->getAppraiseeIds();
1254 if (count($appr_ids) > 0) {
1255 $data = $this->
object->getAppraiseesData();
1257 foreach ($appr_ids as
$id) {
1259 if (isset(
$data[$id]) && !
$data[$id][
"closed"]) {
1260 $this->
object->deleteAppraisee($id);
1264 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
"settings_saved"),
true);
1267 $this->
ctrl->redirect($this,
"listAppraisees");
1275 if ($ilAccess->checkAccess(
"write",
"", $this->ref_id)) {
1276 $appr_id = $this->edit_request->getAppraiseeId();
1278 $this->
ctrl->redirect($this,
"listAppraisees");
1281 } elseif ($this->feature_config->usesAppraisees() &&
1282 $this->
object->get360SelfRaters() &&
1283 $this->
object->isAppraisee($ilUser->getId()) &&
1284 !$this->
object->isAppraiseeClosed($ilUser->getId())) {
1285 return $ilUser->getId();
1287 $this->
ctrl->redirect($this->parent_gui,
"infoScreen");
1294 $all_data = $this->
object->getRatersData($appr_id);
1296 $recs = json_decode(base64_decode($this->edit_request->getRecipients()));
1297 foreach ($all_data as $rec_id => $rater) {
1299 if (($rater[
"login"] !=
"" && in_array($rater[
"login"], $recs,
true)) ||
1300 ($rater[
"email"] !=
"" && in_array($rater[
"email"], $recs,
true))) {
1304 $this->
object->set360RaterSent(
1306 strpos($rec_id,
"a") === 0 ? 0 : (
int) substr($rec_id, 1),
1307 strpos($rec_id,
"u") === 0 ? 0 : (
int) substr($rec_id, 1)
1311 $this->
ctrl->setParameter($this,
"appr_id", $appr_id);
1312 $this->
ctrl->redirect($this,
"editRaters");
1317 if ($this->edit_request->getReturnedFromMail() === 1) {
1324 $ilTabs->activateTab(
"survey_360_edit_raters");
1327 $has_write = $ilAccess->checkAccess(
"write",
"", $this->ref_id);
1329 $ilTabs->clearTargets();
1330 $ilTabs->setBackTarget(
1331 $this->
lng->txt(
"btn_back"),
1332 $this->
ctrl->getLinkTarget($this,
"listAppraisees")
1336 $this->
ctrl->setParameter($this,
"appr_id", $appr_id);
1337 $this->
ctrl->setParameter($this,
"rate360", 1);
1339 $ilToolbar->addButton(
1340 $this->
lng->txt(
"svy_add_rater"),
1341 $this->
ctrl->getLinkTargetByClass(
"ilSurveyRaterGUI",
"add")
1349 $this->tpl->setContent($tbl->getHTML());
1359 $this->
ctrl->setParameter($this,
"appr_id", $appr_id);
1361 $has_write = $ilAccess->checkAccess(
"write",
"", $this->ref_id);
1363 $ilTabs->clearTargets();
1364 $ilTabs->setBackTarget(
1365 $this->
lng->txt(
"btn_back"),
1366 $this->
ctrl->getLinkTarget($this,
"editRaters")
1374 $this->tpl->setContent($a_form->getHTML());
1381 $form->setFormAction($this->
ctrl->getFormAction($this,
"addExternalRater"));
1382 $form->setTitle($this->
lng->txt(
"survey_360_add_external_rater") .
1387 $form->addItem($email);
1390 $lname->setSize(30);
1391 $form->addItem($lname);
1394 $fname->setSize(30);
1395 $form->addItem($fname);
1397 $form->addCommandButton(
"addExternalRater", $this->
lng->txt(
"save"));
1398 $form->addCommandButton(
"editRaters", $this->
lng->txt(
"cancel"));
1405 $appr_id = $this->edit_request->getAppraiseeId();
1407 $this->
ctrl->redirect($this,
"listAppraisees");
1410 $this->
ctrl->setParameter($this,
"appr_id", $appr_id);
1413 if ($form->checkInput()) {
1415 $form->getInput(
"email"),
1416 $form->getInput(
"lname"),
1417 $form->getInput(
"fname")
1420 $this->
object->addRater($appr_id, 0, $code_id);
1422 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
"settings_saved"),
true);
1423 $this->
ctrl->setParameter($this,
"appr_id", $appr_id);
1424 $this->
ctrl->redirect($this,
"editRaters");
1427 $form->setValuesByPost();
1439 if (count($a_user_ids)) {
1441 foreach (array_unique($a_user_ids) as
$user_id) {
1442 if ($ilAccess->checkAccess(
"write",
"", $this->ref_id) ||
1443 $this->
object->get360SelfEvaluation() ||
1444 $user_id != $ilUser->getId()) {
1445 if ($appr_id != $user_id) {
1446 $this->
object->addRater($appr_id, $user_id);
1447 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
"settings_saved"),
true);
1449 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
"svy_appraisses_cannot_be_raters"),
true);
1455 $this->
ctrl->setParameter($this,
"appr_id", $appr_id);
1456 $this->
ctrl->redirect($this,
"editRaters");
1463 $rater_ids = $this->edit_request->getRaterIds();
1465 $this->
ctrl->setParameter($this,
"appr_id", $appr_id);
1466 if (count($rater_ids) === 0) {
1467 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
"select_one"),
true);
1468 $this->
ctrl->redirect($this,
"editRaters");
1471 $ilTabs->clearTargets();
1472 $ilTabs->setBackTarget(
1473 $this->
lng->txt(
"btn_back"),
1474 $this->
ctrl->getLinkTarget($this,
"editRaters")
1478 $cgui->setHeaderText(sprintf(
1479 $this->
lng->txt(
"survey_360_sure_delete_raters"),
1483 $cgui->setFormAction($this->
ctrl->getFormAction($this,
"deleteRaters"));
1484 $cgui->setCancel($this->
lng->txt(
"cancel"),
"editRaters");
1485 $cgui->setConfirm($this->
lng->txt(
"confirm"),
"deleteRaters");
1487 $data = $this->
object->getRatersData($appr_id);
1489 foreach ($rater_ids as
$id) {
1490 if (isset(
$data[$id])) {
1491 $cgui->addItem(
"rtr_id[]", $id,
$data[$id][
"lastname"] .
", " .
1492 $data[$id][
"firstname"] .
" (" .
$data[$id][
"email"] .
")");
1496 $this->tpl->setContent($cgui->getHTML());
1502 $this->
ctrl->setParameter($this,
"appr_id", $appr_id);
1504 $rater_ids = $this->edit_request->getRaterIds();
1505 if (count($rater_ids) > 0) {
1506 $data = $this->
object->getRatersData($appr_id);
1508 foreach ($rater_ids as
$id) {
1509 if (isset(
$data[$id])) {
1510 if (strpos($id,
"u") === 0) {
1511 $this->
object->deleteRater($appr_id, substr($id, 1));
1513 $this->
object->deleteRater($appr_id, 0, substr($id, 1));
1518 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
"settings_saved"),
true);
1521 $this->
ctrl->redirect($this,
"editRaters");
1528 if ($this->
object->get360SelfAppraisee() &&
1529 !$this->
object->isAppraisee($ilUser->getId())) {
1530 $this->
object->addAppraisee($ilUser->getId());
1533 $this->
ctrl->redirect($this->parent_gui,
"run");
1541 $form->setFormAction($this->
ctrl->getFormAction($this,
"mailRatersAction"));
1542 $form->setTitle($this->
lng->txt(
'compose'));
1544 $all_data = $this->
object->getRatersData($appr_id);
1545 $rec_data = array();
1546 foreach ($rec_ids as $rec_id) {
1547 if (isset($all_data[$rec_id])) {
1548 $rec_data[] = $all_data[$rec_id][
"lastname"] .
", " .
1549 $all_data[$rec_id][
"firstname"] .
1550 " (" . $all_data[$rec_id][
"email"] .
")";
1555 $rec->setHtml(implode(
"<br />", $rec_data));
1556 $form->addItem($rec);
1559 $subject->setSize(50);
1560 $subject->setRequired(
true);
1561 $form->addItem($subject);
1563 $existingdata = $this->
object->getExternalCodeRecipients();
1564 $existingcolumns = array();
1565 if (count($existingdata)) {
1566 $first = array_shift($existingdata);
1567 foreach ($first as $key => $value) {
1568 if (strcmp($key,
'code') !== 0 && strcmp($key,
'email') !== 0 && strcmp($key,
'sent') !== 0) {
1569 $existingcolumns[] =
'[' . $key .
']';
1574 $mailmessage_u =
new ilTextAreaInputGUI($this->
lng->txt(
'survey_360_rater_message_content_registered'),
'message_u');
1576 $mailmessage_u->setCols(80);
1577 $mailmessage_u->setRows(10);
1578 $form->addItem($mailmessage_u);
1580 $mailmessage_a =
new ilTextAreaInputGUI($this->
lng->txt(
'survey_360_rater_message_content_anonymous'),
'message_a');
1582 $mailmessage_a->setCols(80);
1583 $mailmessage_a->setRows(10);
1584 $mailmessage_a->setInfo(sprintf($this->
lng->txt(
'message_content_info'), implode(
', ', $existingcolumns)));
1585 $form->addItem($mailmessage_a);
1588 $recf->setValue(implode(
";", $rec_ids));
1589 $form->addItem($recf);
1591 $form->addCommandButton(
"mailRatersAction", $this->
lng->txt(
"send"));
1592 $form->addCommandButton(
"editRaters", $this->
lng->txt(
"cancel"));
1594 $subject->setValue(sprintf($this->
lng->txt(
'survey_360_rater_subject_default'), $this->
object->getTitle()));
1595 $mailmessage_u->setValue($this->
lng->txt(
'survey_360_rater_message_content_registered_default'));
1596 $mailmessage_a->setValue($this->
lng->txt(
'survey_360_rater_message_content_anonymous_default'));
1604 $all_data = $this->
object->getRatersData($appr_id);
1605 $this->
ctrl->setParameter($this,
"appr_id", $appr_id);
1607 $raters = $this->edit_request->getRaterIds();
1610 $external_rater =
false;
1612 foreach ($raters as
$id) {
1613 if (isset($all_data[$id])) {
1614 if ($all_data[$id][
"login"] !=
"") {
1615 $rec[] = $all_data[
$id][
"login"];
1616 } elseif ($all_data[$id][
"email"] !=
"") {
1617 $rec[] = $all_data[
$id][
"email"];
1618 $external_rater =
true;
1619 $rater_id = $all_data[
$id][
"user_id"];
1623 if ($external_rater && count($rec) > 1) {
1624 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
"svy_only_max_one_external_rater"),
true);
1625 $this->
ctrl->redirect($this,
"editRaters");
1630 $contextParameters = [
1631 'ref_id' => $this->
object->getRefId(),
1633 'appr_id' => $appr_id,
1634 'rater_id' => $rater_id,
1642 'recipients' => base64_encode(json_encode($rec, JSON_THROW_ON_ERROR)),
1646 'sig' => rawurlencode(base64_encode(
"\n\n" . $this->
lng->txt(
"svy_link_to_svy") .
": {{SURVEY_LINK}}"))
1656 $rater_ids = $this->edit_request->getRaterIds();
1659 $this->
ctrl->setParameter($this,
"appr_id", $appr_id);
1661 if (count($rater_ids) === 0) {
1662 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
"select_one"),
true);
1663 $this->
ctrl->redirect($this,
"editRaters");
1669 $ilTabs->clearTargets();
1670 $ilTabs->setBackTarget(
1671 $this->
lng->txt(
"btn_back"),
1672 $this->
ctrl->getLinkTarget($this,
"editRaters")
1675 $this->tpl->setContent($a_form->getHTML());
1682 $this->
ctrl->setParameter($this,
"appr_id", $appr_id);
1684 $rec_ids = $this->edit_request->getRaterIds();
1685 if (count($rec_ids) === 0) {
1686 $this->
ctrl->redirect($this,
"editRaters");
1690 if ($form->checkInput()) {
1691 $txt_u = $form->getInput(
"message_u");
1692 $txt_a = $form->getInput(
"message_a");
1693 $subj = $form->getInput(
"subject");
1696 $sender_id = (trim($ilUser->getEmail()))
1700 $all_data = $this->
object->getRatersData($appr_id);
1701 foreach ($rec_ids as $rec_id) {
1702 if (isset($all_data[$rec_id])) {
1703 $user = $all_data[$rec_id];
1706 if (strpos($rec_id,
"a") === 0) {
1708 $url = $user[
"href"];
1709 $rcp = $user[
"email"];
1714 $user[
"code"] = $this->
lng->txt(
"survey_code_mail_on_demand");
1716 $rcp = $user[
"login"];
1719 $mytxt = str_replace(
1720 [
"[lastname]",
"[firstname]",
"[url]",
"[code]"],
1721 [$user[
"lastname"], $user[
"firstname"],
$url, $user[
"code"]],
1725 $mail =
new ilMail($sender_id);
1735 $this->
object->set360RaterSent(
1737 (strpos($rec_id,
"a") === 0) ? 0 : (
int) substr($rec_id, 1),
1738 (strpos($rec_id,
"u") === 0) ? 0 : (
int) substr($rec_id, 1)
1743 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
"mail_sent"),
true);
1744 $this->
ctrl->redirect($this,
"editRaters");
1747 $form->setValuesByPost();
1758 $ilTabs->setBackTarget(
1759 $this->
lng->txt(
"menuback"),
1760 $this->
ctrl->getLinkTarget($this->parent_gui,
"run")
1763 if (!$this->
object->isAppraisee($ilUser->getId())) {
1764 $this->
ctrl->redirect($this->parent_gui,
"run");
1768 $cgui->setHeaderText($this->
lng->txt(
"survey_360_sure_appraisee_close"));
1770 $cgui->setFormAction($this->
ctrl->getFormAction($this,
"appraiseeClose"));
1771 $cgui->setCancel($this->
lng->txt(
"cancel"),
"confirmAppraiseeCloseCancel");
1772 $cgui->setConfirm($this->
lng->txt(
"confirm"),
"appraiseeClose");
1779 $this->
ctrl->redirect($this->parent_gui,
"run");
1786 if (!$this->
object->isAppraisee($ilUser->getId())) {
1787 $this->
ctrl->redirect($this->parent_gui,
"run");
1790 $this->
object->closeAppraisee($ilUser->getId());
1791 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
"survey_360_appraisee_close_action_success"),
true);
1792 $this->
ctrl->redirect($this->parent_gui,
"run");
1801 $appr_ids = $this->edit_request->getAppraiseeIds();
1803 if (count($appr_ids) === 0) {
1804 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
"select_one"),
true);
1805 $this->
ctrl->redirect($this,
"listAppraisees");
1809 $cgui->setHeaderText($this->
lng->txt(
"survey_360_sure_appraisee_close_admin"));
1811 $cgui->setFormAction($this->
ctrl->getFormAction($this,
"adminAppraiseesClose"));
1812 $cgui->setCancel($this->
lng->txt(
"cancel"),
"listAppraisees");
1813 $cgui->setConfirm($this->
lng->txt(
"confirm"),
"adminAppraiseesClose");
1815 foreach ($appr_ids as $appr_id) {
1826 $appr_ids = $this->edit_request->getAppraiseeIds();
1828 if (count($appr_ids) === 0) {
1829 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
"select_one"),
true);
1830 $this->
ctrl->redirect($this,
"listAppraisees");
1833 $appr_data = $this->
object->getAppraiseesData();
1834 foreach ($appr_ids as $appr_id) {
1835 if (isset($appr_data[$appr_id]) && !$appr_data[$appr_id][
"closed"]) {
1836 $this->
object->closeAppraisee($appr_id);
1840 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
"survey_360_appraisee_close_action_success_admin"),
true);
1841 $this->
ctrl->redirect($this,
"listAppraisees");
1849 $this->
ctrl->redirect($this,
"maintenance");
1856 $this->
lng->txt(
"print"),
1858 )->onClick(
"window.print(); return false;")->toToolbar();
1861 $this->tpl->setContent($tbl->getHTML());
1874 $this->invitation_manager->add($this->
object->getSurveyId(),
$user_id);
1876 $this->tpl->setOnScreenMessage(
'success', $lng->
txt(
"svy_users_invited"),
true);
1877 $ctrl->
redirect($this,
"maintenance");
importAccessCodesObject()
Import codes from export codes file (upload form)
Class ilSurveyParticipantsGUI.
codesObject()
Display the survey access codes tab.
removeUTF8Bom(string $a_text)
writePref(string $a_keyword, string $a_value)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
txt(string $a_topic, string $a_default_lang_fallback_mod="")
gets the text for a given topic if the topic is not in the list, the topic itself with "-" will be re...
exportAllCodesObject()
Exports all survey codes.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
write(string $message, $level=ilLogLevel::INFO, array $context=[])
write log message
Skill management settings.
ilObjSurveyGUI $parent_gui
getAccessCodeImportForm()
maintenanceObject()
Participants maintenance.
setContent(string $a_html)
Sets content for standard template.
addCodeForExternal(string $email, string $lastname, string $firstname)
Add code for an external rater.
setCodeLanguageObject()
Change survey language for direct access URL's.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
insertSavedMessageObject()
confirmAppraiseeCloseObject()
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static subStr(string $a_str, int $a_start, ?int $a_length=null)
Participants InvitationsManager $invitation_manager
static deliverData(string $a_data, string $a_filename, string $mime="application/octet-stream")
mailRatersObjectOld(?ilPropertyFormGUI $a_form=null)
cancelDeleteSelectedUserDataObject()
Cancels the deletion of all user data.
addRater(array $a_user_ids)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
confirmDeleteAppraiseesObject()
sort()
description: > Example for rendering a Sort Glyph.
static getASCIIFilename(string $a_filename)
setValue(string $a_value)
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
ilObjSurveyGUI: ilSurveyEvaluationGUI, ilSurveyExecutionGUI ilObjSurveyGUI: ilObjectMetaDataGUI, ilPermissionGUI ilObjSurveyGUI: ilInfoScreenGUI, ilObjectCopyGUI ilObjSurveyGUI: ilSurveySkillDeterminationGUI ilObjSurveyGUI: ilCommonActionDispatcherGUI, ilSurveySkillGUI ilObjSurveyGUI: ilSurveyEditorGUI, ilSurveyConstraintsGUI ilObjSurveyGUI: ilSurveyParticipantsGUI, ilLearningProgressGUI ilObjSurveyGUI: ilExportGUI, ilLTIProviderObjectSettingGUI ilObjSurveyGUI: ILIAS
confirmDeleteRatersObject()
cancelDeleteAllUserDataObject()
Cancels delete of all user data in maintenance.
addSubTab(string $a_id, string $a_text, string $a_link, string $a_frame="")
static getNamePresentation( $a_user_id, bool $a_user_image=false, bool $a_profile_link=false, string $a_profile_back_link='', bool $a_force_first_lastname=false, bool $a_omit_login=false, bool $a_sortable=true, bool $a_return_data_array=false, $a_ctrl_path='ilpublicuserprofilegui')
Default behaviour is:
deleteCodesConfirmObject()
redirect(object $a_gui_obj, ?string $a_cmd=null, ?string $a_anchor=null, bool $is_async=false)
importExternalRecipientsFromFileObject()
static _getStaticLink(?int $a_ref_id, string $a_type='', bool $a_fallback_goto=true, string $append="")
ILIAS Survey InternalGUIService $gui
deleteCodesObject()
Delete a list of survey codes.
ILIAS Survey Editing EditManager $edit_manager
ILIAS Survey InternalService $survey_service
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
clearTargets()
clear all targets
initMailRatersForm(int $appr_id, array $rec_ids)
getImportExternalMailRecipientsFromFileForm()
ILIAS Survey InternalDataService $data_manager
createSurveyCodesObject()
Create access codes for the survey.
confirmDeleteSelectedUserDataObject()
Deletes all user data for the test object.
deleteSavedMessageObject()
confirmAdminAppraiseesCloseObject()
importExternalMailRecipientsFromFileFormObject()
static fillAutoCompleteToolbar(object $parent_object, ?ilToolbarGUI $toolbar=null, array $a_options=[], bool $a_sticky=false)
array( auto_complete_name = $lng->txt('user'), auto_complete_size = 15, user_type = array(ilCoursePar...
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
__construct(Container $dic, ilPlugin $plugin)
importAccessCodesActionObject()
Import codes from export codes file.
This class represents a text area property in a property form.
ilGlobalTemplateInterface $tpl
addExternalRaterFormObject(?ilPropertyFormGUI $a_form=null)
importExternalRecipientsFromTextObject()
adminAppraiseesCloseObject()
confirmDeleteAllUserDataObject()
Deletes all user data of the survey after confirmation.
_convertCharset(string $a_string, string $a_from_charset="", string $a_to_charset="UTF-8")
filterSurveyParticipantsByAccess(?array $a_finished_ids=null)
inviteUsers(array $user_ids)
ILIAS Survey Mode FeatureConfig $feature_config
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
initExternalRaterForm(int $appr_id)
exportCodesObject()
Exports a list of survey codes.
deleteSingleUserResultsObject()
Asks for a confirmation to delete selected user data.
deleteAllUserDataObject()
Creates a confirmation form for delete all user data.
importExternalMailRecipientsFromTextFormObject()
ILIAS Survey Code CodeManager $code_manager
addAppraisee(array $a_user_ids)
ILIAS Survey Editing EditingGUIRequest $edit_request
setParticipantSubTabs(string $active)
confirmAppraiseeCloseCancelObject()