51 bool $a_has_write_access
55 $this->survey_service = $DIC->survey()->internal();
57 $this->
tabs = $DIC->tabs();
58 $this->
toolbar = $DIC->toolbar();
59 $this->
access = $DIC->access();
60 $this->rbacsystem = $DIC->rbac()->system();
61 $this->
user = $DIC->user();
62 $this->log = $DIC[
"ilLog"];
63 $ilCtrl = $DIC->ctrl();
64 $lng = $DIC->language();
67 $this->parent_gui = $a_parent_gui;
70 $this->
object = $survey;
71 $this->ref_id = $this->
object->getRefId();
72 $this->has_write = $a_has_write_access;
74 $this->
ctrl = $ilCtrl;
77 $this->invitation_manager = $this
82 $this->code_manager = $this
85 ->code($this->
object, $this->
user->getId());
86 $this->data_manager = $this
89 $this->feature_config = $this
91 ->domain()->modeFeatureConfig($this->
object->getMode());
92 $this->edit_manager = $this->survey_service
95 $this->edit_request = $this->survey_service
108 if (!$this->has_write) {
119 $cmd = $ilCtrl->getCmd(
"maintenance");
120 $next_class = $this->
ctrl->getNextClass($this);
122 switch ($next_class) {
123 case 'ilrepositorysearchgui':
126 if (!$this->edit_request->getAppr360() && !$this->edit_request->getRate360()) {
127 $ilTabs->clearTargets();
128 $ilTabs->setBackTarget(
129 $this->
lng->txt(
"btn_back"),
130 $this->
ctrl->getLinkTarget($this,
"maintenance")
133 $rep_search->setCallback(
139 $rep_search->setTitle($lng->
txt(
"svy_invite_participants"));
141 $this->
ctrl->setReturn($this,
'maintenance');
142 $this->
ctrl->forwardCommand($rep_search);
143 $ilTabs->setTabActive(
'maintenance');
144 } elseif ($this->edit_request->getRate360()) {
145 $ilTabs->clearTargets();
146 $ilTabs->setBackTarget(
147 $this->
lng->txt(
"btn_back"),
148 $this->
ctrl->getLinkTarget($this,
"listAppraisees")
151 $this->
ctrl->setParameter($this,
"rate360", 1);
152 $this->
ctrl->saveParameter($this,
"appr_id");
154 $rep_search->setCallback(
162 $this->
ctrl->setReturn($this,
'editRaters');
163 $this->
ctrl->forwardCommand($rep_search);
165 $ilTabs->activateTab(
"survey_360_appraisees");
166 $this->
ctrl->setParameter($this,
"appr360", 1);
168 $rep_search->setCallback(
176 $this->
ctrl->setReturn($this,
'listAppraisees');
177 $this->
ctrl->forwardCommand($rep_search);
181 case 'ilsurveyratergui':
182 $ilTabs->activateTab(
"survey_360_edit_raters");
184 $this->
ctrl->forwardCommand($rater_gui);
195 array $a_finished_ids = null
197 $all_participants = $this->
object->getSurveyParticipants($a_finished_ids,
false,
true);
198 $participant_ids = [];
199 foreach ($all_participants as $participant) {
200 if (isset($participant[
'usr_id'])) {
201 $participant_ids[] = $participant[
'usr_id'];
205 $filtered_participant_ids = $this->
access->filterUserIdsByRbacOrPositionOfCurrentUser(
208 $this->
object->getRefId(),
213 foreach ($all_participants as $username => $user_data) {
214 if (!($user_data[
'usr_id'] ??
false)) {
215 $participants[$username] = $user_data;
217 if (in_array(($user_data[
'usr_id'] ?? -1), $filtered_participant_ids)) {
218 $participants[$username] = $user_data;
222 return $participants;
233 if ($this->
object->get360Mode()) {
241 if ($this->
object->getSkillService() && $skmg_set->isActivated()) {
242 $ilToolbar->addButton(
243 $this->
lng->txt(
"survey_calc_skills"),
244 $this->
ctrl->getLinkTargetByClass(
"ilsurveyskilldeterminationgui"),
253 $ilToolbar->addButton(
254 $this->
lng->txt(
'svy_remove_all_participants'),
255 $this->
ctrl->getLinkTarget($this,
'deleteAllUserData')
258 $ilToolbar->addSeparator();
260 if ($this->
object->isAccessibleWithoutCode()) {
261 $ilToolbar->addButton(
262 $this->
lng->txt(
"svy_invite_participants"),
263 $this->
ctrl->getLinkTargetByClass(
'ilRepositorySearchGUI',
'')
271 foreach ($total as $user_data) {
273 if ($user_data[
"finished"]) {
274 $finished = $user_data[
"finished_tstamp"];
276 if (isset($user_data[
"active_id"])) {
277 $wt = $this->
object->getWorkingtimeForParticipant($user_data[
"active_id"]);
278 $last_access = $this->
object->getLastAccess($user_data[
"active_id"]);
279 $active_id = $user_data[
"active_id"];
287 'name' => $user_data[
"sortname"],
288 'usr_id' => $user_data[
"usr_id"] ?? null,
289 'login' => $user_data[
"login"],
290 'last_access' => $last_access,
291 'workingtime' => $wt,
292 'finished' => $finished,
293 'invited' => $user_data[
"invited"] ??
false 296 $table_gui->setData(
$data);
297 $this->tpl->setVariable(
'ADM_CONTENT', $table_gui->getHTML());
302 $surveySetting =
new ilSetting(
"survey");
304 if ($surveySetting->get(
"anonymous_participants",
false) && $this->
object->hasAnonymizedResults() &&
305 $this->
object->hasAnonymousUserList()) {
306 $end = $this->
object->getEndDate();
307 if ($end && $end < date(
"YmdHis")) {
308 $min = (
int) $surveySetting->get(
"anonymous_participants_min",
'0');
309 $total = $this->
object->getSurveyParticipants();
310 if (!$min || count($total) >= $min) {
328 $this->
lng->txt(
"svy_part_overview"),
329 $this->
ctrl->getLinkTarget($this,
'maintenance')
335 $this->
lng->txt(
"svy_anonymous_participants_svy"),
336 $this->
ctrl->getLinkTarget($this,
'listParticipants')
340 if (!$this->
object->isAccessibleWithoutCode()) {
343 $this->
lng->txt(
"svy_codes"),
344 $this->
ctrl->getLinkTarget($this,
'codes')
349 $data = $this->
object->getExternalCodeRecipients();
353 $this->
lng->txt(
"mail_survey_codes"),
354 $this->
ctrl->getLinkTarget($this,
"mailCodes")
358 $ilTabs->activateSubTab($active);
368 $cgui->setHeaderText($this->
lng->txt(
"confirm_delete_all_user_data"));
369 $cgui->setFormAction($this->
ctrl->getFormAction($this,
"deleteAllUserData"));
370 $cgui->setCancel($this->
lng->txt(
"cancel"),
"cancelDeleteAllUserData");
371 $cgui->setConfirm($this->
lng->txt(
"confirm"),
"confirmDeleteAllUserData");
372 $this->tpl->setContent($cgui->getHTML());
380 if ($this->
access->checkAccess(
'write',
'', $this->object->getRefId())) {
381 $this->
object->deleteAllUserData();
384 foreach ($participants as $something => $participant_data) {
385 $this->
object->removeSelectedSurveyResults([$participant_data[
'active_id']]);
390 if ($this->
object->get360Mode()) {
391 $this->
object->openAllAppraisees();
394 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
"svy_all_user_data_deleted"),
true);
395 $this->
ctrl->redirect($this,
"maintenance");
403 $this->
ctrl->redirect($this,
"maintenance");
411 $user_ids = $this->edit_request->getUserIds();
412 if (count($user_ids) > 0) {
413 $this->
object->removeSelectedSurveyResults(array_filter($user_ids,
static function (
$i):
bool {
414 return is_numeric(
$i);
417 $invitations = array_filter($user_ids,
static function (
$i):
bool {
418 return strpos(
$i,
"inv") === 0;
420 foreach ($invitations as
$i) {
421 $this->invitation_manager->remove($this->
object->getSurveyId(), (
int) substr($i, 3));
424 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
"svy_selected_user_data_deleted"),
true);
426 $this->
ctrl->redirect($this,
"maintenance");
434 $this->tpl->setOnScreenMessage(
'info', $this->
lng->txt(
'msg_cancel'),
true);
435 $this->
ctrl->redirect($this,
"maintenance");
445 $user_ids = $this->edit_request->getUserIds();
446 if (count($user_ids) === 0) {
447 $this->tpl->setOnScreenMessage(
'info', $this->
lng->txt(
'no_checkbox'),
true);
448 $this->
ctrl->redirect($this,
"maintenance");
451 $this->tpl->setOnScreenMessage(
'question', $this->
lng->txt(
"confirm_delete_single_user_data"));
453 $total = $this->
object->getSurveyParticipants(null,
false,
true);
455 foreach ($total as $user_data) {
456 if (in_array(($user_data[
'active_id'] ?? null), $user_ids)
457 || (($user_data[
'invited'] ??
false) && in_array(
"inv" . $user_data[
'usr_id'], $user_ids))) {
458 $last_access = $this->
object->getLastAccess($user_data[
"active_id"] ?? 0);
460 'id' => $user_data[
"active_id"] ?? null,
461 'name' => $user_data[
"sortname"],
462 'login' => $user_data[
"login"] ?? null,
463 'last_access' => $last_access,
464 'finished' => $user_data[
"finished_tstamp"] ?? 0,
465 'usr_id' => $user_data[
"usr_id"] ?? null,
466 'invited' => $user_data[
"invited"] ?? null
470 $table_gui->setData(
$data);
471 $this->tpl->setVariable(
'ADM_CONTENT', $table_gui->getHTML());
479 if (strcmp($this->edit_request->getLang(),
"-1") !== 0) {
481 $ilUser->writePref(
"survey_code_language", $this->edit_request->getLang());
483 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
'language_changed'),
true);
484 $this->
ctrl->redirect($this,
'codes');
498 if ($this->
object->isAccessibleWithoutCode()) {
499 $this->tpl->setOnScreenMessage(
'info', $this->
lng->txt(
"survey_codes_no_anonymization"));
503 $default_lang =
$ilUser->getPref(
"survey_code_language");
506 $ilToolbar->setFormAction($this->
ctrl->getFormAction($this));
511 $ilToolbar->addInputItem($si,
true);
514 $button->setCaption(
"create");
515 $button->setCommand(
"createSurveyCodes");
516 $ilToolbar->addButtonInstance($button);
518 $ilToolbar->addSeparator();
521 $button->setCaption(
"import_from_file");
522 $button->setCommand(
"importExternalMailRecipientsFromFileForm");
523 $ilToolbar->addButtonInstance($button);
526 $button->setCaption(
"import_from_text");
527 $button->setCommand(
"importExternalMailRecipientsFromTextForm");
528 $ilToolbar->addButtonInstance($button);
530 $ilToolbar->addSeparator();
533 $button->setCaption(
"svy_import_codes");
534 $button->setCommand(
"importAccessCodes");
535 $ilToolbar->addButtonInstance($button);
537 $ilToolbar->addSeparator();
539 $languages = $this->
lng->getInstalledLanguages();
541 $this->
lng->loadLanguageModule(
"meta");
542 foreach ($languages as
$lang) {
543 $options[
$lang] = $this->
lng->txt(
"meta_l_" . $lang);
546 $si->setOptions($options);
547 $si->setValue($default_lang);
548 $ilToolbar->addInputItem($si,
true);
551 $button->setCaption(
"set");
552 $button->setCommand(
"setCodeLanguage");
553 $ilToolbar->addButtonInstance($button);
556 $survey_codes = $this->
object->getSurveyCodesTableData(null, $default_lang);
557 $table_gui->setData($survey_codes);
558 $this->tpl->setContent($table_gui->getHTML());
563 $ids = $this->edit_request->getCodeIds();
564 if (count($ids) === 0) {
565 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
'no_checkbox'),
true);
566 $this->
ctrl->redirect($this,
'codes');
573 $table_gui->setData($this->
object->getSurveyCodesTableData($ids));
574 $this->tpl->setContent($table_gui->getHTML());
579 $codes = $this->edit_request->getCodes();
580 $mails = $this->edit_request->getCodesPar(
"mail");
581 $lnames = $this->edit_request->getCodesPar(
"lname");
582 $fnames = $this->edit_request->getCodesPar(
"fname");
583 $sents = $this->edit_request->getCodesPar(
"sent");
584 if (count($codes) === 0) {
585 $this->
ctrl->redirect($this,
'codes');
590 foreach ($codes as
$id) {
591 if (!$this->
object->updateCode(
598 $errors[] = array($mails[$id], $lnames[$id], $fnames[$id]);
602 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
'settings_saved'),
true);
605 $error_message .= sprintf($this->
lng->txt(
"error_save_code"), $error[0], $error[1], $error[2]);
607 $this->tpl->setOnScreenMessage(
'failure', $error_message,
true);
610 $this->
ctrl->redirect($this,
'codes');
615 $codes = $this->edit_request->getCodes();
617 $data = $this->
object->getSurveyCodesTableData($codes);
618 $data = array_filter(
$data,
static function ($item):
bool {
619 return !$item[
"used"];
621 if (count(
$data) > 0) {
623 $cgui->setHeaderText($this->
lng->txt(
"survey_code_delete_sure"));
625 $cgui->setFormAction($this->
ctrl->getFormAction($this));
626 $cgui->setCancel($this->
lng->txt(
"cancel"),
"codes");
627 $cgui->setConfirm($this->
lng->txt(
"confirm"),
"deleteCodes");
629 foreach (
$data as $item) {
630 $title = array($item[
"code"]);
631 $title[] = $item[
"email"] ??
"";
632 $title[] = $item[
"last_name"] ??
"";
633 $title[] = $item[
"first_name"] ??
"";
634 $title = implode(
", ", $title);
636 $cgui->addItem(
"chb_code[]", $item[
"code"], $title);
639 $this->tpl->setContent($cgui->getHTML());
641 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
'svy_please_select_unused_codes'),
true);
642 $this->
ctrl->redirect($this,
'codes');
651 $codes = $this->edit_request->getCodes();
652 if (count($codes) > 0) {
653 foreach ($codes as $survey_code) {
654 $this->
object->deleteSurveyCode($survey_code);
656 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
'codes_deleted'),
true);
658 $this->tpl->setOnScreenMessage(
'info', $this->
lng->txt(
'no_checkbox'),
true);
660 $this->
ctrl->redirect($this,
'codes');
668 $codes = $this->edit_request->getCodes();
669 if (count($codes) > 0) {
670 $export = $this->
object->getSurveyCodesForExport(null, $codes);
673 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
"no_checkbox"),
true);
674 $this->
ctrl->redirect($this,
'codes');
683 $export = $this->
object->getSurveyCodesForExport();
696 $form_import_file->setFormAction($this->
ctrl->getFormAction($this));
697 $form_import_file->setTableWidth(
"100%");
698 $form_import_file->setId(
"codes_import_file");
701 $headerfile->setTitle($this->
lng->txt(
"svy_import_codes"));
702 $form_import_file->addItem($headerfile);
706 $this->
lng->txt(
'svy_import_codes_info'),
707 $this->
lng->txt(
"export_all_survey_codes")
709 $export_file->setSuffixes(array(
"csv"));
710 $export_file->setRequired(
true);
711 $form_import_file->addItem($export_file);
713 $form_import_file->addCommandButton(
"importAccessCodesAction", $this->
lng->txt(
"import"));
714 $form_import_file->addCommandButton(
"codes", $this->
lng->txt(
"cancel"));
716 $this->tpl->setContent($form_import_file->getHTML());
724 if (trim($_FILES[
'codes'][
'tmp_name'])) {
726 foreach ($this->
object->getSurveyCodesTableData() as $item) {
727 $existing[$item[
"code"]] = $item[
"id"];
731 $reader->open($_FILES[
'codes'][
'tmp_name']);
732 foreach ($reader->getCsvAsArray() as $row) {
734 $code = $row[0] ??
"";
742 $last_name = $row[2] ??
"";
743 $first_name = $row[3] ??
"";
747 if (!array_key_exists($code, $existing)) {
763 ,
"lastname" => $last_name
764 ,
"firstname" => $first_name
766 $this->
object->importSurveyCode($code,
$created, $user_data);
770 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
'codes_created'),
true);
773 $this->
ctrl->redirect($this,
'codes');
781 if ($this->edit_request->getNrOfCodes() > 0) {
782 $ids = $this->code_manager->addCodes($this->edit_request->getNrOfCodes());
783 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
'codes_created'),
true);
784 $this->
ctrl->setParameter($this,
"new_ids", implode(
";", $ids));
785 $this->
ctrl->redirect($this,
'editCodes');
787 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
"enter_valid_number_of_codes"),
true);
788 $this->
ctrl->redirect($this,
'codes');
798 $form_gui->setValuesByPost();
800 if ($form_gui->getSavedMessages()->getValue() > 0) {
802 $settings = $this->
object->getUserSettings(
$ilUser->getId(),
'savemessage');
803 $form_gui->getMailMessage()->setValue(
$settings[$form_gui->getSavedMessages()->getValue()][
'value']);
804 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
'msg_message_inserted'));
806 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
'msg_no_message_inserted'));
810 $ilLog->
write(
'Error: ' . $e->getMessage());
812 $this->tpl->setVariable(
"ADM_CONTENT", $form_gui->getHTML());
821 $form_gui->setValuesByPost();
823 if ($form_gui->getSavedMessages()->getValue() > 0) {
824 $this->
object->deleteUserSettings($form_gui->getSavedMessages()->getValue());
826 $form_gui->setValuesByPost();
827 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
'msg_message_deleted'));
829 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
'msg_no_message_deleted'));
833 $ilLog->
write(
'Error: ' . $e->getMessage());
835 $this->tpl->setVariable(
"ADM_CONTENT", $form_gui->getHTML());
843 $mailData[
'm_subject'] =
844 $this->edit_request->getCodeMailPart(
"subject")
845 ?: sprintf($this->
lng->txt(
'default_codes_mail_subject'), $this->
object->getTitle());
846 $mailData[
'm_message'] =
847 $this->edit_request->getCodeMailPart(
"message")
848 ?: $this->
lng->txt(
'default_codes_mail_message');
849 $mailData[
'm_notsent'] =
850 $this->edit_request->getCodeMailPart(
"notsent")
854 $form_gui->setValuesByArray($mailData);
855 $this->tpl->setVariable(
"ADM_CONTENT", $form_gui->getHTML());
866 if ($form_gui->checkInput()) {
867 $url_exists = strpos($this->edit_request->getCodeMailPart(
"message"),
'[url]') !==
false;
869 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
'please_enter_mail_url'));
870 $form_gui->setValuesByPost();
872 if ($this->edit_request->getSaveMessage() === 1) {
874 $title = ($this->edit_request->getSaveMessageTitle())
875 ?:
ilStr::subStr($this->edit_request->getCodeMailPart(
"message"), 0, 40) .
'...';
876 $this->
object->saveUserSettings(
$ilUser->getId(),
'savemessage', $title, $this->edit_request->getCodeMailPart(
"message"));
881 $lang = $this->
lng->getDefaultLanguage();
883 $this->
object->sendCodes(
884 $this->edit_request->getCodeMailPart(
"notsent"),
885 $this->edit_request->getCodeMailPart(
"subject"),
886 nl2br($this->edit_request->getCodeMailPart(
"message")),
889 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
'mail_sent'),
true);
890 $this->
ctrl->redirect($this,
'mailCodes');
893 $form_gui->setValuesByPost();
895 $this->tpl->setVariable(
"ADM_CONTENT", $form_gui->getHTML());
900 if (trim($this->edit_request->getExternalText())) {
901 $data = preg_split(
"/[\n\r]/", $this->edit_request->getExternalText());
902 $fields = explode(
";", array_shift(
$data));
903 if (!in_array(
'email', $fields,
true)) {
904 $this->edit_manager->setExternalText($this->edit_request->getExternalText());
905 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
'err_external_rcp_no_email_column'),
true);
906 $this->
ctrl->redirect($this,
'importExternalMailRecipientsFromTextForm');
908 $existingdata = $this->
object->getExternalCodeRecipients();
909 $existingcolumns = array();
910 if (count($existingdata)) {
911 $first = array_shift($existingdata);
912 foreach ($first as
$key => $value) {
913 $existingcolumns[] =
$key;
916 $founddata = array();
917 foreach (
$data as $datarow) {
918 $row = explode(
";", $datarow);
919 if (count($row) === count($fields)) {
921 foreach ($fields as $idx => $fieldname) {
922 if (count($existingcolumns)) {
923 if (array_key_exists($idx, $existingcolumns)) {
924 $dataset[$fieldname] = $row[$idx];
927 $dataset[$fieldname] = $row[$idx];
930 if ($dataset[
'email'] !==
'') {
933 $dataset[
'lastname'] ??
"",
934 $dataset[
'firstname'] ??
"" 939 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
'external_recipients_imported'),
true);
940 $this->
ctrl->redirect($this,
'codes');
943 $this->
ctrl->redirect($this,
'importExternalMailRecipientsFromTextForm');
954 $code = $this->data_manager->code(
"")
956 ->withLastName($lastname)
957 ->withFirstName($firstname);
958 $code_id = $this->code_manager->add($code);
966 string $a_from_charset =
"",
967 string $a_to_charset =
"UTF-8" 969 if (extension_loaded(
"mbstring")) {
970 if (!$a_from_charset) {
971 mb_detect_order(
"UTF-8, ISO-8859-1, Windows-1252, ASCII");
972 $a_from_charset = mb_detect_encoding($a_string);
974 if (strtoupper($a_from_charset) !== $a_to_charset) {
975 return mb_convert_encoding($a_string, $a_to_charset, $a_from_charset);
984 $bom = pack(
'H*',
'EFBBBF');
985 return preg_replace(
'/^' . $bom .
'/',
'', $a_text);
990 if (trim($_FILES[
'externalmails'][
'tmp_name'])) {
992 $reader->open($_FILES[
'externalmails'][
'tmp_name']);
993 $data = $reader->getCsvAsArray();
994 $fields = array_shift(
$data);
995 foreach ($fields as $idx => $field) {
998 if (!in_array(
'email', $fields,
true)) {
1000 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
'err_external_rcp_no_email'),
true);
1001 $this->
ctrl->redirect($this,
'codes');
1003 $existingdata = $this->
object->getExternalCodeRecipients();
1004 $existingcolumns = array();
1005 if (count($existingdata)) {
1006 $first = array_shift($existingdata);
1007 foreach ($first as
$key => $value) {
1008 $existingcolumns[] =
$key;
1012 $founddata = array();
1013 foreach (
$data as $row) {
1014 if (count($row) === count($fields)) {
1016 foreach ($fields as $idx => $fieldname) {
1020 if (count($existingcolumns)) {
1021 if (array_key_exists($idx, $existingcolumns)) {
1022 $dataset[$fieldname] = $row[$idx];
1025 $dataset[$fieldname] = $row[$idx];
1028 if ($dataset[
'email'] !==
'') {
1029 $founddata[] = $dataset;
1032 $dataset[
'lastname'] ??
"",
1033 $dataset[
'firstname'] ??
"" 1040 if (count($founddata)) {
1041 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
'external_recipients_imported'),
true);
1045 $this->
ctrl->redirect($this,
'codes');
1056 $form_import_file->setFormAction($this->
ctrl->getFormAction($this));
1057 $form_import_file->setTableWidth(
"100%");
1058 $form_import_file->setId(
"codes_import_file");
1061 $headerfile->setTitle($this->
lng->txt(
"import_from_file"));
1062 $form_import_file->addItem($headerfile);
1064 $externalmails =
new ilFileInputGUI($this->
lng->txt(
"externalmails"),
"externalmails");
1065 $externalmails->
setInfo($this->
lng->txt(
'externalmails_info'));
1066 $externalmails->setRequired(
true);
1067 $form_import_file->addItem($externalmails);
1068 if ($ilAccess->checkAccess(
"write",
"", $this->edit_request->getRefId())) {
1069 $form_import_file->addCommandButton(
"importExternalRecipientsFromFile", $this->
lng->txt(
"import"));
1071 if ($ilAccess->checkAccess(
"write",
"", $this->edit_request->getRefId())) {
1072 $form_import_file->addCommandButton(
"codes", $this->
lng->txt(
"cancel"));
1075 $this->tpl->setContent($form_import_file->getHTML());
1086 $form_import_text->setFormAction($this->
ctrl->getFormAction($this));
1087 $form_import_text->setTableWidth(
"100%");
1088 $form_import_text->setId(
"codes_import_text");
1091 $headertext->setTitle($this->
lng->txt(
"import_from_text"));
1092 $form_import_text->addItem($headertext);
1095 $external_text = $this->edit_manager->getExternalText();
1096 if ($external_text !==
"") {
1100 $inp->setValue(
"email;firstname;lastname\n" . $this->
lng->txt(
'mail_import_example2') .
"\n" . $this->
lng->txt(
'mail_import_example3') .
"\n");
1102 $inp->setRequired(
true);
1105 $inp->setInfo($this->
lng->txt(
'externaltext_info'));
1106 $form_import_text->addItem($inp);
1107 $this->edit_manager->setExternalText(
"");
1109 if ($ilAccess->checkAccess(
"write",
"", $this->edit_request->getRefId())) {
1110 $form_import_text->addCommandButton(
"importExternalRecipientsFromText", $this->
lng->txt(
"import"));
1112 if ($ilAccess->checkAccess(
"write",
"", $this->edit_request->getRefId())) {
1113 $form_import_text->addCommandButton(
"codes", $this->
lng->txt(
"cancel"));
1116 $this->tpl->setContent($form_import_text->getHTML());
1131 $this->
ctrl->setParameter($this,
"appr360", 1);
1137 'auto_complete_name' => $this->
lng->txt(
'user'),
1138 'submit_name' => $this->
lng->txt(
'add'),
1139 'add_search' =>
true,
1146 if ($this->
object->getSkillService() && $skmg_set->isActivated()) {
1147 $ilToolbar->addSeparator();
1148 $ilToolbar->addButton(
1149 $lng->
txt(
"survey_calc_skills"),
1150 $ilCtrl->getLinkTargetByClass(
"ilsurveyskilldeterminationgui"),
1155 $ilToolbar->addSeparator();
1156 $ilToolbar->addButton(
1157 $this->
lng->txt(
'svy_delete_all_user_data'),
1158 $this->
ctrl->getLinkTarget($this,
'deleteAllUserData')
1161 $this->
ctrl->setParameter($this,
"appr360",
"");
1164 $tbl->setData($this->
object->getAppraiseesData());
1165 $this->tpl->setContent($tbl->getHTML());
1171 if (count($a_user_ids)) {
1173 foreach (array_unique($a_user_ids) as $user_id) {
1174 $this->
object->addAppraisee($user_id);
1177 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
"settings_saved"),
true);
1179 $this->
ctrl->redirect($this,
"listAppraisees");
1186 $appr_ids = $this->edit_request->getAppraiseeIds();
1187 if (count($appr_ids) === 0) {
1188 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
"select_one"),
true);
1189 $this->
ctrl->redirect($this,
"listAppraisees");
1192 $ilTabs->clearTargets();
1193 $ilTabs->setBackTarget(
1194 $this->
lng->txt(
"btn_back"),
1195 $this->
ctrl->getLinkTarget($this,
"listAppraisees")
1199 $cgui->setHeaderText($this->
lng->txt(
"survey_360_sure_delete_appraises"));
1201 $cgui->setFormAction($this->
ctrl->getFormAction($this,
"deleteAppraisees"));
1202 $cgui->setCancel($this->
lng->txt(
"cancel"),
"listAppraisees");
1203 $cgui->setConfirm($this->
lng->txt(
"confirm"),
"deleteAppraisees");
1205 $data = $this->
object->getAppraiseesData();
1208 foreach ($appr_ids as
$id) {
1209 if (isset(
$data[$id]) && !
$data[$id][
"closed"]) {
1216 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
"select_one"),
true);
1217 $this->
ctrl->redirect($this,
"listAppraisees");
1220 $this->tpl->setContent($cgui->getHTML());
1225 $appr_ids = $this->edit_request->getAppraiseeIds();
1226 if (count($appr_ids) > 0) {
1227 $data = $this->
object->getAppraiseesData();
1229 foreach ($appr_ids as
$id) {
1231 if (isset(
$data[$id]) && !
$data[$id][
"closed"]) {
1232 $this->
object->deleteAppraisee($id);
1236 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
"settings_saved"),
true);
1239 $this->
ctrl->redirect($this,
"listAppraisees");
1247 if ($ilAccess->checkAccess(
"write",
"", $this->ref_id)) {
1248 $appr_id = $this->edit_request->getAppraiseeId();
1250 $this->
ctrl->redirect($this,
"listAppraisees");
1253 } elseif ($this->feature_config->usesAppraisees() &&
1254 $this->
object->get360SelfRaters() &&
1255 $this->
object->isAppraisee(
$ilUser->getId()) &&
1259 $this->
ctrl->redirect($this->parent_gui,
"infoScreen");
1266 $all_data = $this->
object->getRatersData($appr_id);
1268 $recs = json_decode(base64_decode($this->edit_request->getRecipients()));
1269 foreach ($all_data as $rec_id => $rater) {
1271 if (($rater[
"login"] !=
"" && in_array($rater[
"login"], $recs,
true)) ||
1272 ($rater[
"email"] !=
"" && in_array($rater[
"email"], $recs,
true))) {
1276 $this->
object->set360RaterSent(
1278 strpos($rec_id,
"a") === 0 ? 0 : (
int) substr($rec_id, 1),
1279 strpos($rec_id,
"u") === 0 ? 0 : (
int) substr($rec_id, 1)
1283 $this->
ctrl->setParameter($this,
"appr_id", $appr_id);
1284 $this->
ctrl->redirect($this,
"editRaters");
1289 if ($this->edit_request->getReturnedFromMail() === 1) {
1296 $ilTabs->activateTab(
"survey_360_edit_raters");
1299 $has_write = $ilAccess->checkAccess(
"write",
"", $this->ref_id);
1301 $ilTabs->clearTargets();
1302 $ilTabs->setBackTarget(
1303 $this->
lng->txt(
"btn_back"),
1304 $this->
ctrl->getLinkTarget($this,
"listAppraisees")
1308 $this->
ctrl->setParameter($this,
"appr_id", $appr_id);
1309 $this->
ctrl->setParameter($this,
"rate360", 1);
1311 $ilToolbar->addButton(
1312 $this->
lng->txt(
"svy_add_rater"),
1313 $this->
ctrl->getLinkTargetByClass(
"ilSurveyRaterGUI",
"add")
1321 $this->tpl->setContent($tbl->getHTML());
1331 $this->
ctrl->setParameter($this,
"appr_id", $appr_id);
1333 $has_write = $ilAccess->checkAccess(
"write",
"", $this->ref_id);
1335 $ilTabs->clearTargets();
1336 $ilTabs->setBackTarget(
1337 $this->
lng->txt(
"btn_back"),
1338 $this->
ctrl->getLinkTarget($this,
"editRaters")
1346 $this->tpl->setContent($a_form->getHTML());
1353 $form->setFormAction($this->
ctrl->getFormAction($this,
"addExternalRater"));
1354 $form->setTitle($this->
lng->txt(
"survey_360_add_external_rater") .
1357 $email =
new ilEmailInputGUI($this->
lng->txt(
"email"),
"email");
1358 $email->setRequired(
true);
1362 $lname->setSize(30);
1363 $form->addItem($lname);
1366 $fname->setSize(30);
1367 $form->addItem($fname);
1369 $form->addCommandButton(
"addExternalRater", $this->
lng->txt(
"save"));
1370 $form->addCommandButton(
"editRaters", $this->
lng->txt(
"cancel"));
1377 $appr_id = $this->edit_request->getAppraiseeId();
1379 $this->
ctrl->redirect($this,
"listAppraisees");
1382 $this->
ctrl->setParameter($this,
"appr_id", $appr_id);
1385 if ($form->checkInput()) {
1387 $form->getInput(
"email"),
1388 $form->getInput(
"lname"),
1389 $form->getInput(
"fname")
1392 $this->
object->addRater($appr_id, 0, $code_id);
1394 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
"settings_saved"),
true);
1395 $this->
ctrl->setParameter($this,
"appr_id", $appr_id);
1396 $this->
ctrl->redirect($this,
"editRaters");
1399 $form->setValuesByPost();
1411 if (count($a_user_ids)) {
1413 foreach (array_unique($a_user_ids) as $user_id) {
1414 if ($ilAccess->checkAccess(
"write",
"", $this->ref_id) ||
1415 $this->
object->get360SelfEvaluation() ||
1416 $user_id !=
$ilUser->getId()) {
1417 if ($appr_id != $user_id) {
1418 $this->
object->addRater($appr_id, $user_id);
1419 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
"settings_saved"),
true);
1421 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
"svy_appraisses_cannot_be_raters"),
true);
1427 $this->
ctrl->setParameter($this,
"appr_id", $appr_id);
1428 $this->
ctrl->redirect($this,
"editRaters");
1435 $rater_ids = $this->edit_request->getRaterIds();
1437 $this->
ctrl->setParameter($this,
"appr_id", $appr_id);
1438 if (count($rater_ids) === 0) {
1439 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
"select_one"),
true);
1440 $this->
ctrl->redirect($this,
"editRaters");
1443 $ilTabs->clearTargets();
1444 $ilTabs->setBackTarget(
1445 $this->
lng->txt(
"btn_back"),
1446 $this->
ctrl->getLinkTarget($this,
"editRaters")
1450 $cgui->setHeaderText(sprintf(
1451 $this->
lng->txt(
"survey_360_sure_delete_raters"),
1455 $cgui->setFormAction($this->
ctrl->getFormAction($this,
"deleteRaters"));
1456 $cgui->setCancel($this->
lng->txt(
"cancel"),
"editRaters");
1457 $cgui->setConfirm($this->
lng->txt(
"confirm"),
"deleteRaters");
1459 $data = $this->
object->getRatersData($appr_id);
1461 foreach ($rater_ids as
$id) {
1462 if (isset(
$data[$id])) {
1463 $cgui->addItem(
"rtr_id[]", $id,
$data[$id][
"lastname"] .
", " .
1464 $data[$id][
"firstname"] .
" (" .
$data[$id][
"email"] .
")");
1468 $this->tpl->setContent($cgui->getHTML());
1474 $this->
ctrl->setParameter($this,
"appr_id", $appr_id);
1476 $rater_ids = $this->edit_request->getRaterIds();
1477 if (count($rater_ids) > 0) {
1478 $data = $this->
object->getRatersData($appr_id);
1480 foreach ($rater_ids as
$id) {
1481 if (isset(
$data[$id])) {
1482 if (strpos($id,
"u") === 0) {
1483 $this->
object->deleteRater($appr_id, substr($id, 1));
1485 $this->
object->deleteRater($appr_id, 0, substr($id, 1));
1490 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
"settings_saved"),
true);
1493 $this->
ctrl->redirect($this,
"editRaters");
1500 if ($this->
object->get360SelfAppraisee() &&
1501 !$this->
object->isAppraisee(
$ilUser->getId())) {
1502 $this->
object->addAppraisee(
$ilUser->getId());
1505 $this->
ctrl->redirect($this->parent_gui,
"infoScreen");
1513 $form->setFormAction($this->
ctrl->getFormAction($this,
"mailRatersAction"));
1514 $form->setTitle($this->
lng->txt(
'compose'));
1516 $all_data = $this->
object->getRatersData($appr_id);
1517 $rec_data = array();
1518 foreach ($rec_ids as $rec_id) {
1519 if (isset($all_data[$rec_id])) {
1520 $rec_data[] = $all_data[$rec_id][
"lastname"] .
", " .
1521 $all_data[$rec_id][
"firstname"] .
1522 " (" . $all_data[$rec_id][
"email"] .
")";
1527 $rec->
setHtml(implode(
"<br />", $rec_data));
1528 $form->addItem($rec);
1531 $subject->setSize(50);
1532 $subject->setRequired(
true);
1533 $form->addItem($subject);
1535 $existingdata = $this->
object->getExternalCodeRecipients();
1536 $existingcolumns = array();
1537 if (count($existingdata)) {
1538 $first = array_shift($existingdata);
1539 foreach ($first as
$key => $value) {
1540 if (strcmp(
$key,
'code') !== 0 && strcmp(
$key,
'email') !== 0 && strcmp(
$key,
'sent') !== 0) {
1541 $existingcolumns[] =
'[' .
$key .
']';
1546 $mailmessage_u =
new ilTextAreaInputGUI($this->
lng->txt(
'survey_360_rater_message_content_registered'),
'message_u');
1548 $mailmessage_u->setCols(80);
1549 $mailmessage_u->setRows(10);
1550 $form->addItem($mailmessage_u);
1552 $mailmessage_a =
new ilTextAreaInputGUI($this->
lng->txt(
'survey_360_rater_message_content_anonymous'),
'message_a');
1554 $mailmessage_a->setCols(80);
1555 $mailmessage_a->setRows(10);
1556 $mailmessage_a->setInfo(sprintf($this->
lng->txt(
'message_content_info'), implode(
', ', $existingcolumns)));
1557 $form->addItem($mailmessage_a);
1560 $recf->setValue(implode(
";", $rec_ids));
1561 $form->addItem($recf);
1563 $form->addCommandButton(
"mailRatersAction", $this->
lng->txt(
"send"));
1564 $form->addCommandButton(
"editRaters", $this->
lng->txt(
"cancel"));
1566 $subject->setValue(sprintf($this->
lng->txt(
'survey_360_rater_subject_default'), $this->
object->getTitle()));
1567 $mailmessage_u->setValue($this->
lng->txt(
'survey_360_rater_message_content_registered_default'));
1568 $mailmessage_a->setValue($this->
lng->txt(
'survey_360_rater_message_content_anonymous_default'));
1576 $all_data = $this->
object->getRatersData($appr_id);
1577 $this->
ctrl->setParameter($this,
"appr_id", $appr_id);
1579 $raters = $this->edit_request->getRaterIds();
1582 $external_rater =
false;
1584 foreach ($raters as
$id) {
1585 if (isset($all_data[$id])) {
1586 if ($all_data[$id][
"login"] !=
"") {
1587 $rec[] = $all_data[
$id][
"login"];
1588 } elseif ($all_data[$id][
"email"] !=
"") {
1589 $rec[] = $all_data[
$id][
"email"];
1590 $external_rater =
true;
1591 $rater_id = $all_data[
$id][
"user_id"];
1595 if ($external_rater && count($rec) > 1) {
1596 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
"svy_only_max_one_external_rater"),
true);
1597 $this->
ctrl->redirect($this,
"editRaters");
1603 $contextParameters = [
1604 'ref_id' => $this->
object->getRefId(),
1606 'appr_id' => $appr_id,
1607 'rater_id' => $rater_id,
1615 'recipients' => base64_encode(json_encode($rec, JSON_THROW_ON_ERROR)),
1619 'sig' => rawurlencode(base64_encode(
"\n\n" . $this->
lng->txt(
"svy_link_to_svy") .
": [SURVEY_LINK]"))
1629 $rater_ids = $this->edit_request->getRaterIds();
1632 $this->
ctrl->setParameter($this,
"appr_id", $appr_id);
1634 if (count($rater_ids) === 0) {
1635 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
"select_one"),
true);
1636 $this->
ctrl->redirect($this,
"editRaters");
1642 $ilTabs->clearTargets();
1643 $ilTabs->setBackTarget(
1644 $this->
lng->txt(
"btn_back"),
1645 $this->
ctrl->getLinkTarget($this,
"editRaters")
1648 $this->tpl->setContent($a_form->getHTML());
1655 $this->
ctrl->setParameter($this,
"appr_id", $appr_id);
1657 $rec_ids = $this->edit_request->getRaterIds();
1658 if (count($rec_ids) === 0) {
1659 $this->
ctrl->redirect($this,
"editRaters");
1663 if ($form->checkInput()) {
1664 $txt_u = $form->getInput(
"message_u");
1665 $txt_a = $form->getInput(
"message_a");
1666 $subj = $form->getInput(
"subject");
1669 $sender_id = (trim(
$ilUser->getEmail()))
1673 $all_data = $this->
object->getRatersData($appr_id);
1674 foreach ($rec_ids as $rec_id) {
1675 if (isset($all_data[$rec_id])) {
1676 $user = $all_data[$rec_id];
1679 if (strpos($rec_id,
"a") === 0) {
1681 $url = $user[
"href"];
1682 $rcp = $user[
"email"];
1687 $user[
"code"] = $this->
lng->txt(
"survey_code_mail_on_demand");
1689 $rcp = $user[
"login"];
1692 $mytxt = str_replace(
1693 [
"[lastname]",
"[firstname]",
"[url]",
"[code]"],
1694 [$user[
"lastname"], $user[
"firstname"],
$url, $user[
"code"]],
1698 $mail =
new ilMail($sender_id);
1708 $this->
object->set360RaterSent(
1710 (strpos($rec_id,
"a") === 0) ? 0 : (
int) substr($rec_id, 1),
1711 (strpos($rec_id,
"u") === 0) ? 0 : (
int) substr($rec_id, 1)
1716 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
"mail_sent"),
true);
1717 $this->
ctrl->redirect($this,
"editRaters");
1720 $form->setValuesByPost();
1731 $ilTabs->setBackTarget(
1732 $this->
lng->txt(
"menuback"),
1733 $this->
ctrl->getLinkTarget($this->parent_gui,
"infoScreen")
1737 $this->
ctrl->redirect($this->parent_gui,
"infoScreen");
1741 $cgui->setHeaderText($this->
lng->txt(
"survey_360_sure_appraisee_close"));
1743 $cgui->setFormAction($this->
ctrl->getFormAction($this,
"appraiseeClose"));
1744 $cgui->setCancel($this->
lng->txt(
"cancel"),
"confirmAppraiseeCloseCancel");
1745 $cgui->setConfirm($this->
lng->txt(
"confirm"),
"appraiseeClose");
1752 $this->
ctrl->redirect($this->parent_gui,
"infoScreen");
1760 $this->
ctrl->redirect($this->parent_gui,
"infoScreen");
1763 $this->
object->closeAppraisee(
$ilUser->getId());
1764 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
"survey_360_appraisee_close_action_success"),
true);
1765 $this->
ctrl->redirect($this->parent_gui,
"infoScreen");
1774 $appr_ids = $this->edit_request->getAppraiseeIds();
1776 if (count($appr_ids) === 0) {
1777 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
"select_one"),
true);
1778 $this->
ctrl->redirect($this,
"listAppraisees");
1782 $cgui->setHeaderText($this->
lng->txt(
"survey_360_sure_appraisee_close_admin"));
1784 $cgui->setFormAction($this->
ctrl->getFormAction($this,
"adminAppraiseesClose"));
1785 $cgui->setCancel($this->
lng->txt(
"cancel"),
"listAppraisees");
1786 $cgui->setConfirm($this->
lng->txt(
"confirm"),
"adminAppraiseesClose");
1788 foreach ($appr_ids as $appr_id) {
1799 $appr_ids = $this->edit_request->getAppraiseeIds();
1801 if (count($appr_ids) === 0) {
1802 $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
"select_one"),
true);
1803 $this->
ctrl->redirect($this,
"listAppraisees");
1806 $appr_data = $this->
object->getAppraiseesData();
1807 foreach ($appr_ids as $appr_id) {
1808 if (isset($appr_data[$appr_id]) && !$appr_data[$appr_id][
"closed"]) {
1809 $this->
object->closeAppraisee($appr_id);
1813 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
"survey_360_appraisee_close_action_success_admin"),
true);
1814 $this->
ctrl->redirect($this,
"listAppraisees");
1822 $this->
ctrl->redirect($this,
"maintenance");
1829 $button->setCaption(
"print");
1830 $button->setOnClick(
"window.print(); return false;");
1831 $button->setOmitPreventDoubleSubmission(
true);
1832 $ilToolbar->addButtonInstance($button);
1835 $this->tpl->setContent($tbl->getHTML());
1847 foreach ($user_ids as $user_id) {
1848 $this->invitation_manager->add($this->
object->getSurveyId(), $user_id);
1850 $this->tpl->setOnScreenMessage(
'success', $lng->
txt(
"svy_users_invited"),
true);
1851 $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)
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:
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...
redirect(object $a_gui_obj, string $a_cmd=null, string $a_anchor=null, bool $is_async=false)
addExternalRaterFormObject(ilPropertyFormGUI $a_form=null)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
write(string $a_message, $a_level=ilLogLevel::INFO)
write log message
ilObjSurveyGUI $parent_gui
maintenanceObject()
Participants maintenance.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
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")
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()
static getASCIIFilename(string $a_filename)
setValue(string $a_value)
filterSurveyParticipantsByAccess(array $a_finished_ids=null)
confirmDeleteRatersObject()
cancelDeleteAllUserDataObject()
Cancels delete of all user data in maintenance.
addSubTab(string $a_id, string $a_text, string $a_link, string $a_frame="")
setContent(string $a_html)
Sets content for standard template.
deleteCodesConfirmObject()
importExternalRecipientsFromFileObject()
static _getStaticLink(?int $a_ref_id, string $a_type='', bool $a_fallback_goto=true, string $append="")
Get static link.
deleteCodesObject()
Delete a list of survey codes.
ILIAS Survey Editing EditManager $edit_manager
ILIAS Survey InternalService $survey_service
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...
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)
ILIAS Survey InternalDataService $data_manager
createSurveyCodesObject()
Create access codes for the survey.
confirmDeleteSelectedUserDataObject()
Deletes all user data for the test object.
deleteSavedMessageObject()
confirmAdminAppraiseesCloseObject()
importExternalMailRecipientsFromFileFormObject()
__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
importExternalRecipientsFromTextObject()
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
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")
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()
mailRatersObjectOld(ilPropertyFormGUI $a_form=null)
ILIAS Survey Code CodeManager $code_manager
addAppraisee(array $a_user_ids)
ILIAS Survey Editing EditingGUIRequest $edit_request
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
setParticipantSubTabs(string $active)
confirmAppraiseeCloseCancelObject()