25 $this->parent_gui = $a_parent_gui;
26 $this->
object = $this->parent_gui->object;
27 $this->ref_id = $this->
object->getRefId();
28 $this->has_write = (bool)$a_has_write_access;
39 include_once
"Modules/Survey/exceptions/class.ilSurveyException.php";
48 $cmd = $ilCtrl->getCmd(
"maintenance");
49 $next_class = $this->ctrl->getNextClass($this);
53 case 'ilrepositorysearchgui':
54 include_once(
'./Services/Search/classes/class.ilRepositorySearchGUI.php');
57 if(!$_REQUEST[
"appr360"] && !$_REQUEST[
"rate360"])
59 $ilTabs->clearTargets();
60 $ilTabs->setBackTarget($this->lng->txt(
"btn_back"),
61 $this->ctrl->getLinkTarget($this,
"invite"));
63 $rep_search->setCallback($this,
64 'inviteUserGroupObject',
70 $this->ctrl->setReturn($this,
'invite');
71 $this->ctrl->forwardCommand($rep_search);
72 $ilTabs->setTabActive(
'invitation');
74 else if($_REQUEST[
"rate360"])
76 $ilTabs->clearTargets();
77 $ilTabs->setBackTarget($this->lng->txt(
"btn_back"),
78 $this->ctrl->getLinkTarget($this,
"listAppraisees"));
80 $this->ctrl->setParameter($this,
"rate360", 1);
81 $this->ctrl->saveParameter($this,
"appr_id");
83 $rep_search->setCallback($this,
90 $this->ctrl->setReturn($this,
'editRaters');
91 $this->ctrl->forwardCommand($rep_search);
95 $ilTabs->activateTab(
"survey_360_appraisees");
96 $this->ctrl->setParameter($this,
"appr360", 1);
98 $rep_search->setCallback($this,
105 $this->ctrl->setReturn($this,
'listAppraisees');
106 $this->ctrl->forwardCommand($rep_search);
124 if($this->
object->get360Mode())
132 $ilToolbar->addButton($this->lng->txt(
'svy_delete_all_user_data'),
133 $this->ctrl->getLinkTarget($this,
'deleteAllUserData'));
135 include_once
"./Modules/Survey/classes/tables/class.ilSurveyMaintenanceTableGUI.php";
137 $total =& $this->
object->getSurveyParticipants();
139 foreach (
$total as $user_data)
142 if((
bool)$user_data[
"finished"])
144 $finished = $user_data[
"finished_tstamp"];
146 $wt = $this->
object->getWorkingtimeForParticipant($user_data[
"active_id"]);
147 $last_access = $this->
object->getLastAccess($user_data[
"active_id"]);
149 'id' => $user_data[
"active_id"],
150 'name' => $user_data[
"sortname"],
151 'login' => $user_data[
"login"],
152 'last_access' => $last_access,
153 'workingtime' => $wt,
154 'finished' => $finished
157 $table_gui->setData(
$data);
158 $this->tpl->setVariable(
'ADM_CONTENT', $table_gui->getHTML());
163 $surveySetting =
new ilSetting(
"survey");
164 if($surveySetting->get(
"anonymous_participants",
false))
166 if($this->
object->hasAnonymizedResults() &&
167 $this->
object->hasAnonymousUserList())
169 $end = $this->
object->getEndDate();
170 if($end && $end <
date(
"YmdHis"))
172 $min = $surveySetting->get(
"anonymous_participants_min", 0);
173 $total = $this->
object->getSurveyParticipants();
174 if(!$min ||
sizeof(
$total) >= $min)
196 $ilTabs->addSubTabTarget(
"results",
197 $this->ctrl->getLinkTarget($this,
'maintenance'),
198 array(
"maintenance",
"deleteAllUserData"),
203 $ilTabs->addSubTabTarget(
"svy_anonymous_participants_svy",
204 $this->ctrl->getLinkTarget($this,
'listParticipants'),
205 array(
"listParticipants"),
209 if(!$this->
object->isAccessibleWithoutCode())
211 $ilTabs->addSubTabTarget(
"codes",
212 $this->ctrl->getLinkTarget($this,
'codes'),
213 array(
"codes",
"editCodes",
"createSurveyCodes",
"setCodeLanguage",
"deleteCodes",
"exportCodes",
214 "importExternalMailRecipientsFromFileForm",
"importExternalMailRecipientsFromTextForm"),
219 $hidden_tabs =
array();
220 $template = $this->
object->getTemplate();
223 include_once
"Services/Administration/classes/class.ilSettingsTemplate.php";
225 $hidden_tabs = $template->getHiddenTabs();
229 if(!in_array(
"invitation", $hidden_tabs))
231 $ilTabs->addSubTabTarget(
"invitation",
232 $this->ctrl->getLinkTarget($this,
'invite'),
233 array(
"invite",
"saveInvitationStatus",
234 "inviteUserGroup",
"disinviteUserGroup"),
238 $data = $this->
object->getExternalCodeRecipients();
241 $ilTabs->addSubTabTarget
244 $this->ctrl->getLinkTarget($this,
"mailCodes"),
245 array(
"mailCodes",
"sendCodesMail",
"insertSavedMessage",
"deleteSavedMessage"),
257 if (is_array(
$_POST[
"user_select"]))
259 foreach (
$_POST[
"user_select"] as $user_id)
261 $this->
object->disinviteUser($user_id);
265 $this->ctrl->redirect($this,
"invite");
275 if (is_array($a_user_ids))
277 foreach ($a_user_ids as $user_id)
279 $this->
object->inviteUser($user_id);
293 $this->ctrl->redirect($this,
"invite");
301 $mode =
$_POST[
'invitation'];
314 $this->
object->saveToDb();
316 $this->ctrl->redirect($this,
"invite");
332 include_once(
"./Services/Form/classes/class.ilPropertyFormGUI.php");
334 $form->setFormAction($this->ctrl->getFormAction($this));
335 $form->setTableWidth(
"500");
336 $form->setId(
"invite");
340 $header->setTitle($this->lng->txt(
"invitation"));
345 $invitation->
setInfo($this->lng->txt(
'invitation_mode_desc'));
346 $invitation->addOption(
new ilRadioOption($this->lng->txt(
"invitation_off"), 0,
''));
347 $surveySetting =
new ilSetting(
"survey");
348 if ($surveySetting->get(
"unlimited_invitation"))
350 $invitation->addOption(
new ilRadioOption($this->lng->txt(
"unlimited_users"), 1,
''));
352 $invitation->addOption(
new ilRadioOption($this->lng->txt(
"predefined_users"), 2,
''));
354 if ($this->
object->getInvitation())
356 $inv = $this->
object->getInvitationMode() + 1;
358 $invitation->setValue($inv);
359 $form->addItem($invitation);
361 $form->addCommandButton(
"saveInvitationStatus", $this->lng->txt(
"save"));
363 $this->tpl->addBlockFile(
"ADM_CONTENT",
"adm_content",
"tpl.il_svy_svy_invite.html",
"Modules/Survey");
364 $this->tpl->setVariable(
"INVITATION_TABLE", $form->getHTML());
366 if ($this->
object->getInvitation() && $this->
object->getInvitationMode() == 1)
369 include_once
'./Services/Search/classes/class.ilRepositorySearchGUI.php';
374 'auto_complete_name' => $lng->txt(
'user'),
375 'submit_name' => $lng->txt(
'svy_invite_action')
379 $ilToolbar->addSpacer();
381 $ilToolbar->addButton($this->lng->txt(
"svy_search_users"),
382 $this->ctrl->getLinkTargetByClass(
'ilRepositorySearchGUI',
''));
384 $this->tpl->setVariable(
"ADM_CONTENT", $form->getHTML());
386 $invited_users = $this->
object->getUserData($this->
object->getInvitedUsers());
387 include_once
"./Modules/Survey/classes/tables/class.ilSurveyInvitedUsersTableGUI.php";
389 $table_gui->setData($invited_users);
390 $this->tpl->setVariable(
'TBL_INVITED_USERS', $table_gui->getHTML());
399 include_once
"Services/Utilities/classes/class.ilConfirmationGUI.php";
401 $cgui->setHeaderText($this->lng->txt(
"confirm_delete_all_user_data"));
402 $cgui->setFormAction($this->ctrl->getFormAction($this,
"deleteAllUserData"));
403 $cgui->setCancel($this->lng->txt(
"cancel"),
"cancelDeleteAllUserData");
404 $cgui->setConfirm($this->lng->txt(
"confirm"),
"confirmDeleteAllUserData");
405 $this->tpl->setContent($cgui->getHTML());
413 $this->
object->deleteAllUserData();
416 if($this->
object->get360Mode())
418 $this->
object->openAllAppraisees();
422 $this->ctrl->redirect($this,
"maintenance");
430 $this->ctrl->redirect($this,
"maintenance");
438 $this->
object->removeSelectedSurveyResults(
$_POST[
"chbUser"]);
440 $this->ctrl->redirect($this,
"maintenance");
449 $this->ctrl->redirect($this,
"maintenance");
459 if (count(
$_POST[
"chbUser"]) == 0)
462 $this->ctrl->redirect($this,
"maintenance");
466 include_once
"./Modules/Survey/classes/tables/class.ilSurveyMaintenanceTableGUI.php";
468 $total =& $this->
object->getSurveyParticipants();
470 foreach (
$total as $user_data)
472 if (in_array($user_data[
'active_id'],
$_POST[
'chbUser']))
474 $last_access = $this->
object->getLastAccess($user_data[
"active_id"]);
476 'id' => $user_data[
"active_id"],
477 'name' => $user_data[
"sortname"],
478 'login' => $user_data[
"login"],
479 'last_access' => $last_access
483 $table_gui->setData(
$data);
484 $this->tpl->setVariable(
'ADM_CONTENT', $table_gui->getHTML());
492 if (strcmp(
$_POST[
"lang"],
"-1") != 0)
495 $ilUser->writePref(
"survey_code_language",
$_POST[
"lang"]);
498 $this->ctrl->redirect($this,
'codes');
511 if ($this->
object->isAccessibleWithoutCode())
516 $default_lang = $ilUser->getPref(
"survey_code_language");
519 $ilToolbar->setFormAction($this->ctrl->getFormAction($this));
521 include_once(
"./Services/Form/classes/class.ilTextInputGUI.php");
525 $ilToolbar->addInputItem(
$si,
true);
527 include_once
"Services/UIComponent/Button/classes/class.ilSubmitButton.php";
530 $button->setCaption(
"create");
531 $button->setCommand(
"createSurveyCodes");
532 $ilToolbar->addButtonInstance($button);
534 $ilToolbar->addSeparator();
537 $button->setCaption(
"import_from_file");
538 $button->setCommand(
"importExternalMailRecipientsFromFileForm");
539 $ilToolbar->addButtonInstance($button);
542 $button->setCaption(
"import_from_text");
543 $button->setCommand(
"importExternalMailRecipientsFromTextForm");
544 $ilToolbar->addButtonInstance($button);
546 $ilToolbar->addSeparator();
549 $button->setCaption(
"svy_import_codes");
550 $button->setCommand(
"importAccessCodes");
551 $ilToolbar->addButtonInstance($button);
553 $ilToolbar->addSeparator();
555 $languages = $this->lng->getInstalledLanguages();
557 $this->lng->loadLanguageModule(
"meta");
562 include_once(
"./Services/Form/classes/class.ilSelectInputGUI.php");
565 $si->setValue($default_lang);
566 $ilToolbar->addInputItem(
$si,
true);
569 $button->setCaption(
"set");
570 $button->setCommand(
"setCodeLanguage");
571 $ilToolbar->addButtonInstance($button);
573 include_once
"./Modules/Survey/classes/tables/class.ilSurveyCodesTableGUI.php";
575 $survey_codes = $this->
object->getSurveyCodesTableData(null, $default_lang);
576 $table_gui->setData($survey_codes);
577 $this->tpl->setContent($table_gui->getHTML());
582 if(isset(
$_GET[
"new_ids"]))
584 $ids = explode(
";",
$_GET[
"new_ids"]);
593 $this->ctrl->redirect($this,
'codes');
599 include_once
"./Modules/Survey/classes/tables/class.ilSurveyCodesEditTableGUI.php";
601 $table_gui->setData($this->
object->getSurveyCodesTableData($ids));
602 $this->tpl->setContent($table_gui->getHTML());
607 if(!is_array(
$_POST[
"chb_code"]))
609 $this->ctrl->redirect($this,
'codes');
614 foreach(
$_POST[
"chb_code"] as $id)
616 if(!$this->
object->updateCode($id,
634 $error_message .= sprintf($this->lng->txt(
"error_save_code"), $error[0],$error[1],$error[2]);
639 $this->ctrl->redirect($this,
'codes');
644 if (is_array(
$_POST[
"chb_code"]) && (count(
$_POST[
"chb_code"]) > 0))
646 include_once(
"./Services/Utilities/classes/class.ilConfirmationGUI.php");
648 $cgui->setHeaderText($this->lng->txt(
"survey_code_delete_sure"));
650 $cgui->setFormAction($this->ctrl->getFormAction($this));
651 $cgui->setCancel($this->lng->txt(
"cancel"),
"codes");
652 $cgui->setConfirm($this->lng->txt(
"confirm"),
"deleteCodes");
654 $data = $this->
object->getSurveyCodesTableData(
$_POST[
"chb_code"]);
656 foreach (
$data as $item)
664 $item[
"email"] ?
$title[] = $item[
"email"] : null;
665 $item[
"last_name"] ? $title[] = $item[
"last_name"] : null;
666 $item[
"first_name"] ? $title[] = $item[
"first_name"] : null;
667 $title = implode(
", ", $title);
669 $cgui->addItem(
"chb_code[]", $item[
"code"], $title);
672 $this->tpl->setContent($cgui->getHTML());
677 $this->ctrl->redirect($this,
'codes');
686 if (is_array(
$_POST[
"chb_code"]) && (count(
$_POST[
"chb_code"]) > 0))
688 foreach (
$_POST[
"chb_code"] as $survey_code)
690 $this->
object->deleteSurveyCode($survey_code);
698 $this->ctrl->redirect($this,
'codes');
706 if (is_array(
$_POST[
"chb_code"]) && (count(
$_POST[
"chb_code"]) > 0))
708 $export = $this->
object->getSurveyCodesForExport(null,
$_POST[
"chb_code"]);
714 $this->ctrl->redirect($this,
'codes');
723 $export = $this->
object->getSurveyCodesForExport();
735 include_once(
"./Services/Form/classes/class.ilPropertyFormGUI.php");
737 $form_import_file->setFormAction($this->ctrl->getFormAction($this));
738 $form_import_file->setTableWidth(
"100%");
739 $form_import_file->setId(
"codes_import_file");
742 $headerfile->setTitle($this->lng->txt(
"svy_import_codes"));
743 $form_import_file->addItem($headerfile);
745 $export_file =
new ilFileInputGUI($this->lng->txt(
"codes"),
"codes");
746 $export_file->
setInfo(sprintf($this->lng->txt(
'svy_import_codes_info'),
747 $this->lng->txt(
"export_all_survey_codes")));
748 $export_file->setSuffixes(
array(
"csv"));
749 $export_file->setRequired(
true);
750 $form_import_file->addItem($export_file);
752 $form_import_file->addCommandButton(
"importAccessCodesAction", $this->lng->txt(
"import"));
753 $form_import_file->addCommandButton(
"codes", $this->lng->txt(
"cancel"));
755 $this->tpl->setContent($form_import_file->getHTML());
763 if(trim($_FILES[
'codes'][
'tmp_name']))
766 foreach($this->
object->getSurveyCodesTableData() as $item)
768 $existing[$item[
"code"]] = $item[
"id"];
771 include_once
"./Services/Utilities/classes/class.ilCSVReader.php";
773 $reader->open($_FILES[
'codes'][
'tmp_name']);
774 foreach(
$reader->getDataArrayFromCSVFile() as
$row)
776 if(
sizeof(
$row) == 8)
779 list(
$code, $email, $last_name, $first_name, $created, $used, $sent,
$url) =
$row;
782 if(!array_key_exists(
$code, $existing))
785 if(strlen($created) == 10)
797 ,
"lastname" => $last_name
798 ,
"firstname" => $first_name
800 $this->
object->importSurveyCode(
$code, $created, $user_data);
808 $this->ctrl->redirect($this,
'codes');
816 if (is_numeric(
$_POST[
"nrOfCodes"]))
818 $ids = $this->
object->createSurveyCodes(
$_POST[
"nrOfCodes"]);
820 $this->ctrl->setParameter($this,
"new_ids", implode(
";", $ids));
821 $this->ctrl->redirect($this,
'editCodes');
826 $this->ctrl->redirect($this,
'codes');
835 include_once(
"./Modules/Survey/classes/forms/FormMailCodesGUI.php");
837 $form_gui->setValuesByPost();
840 if ($form_gui->getSavedMessages()->getValue() > 0)
843 $settings = $this->
object->getUserSettings($ilUser->getId(),
'savemessage');
844 $form_gui->getMailMessage()->setValue($settings[$form_gui->getSavedMessages()->getValue()][
'value']);
855 $ilLog->write(
'Error: ' + $e->getMessage());
857 $this->tpl->setVariable(
"ADM_CONTENT", $form_gui->getHTML());
865 include_once(
"./Modules/Survey/classes/forms/FormMailCodesGUI.php");
867 $form_gui->setValuesByPost();
870 if ($form_gui->getSavedMessages()->getValue() > 0)
872 $this->
object->deleteUserSettings($form_gui->getSavedMessages()->getValue());
874 $form_gui->setValuesByPost();
885 $ilLog->write(
'Error: ' + $e->getMessage());
887 $this->tpl->setVariable(
"ADM_CONTENT", $form_gui->getHTML());
895 $mailData[
'm_subject'] = (array_key_exists(
'm_subject',
$_POST)) ?
$_POST[
'm_subject'] : sprintf($this->lng->txt(
'default_codes_mail_subject'), $this->
object->getTitle());
896 $mailData[
'm_message'] = (array_key_exists(
'm_message',
$_POST)) ?
$_POST[
'm_message'] : $this->lng->txt(
'default_codes_mail_message');
897 $mailData[
'm_notsent'] = (array_key_exists(
'm_notsent',
$_POST)) ?
$_POST[
'm_notsent'] :
'1';
899 include_once(
"./Modules/Survey/classes/forms/FormMailCodesGUI.php");
901 $form_gui->setValuesByArray($mailData);
902 $this->tpl->setVariable(
"ADM_CONTENT", $form_gui->getHTML());
912 include_once(
"./Modules/Survey/classes/forms/FormMailCodesGUI.php");
914 if ($form_gui->checkInput())
916 $url_exists = strpos(
$_POST[
'm_message'],
'[url]') !== FALSE;
920 $form_gui->setValuesByPost();
924 if (
$_POST[
'savemessage'] == 1)
927 $title = (strlen(
$_POST[
'savemessagetitle'])) ?
$_POST[
'savemessagetitle'] : ilStr::substr(
$_POST[
'm_message'], 0, 40) .
'...';
928 $this->
object->saveUserSettings($ilUser->getId(),
'savemessage',
$title,
$_POST[
'm_message']);
931 $lang = $ilUser->getPref(
"survey_code_language");
934 $lang = $this->lng->getDefaultLanguage();
938 $this->ctrl->redirect($this,
'mailCodes');
943 $form_gui->setValuesByPost();
945 $this->tpl->setVariable(
"ADM_CONTENT", $form_gui->getHTML());
950 if (trim(
$_POST[
'externaltext']))
952 $data = preg_split(
"/[\n\r]/",
$_POST[
'externaltext']);
953 $fields = preg_split(
"/;/", array_shift(
$data));
954 if (!in_array(
'email', $fields))
958 $this->ctrl->redirect($this,
'importExternalMailRecipientsFromTextForm');
960 $existingdata = $this->
object->getExternalCodeRecipients();
961 $existingcolumns =
array();
962 if (count($existingdata))
964 $first = array_shift($existingdata);
965 foreach ($first as $key => $value)
967 array_push($existingcolumns, $key);
970 $founddata =
array();
971 foreach (
$data as $datarow)
973 $row = preg_split(
"/;/", $datarow);
974 if (count(
$row) == count($fields))
977 foreach ($fields as $idx => $fieldname)
979 if (count($existingcolumns))
981 if (array_key_exists($idx, $existingcolumns))
983 $dataset[$fieldname] =
$row[$idx];
988 $dataset[$fieldname] =
$row[$idx];
991 if (strlen($dataset[
'email']))
993 array_push($founddata, $dataset);
997 $this->
object->createSurveyCodesForExternalData($founddata);
999 $this->ctrl->redirect($this,
'codes');
1002 $this->ctrl->redirect($this,
'importExternalMailRecipientsFromTextForm');
1008 if(extension_loaded(
"mbstring"))
1010 if(!$a_from_charset)
1012 mb_detect_order(
"UTF-8, ISO-8859-1, Windows-1252, ASCII");
1013 $a_from_charset = mb_detect_encoding($a_string);
1015 if(strtoupper($a_from_charset) != $a_to_charset)
1017 return @mb_convert_encoding($a_string, $a_to_charset, $a_from_charset);
1025 $bom = pack(
'H*',
'EFBBBF');
1026 return preg_replace(
'/^'.$bom.
'/',
'', $a_text);
1031 if (trim($_FILES[
'externalmails'][
'tmp_name']))
1033 include_once
"./Services/Utilities/classes/class.ilCSVReader.php";
1035 $reader->open($_FILES[
'externalmails'][
'tmp_name']);
1037 $fields = array_shift(
$data);
1038 foreach($fields as $idx => $field)
1042 if (!in_array(
'email', $fields))
1046 $this->ctrl->redirect($this,
'codes');
1048 $existingdata = $this->
object->getExternalCodeRecipients();
1049 $existingcolumns =
array();
1050 if (count($existingdata))
1052 $first = array_shift($existingdata);
1053 foreach ($first as $key => $value)
1055 array_push($existingcolumns, $key);
1059 include_once
"Services/Utilities/classes/class.ilStr.php";
1061 $founddata =
array();
1064 if (count($row) == count($fields))
1067 foreach ($fields as $idx => $fieldname)
1072 if (count($existingcolumns))
1074 if (array_key_exists($idx, $existingcolumns))
1076 $dataset[$fieldname] = $row[$idx];
1081 $dataset[$fieldname] = $row[$idx];
1084 if (strlen($dataset[
'email']))
1086 array_push($founddata, $dataset);
1092 if(
sizeof($founddata))
1094 $this->
object->createSurveyCodesForExternalData($founddata);
1099 $this->ctrl->redirect($this,
'codes');
1109 include_once(
"./Services/Form/classes/class.ilPropertyFormGUI.php");
1111 $form_import_file->setFormAction($this->ctrl->getFormAction($this));
1112 $form_import_file->setTableWidth(
"100%");
1113 $form_import_file->setId(
"codes_import_file");
1116 $headerfile->setTitle($this->lng->txt(
"import_from_file"));
1117 $form_import_file->addItem($headerfile);
1119 $externalmails =
new ilFileInputGUI($this->lng->txt(
"externalmails"),
"externalmails");
1120 $externalmails->
setInfo($this->lng->txt(
'externalmails_info'));
1121 $externalmails->setRequired(
true);
1122 $form_import_file->addItem($externalmails);
1123 if ($ilAccess->checkAccess(
"write",
"",
$_GET[
"ref_id"])) $form_import_file->addCommandButton(
"importExternalRecipientsFromFile", $this->lng->txt(
"import"));
1124 if ($ilAccess->checkAccess(
"write",
"",
$_GET[
"ref_id"])) $form_import_file->addCommandButton(
"codes", $this->lng->txt(
"cancel"));
1126 $this->tpl->setContent($form_import_file->getHTML());
1136 include_once(
"./Services/Form/classes/class.ilPropertyFormGUI.php");
1138 $form_import_text->setFormAction($this->ctrl->getFormAction($this));
1139 $form_import_text->setTableWidth(
"100%");
1140 $form_import_text->setId(
"codes_import_text");
1143 $headertext->setTitle($this->lng->txt(
"import_from_text"));
1144 $form_import_text->addItem($headertext);
1147 if (array_key_exists(
'externaltext',
$_SESSION) && strlen(
$_SESSION[
'externaltext']))
1154 $inp->setValue(
"email;firstname;lastname\n" . $this->lng->txt(
'mail_import_example2') .
"\n" . $this->lng->txt(
'mail_import_example3') .
"\n");
1156 $inp->setRequired(
true);
1159 $inp->setInfo($this->lng->txt(
'externaltext_info'));
1160 $form_import_text->addItem($inp);
1163 if ($ilAccess->checkAccess(
"write",
"",
$_GET[
"ref_id"])) $form_import_text->addCommandButton(
"importExternalRecipientsFromText", $this->lng->txt(
"import"));
1164 if ($ilAccess->checkAccess(
"write",
"",
$_GET[
"ref_id"])) $form_import_text->addCommandButton(
"codes", $this->lng->txt(
"cancel"));
1166 $this->tpl->setContent($form_import_text->getHTML());
1191 $this->ctrl->setParameter($this,
"appr360", 1);
1193 include_once
'./Services/Search/classes/class.ilRepositorySearchGUI.php';
1198 'auto_complete_name' => $this->lng->txt(
'user'),
1199 'submit_name' => $this->lng->txt(
'add'),
1200 'add_search' =>
true,
1206 include_once(
"./Services/Skill/classes/class.ilSkillManagementSettings.php");
1208 if ($this->
object->get360SkillService() && $skmg_set->isActivated())
1210 $ilToolbar->addSeparator();
1211 $ilToolbar->addButton($lng->txt(
"survey_calc_skills"),
1212 $ilCtrl->getLinkTargetByClass(
"ilsurveyskilldeterminationgui"),
"");
1215 $ilToolbar->addSeparator();
1216 $ilToolbar->addButton($this->lng->txt(
'svy_delete_all_user_data'),
1217 $this->ctrl->getLinkTarget($this,
'deleteAllUserData'));
1219 $this->ctrl->setParameter($this,
"appr360",
"");
1221 include_once
"Modules/Survey/classes/tables/class.ilSurveyAppraiseesTableGUI.php";
1223 $tbl->setData($this->
object->getAppraiseesData());
1224 $this->tpl->setContent(
$tbl->getHTML());
1229 if(
sizeof($a_user_ids))
1232 foreach(array_unique($a_user_ids) as $user_id)
1234 $this->
object->addAppraisee($user_id);
1239 $this->ctrl->redirect($this,
"listAppraisees");
1246 if(!
sizeof(
$_POST[
"appr_id"]))
1249 $this->ctrl->redirect($this,
"listAppraisees");
1252 $ilTabs->clearTargets();
1253 $ilTabs->setBackTarget($this->lng->txt(
"btn_back"),
1254 $this->ctrl->getLinkTarget($this,
"listAppraisees"));
1256 include_once(
"./Services/Utilities/classes/class.ilConfirmationGUI.php");
1258 $cgui->setHeaderText($this->lng->txt(
"survey_360_sure_delete_appraises"));
1260 $cgui->setFormAction($this->ctrl->getFormAction($this,
"deleteAppraisees"));
1261 $cgui->setCancel($this->lng->txt(
"cancel"),
"listAppraisees");
1262 $cgui->setConfirm($this->lng->txt(
"confirm"),
"deleteAppraisees");
1264 $data = $this->
object->getAppraiseesData();
1267 include_once
"Services/User/classes/class.ilUserUtil.php";
1268 foreach (
$_POST[
"appr_id"] as $id)
1270 if(isset(
$data[$id]) && !
$data[$id][
"closed"])
1280 $this->ctrl->redirect($this,
"listAppraisees");
1283 $this->tpl->setContent($cgui->getHTML());
1288 if(
sizeof(
$_POST[
"appr_id"]))
1290 $data = $this->
object->getAppraiseesData();
1292 foreach (
$_POST[
"appr_id"] as $id)
1295 if(isset(
$data[$id]) && !
$data[$id][
"closed"])
1297 $this->
object->deleteAppraisee($id);
1304 $this->ctrl->redirect($this,
"listAppraisees");
1311 if ($ilAccess->checkAccess(
"write",
"", $this->ref_id))
1313 $appr_id = $_REQUEST[
"appr_id"];
1316 $this->ctrl->redirect($this,
"listAppraisees");
1320 else if($this->
object->get360Mode() &&
1321 $this->
object->get360SelfRaters() &&
1322 $this->
object->isAppraisee($ilUser->getId()) &&
1323 !$this->
object->isAppraiseeClosed($ilUser->getId()))
1325 return $ilUser->getId();
1327 $this->ctrl->redirect($this->parent_gui,
"infoScreen");
1332 global $ilTabs, $ilToolbar, $ilAccess;
1336 $has_write = $ilAccess->checkAccess(
"write",
"", $this->ref_id);
1339 $ilTabs->clearTargets();
1340 $ilTabs->setBackTarget($this->lng->txt(
"btn_back"),
1341 $this->ctrl->getLinkTarget($this,
"listAppraisees"));
1344 $this->ctrl->setParameter($this,
"appr_id", $appr_id);
1345 $this->ctrl->setParameter($this,
"rate360", 1);
1347 include_once
'./Services/Search/classes/class.ilRepositorySearchGUI.php';
1352 'auto_complete_name' => $this->lng->txt(
'user'),
1353 'submit_name' => $this->lng->txt(
'add'),
1354 'add_search' =>
true,
1359 $this->ctrl->setParameter($this,
"rate360",
"");
1361 $ilToolbar->addSeparator();
1363 $ilToolbar->addButton($this->lng->txt(
"survey_360_add_external_rater"),
1364 $this->ctrl->getLinkTarget($this,
"addExternalRaterForm"));
1367 require_once
"Services/Link/classes/class.ilLink.php";
1370 include_once
"Modules/Survey/classes/tables/class.ilSurveyAppraiseesTableGUI.php";
1372 $tbl->setData($this->
object->getRatersData($appr_id));
1373 $this->tpl->setContent(
$tbl->getHTML());
1378 global $ilTabs, $ilAccess;
1381 $this->ctrl->setParameter($this,
"appr_id", $appr_id);
1383 $has_write = $ilAccess->checkAccess(
"write",
"", $this->ref_id);
1386 $ilTabs->clearTargets();
1387 $ilTabs->setBackTarget($this->lng->txt(
"btn_back"),
1388 $this->ctrl->getLinkTarget($this,
"editRaters"));
1396 $this->tpl->setContent($a_form->getHTML());
1401 include_once
"Services/User/classes/class.ilUserUtil.php";
1402 include_once(
"./Services/Form/classes/class.ilPropertyFormGUI.php");
1404 $form->setFormAction($this->ctrl->getFormAction($this,
"addExternalRater"));
1405 $form->setTitle($this->lng->txt(
"survey_360_add_external_rater").
1406 ": ".ilUserUtil::getNamePresentation($appr_id));
1408 $email =
new ilEmailInputGUI($this->lng->txt(
"email"),
"email");
1409 $email->setRequired(
true);
1410 $form->addItem($email);
1412 $lname =
new ilTextInputGUI($this->lng->txt(
"lastname"),
"lname");
1414 $form->addItem($lname);
1416 $fname =
new ilTextInputGUI($this->lng->txt(
"firstname"),
"fname");
1418 $form->addItem($fname);
1420 $form->addCommandButton(
"addExternalRater", $this->lng->txt(
"save"));
1421 $form->addCommandButton(
"editRaters", $this->lng->txt(
"cancel"));
1428 $appr_id = $_REQUEST[
"appr_id"];
1431 $this->ctrl->redirect($this,
"listAppraisees");
1434 $this->ctrl->setParameter($this,
"appr_id", $appr_id);
1437 if($form->checkInput())
1440 "email" => $form->getInput(
"email"),
1441 "lastname" => $form->getInput(
"lname"),
1442 "firstname" => $form->getInput(
"fname")
1444 $anonymous_id = $this->
object->createSurveyCodesForExternalData(
array(
$data));
1445 $anonymous_id = array_pop($anonymous_id);
1447 $this->
object->addRater($appr_id, 0, $anonymous_id);
1450 $this->ctrl->setParameter($this,
"appr_id", $appr_id);
1451 $this->ctrl->redirect($this,
"editRaters");
1454 $form->setValuesByPost();
1464 if(
sizeof($a_user_ids))
1467 foreach(array_unique($a_user_ids) as $user_id)
1469 if($ilAccess->checkAccess(
"write",
"", $this->ref_id) ||
1470 $this->
object->get360SelfEvaluation() ||
1471 $user_id != $ilUser->getId())
1473 if ($appr_id != $user_id)
1475 $this->
object->addRater($appr_id, $user_id);
1486 $this->ctrl->setParameter($this,
"appr_id", $appr_id);
1487 $this->ctrl->redirect($this,
"editRaters");
1495 $this->ctrl->setParameter($this,
"appr_id", $appr_id);
1496 if(!
sizeof(
$_POST[
"rtr_id"]))
1499 $this->ctrl->redirect($this,
"editRaters");
1502 $ilTabs->clearTargets();
1503 $ilTabs->setBackTarget($this->lng->txt(
"btn_back"),
1504 $this->ctrl->getLinkTarget($this,
"editRaters"));
1506 include_once
"Services/User/classes/class.ilUserUtil.php";
1507 include_once(
"./Services/Utilities/classes/class.ilConfirmationGUI.php");
1509 $cgui->setHeaderText(sprintf($this->lng->txt(
"survey_360_sure_delete_raters"),
1512 $cgui->setFormAction($this->ctrl->getFormAction($this,
"deleteRaters"));
1513 $cgui->setCancel($this->lng->txt(
"cancel"),
"editRaters");
1514 $cgui->setConfirm($this->lng->txt(
"confirm"),
"deleteRaters");
1516 $data = $this->
object->getRatersData($appr_id);
1518 foreach (
$_POST[
"rtr_id"] as $id)
1520 if(isset(
$data[$id]))
1522 $cgui->addItem(
"rtr_id[]", $id,
$data[$id][
"lastname"].
", ".
1523 $data[$id][
"firstname"].
" (".
$data[$id][
"email"].
")");
1527 $this->tpl->setContent($cgui->getHTML());
1533 $this->ctrl->setParameter($this,
"appr_id", $appr_id);
1535 if(
sizeof(
$_POST[
"rtr_id"]))
1537 $data = $this->
object->getRatersData($appr_id);
1539 foreach (
$_POST[
"rtr_id"] as $id)
1541 if(isset(
$data[$id]))
1543 if(substr($id, 0, 1) ==
"u")
1545 $this->
object->deleteRater($appr_id, substr($id, 1));
1549 $this->
object->deleteRater($appr_id, 0, substr($id, 1));
1557 $this->ctrl->redirect($this,
"editRaters");
1564 if($this->
object->get360SelfAppraisee() &&
1565 !$this->
object->isAppraisee($ilUser->getId()))
1567 $this->
object->addAppraisee($ilUser->getId());
1570 $this->ctrl->redirect($this->parent_gui,
"infoScreen");
1575 include_once(
"./Services/Form/classes/class.ilPropertyFormGUI.php");
1577 $form->setFormAction($this->ctrl->getFormAction($this,
"mailRatersAction"));
1578 $form->setTitle($this->lng->txt(
'compose'));
1580 $all_data = $this->
object->getRatersData($appr_id);
1581 $rec_data =
array();
1582 foreach($rec_ids as $rec_id)
1584 if(isset($all_data[$rec_id]))
1586 $rec_data[] = $all_data[$rec_id][
"lastname"].
", ".
1587 $all_data[$rec_id][
"firstname"].
1588 " (".$all_data[$rec_id][
"email"].
")";
1593 $rec->setHTML(implode(
"<br />", $rec_data));
1594 $form->addItem($rec);
1596 $subject =
new ilTextInputGUI($this->lng->txt(
'subject'),
'subject');
1598 $subject->setRequired(
true);
1599 $form->addItem($subject);
1601 $existingdata = $this->
object->getExternalCodeRecipients();
1602 $existingcolumns =
array();
1603 if (count($existingdata))
1605 $first = array_shift($existingdata);
1606 foreach ($first as $key => $value)
1608 if (strcmp($key,
'code') != 0 && strcmp($key,
'email') != 0 && strcmp($key,
'sent') != 0) array_push($existingcolumns,
'[' . $key .
']');
1612 $mailmessage_u =
new ilTextAreaInputGUI($this->lng->txt(
'survey_360_rater_message_content_registered'),
'message_u');
1614 $mailmessage_u->setCols(80);
1615 $mailmessage_u->setRows(10);
1616 $form->addItem($mailmessage_u);
1618 $mailmessage_a =
new ilTextAreaInputGUI($this->lng->txt(
'survey_360_rater_message_content_anonymous'),
'message_a');
1620 $mailmessage_a->setCols(80);
1621 $mailmessage_a->setRows(10);
1622 $mailmessage_a->setInfo(sprintf($this->lng->txt(
'message_content_info'), join($existingcolumns,
', ')));
1623 $form->addItem($mailmessage_a);
1626 $recf->setValue(implode(
";", $rec_ids));
1627 $form->addItem($recf);
1629 $form->addCommandButton(
"mailRatersAction", $this->lng->txt(
"send"));
1630 $form->addCommandButton(
"editRaters", $this->lng->txt(
"cancel"));
1632 $subject->setValue(sprintf($this->lng->txt(
'survey_360_rater_subject_default'), $this->
object->getTitle()));
1633 $mailmessage_u->setValue($this->lng->txt(
'survey_360_rater_message_content_registered_default'));
1634 $mailmessage_a->setValue($this->lng->txt(
'survey_360_rater_message_content_anonymous_default'));
1646 $this->ctrl->setParameter($this,
"appr_id", $appr_id);
1648 if(!
sizeof(
$_POST[
"rtr_id"]))
1651 $this->ctrl->redirect($this,
"editRaters");
1657 $ilTabs->clearTargets();
1658 $ilTabs->setBackTarget($this->lng->txt(
"btn_back"),
1659 $this->ctrl->getLinkTarget($this,
"editRaters"));
1661 $this->tpl->setContent($a_form->getHTML());
1669 $this->ctrl->setParameter($this,
"appr_id", $appr_id);
1671 $rec_ids = explode(
";",
$_POST[
"rtr_id"]);
1672 if(!
sizeof($rec_ids))
1674 $this->ctrl->redirect($this,
"editRaters");
1678 if($form->checkInput())
1680 $txt_u = $form->getInput(
"message_u");
1681 $txt_a = $form->getInput(
"message_a");
1682 $subj = $form->getInput(
"subject");
1685 $sender_id = (trim($ilUser->getEmail()))
1687 : ANONYMOUS_USER_ID;
1689 include_once
"./Services/Mail/classes/class.ilMail.php";
1691 $all_data = $this->
object->getRatersData($appr_id);
1692 foreach($rec_ids as $rec_id)
1694 if(isset($all_data[$rec_id]))
1697 $user = $all_data[$rec_id];
1700 if(substr($rec_id, 0, 1) ==
"a")
1703 $url = $user[
"href"];
1704 $rcp = $user[
"email"];
1710 $user[
"code"] = $this->lng->txt(
"survey_code_mail_on_demand");
1712 $rcp = $user[
"login"];
1715 $mytxt = str_replace(
"[lastname]", $user[
"lastname"], $mytxt);
1716 $mytxt = str_replace(
"[firstname]", $user[
"firstname"], $mytxt);
1717 $mytxt = str_replace(
"[url]",
$url, $mytxt);
1718 $mytxt = str_replace(
"[code]", $user[
"code"], $mytxt);
1720 $mail =
new ilMail($sender_id);
1731 $this->
object->set360RaterSent($appr_id,
1732 (substr($rec_id, 0, 1) ==
"a") ? 0 : (
int)substr($rec_id, 1),
1733 (substr($rec_id, 0, 1) ==
"u") ? 0 : (
int)substr($rec_id, 1));
1738 $this->ctrl->redirect($this,
"editRaters");
1741 $form->setValuesByPost();
1749 $ilTabs->clearTargets();
1750 $ilTabs->setBackTarget($this->lng->txt(
"menuback"),
1751 $this->ctrl->getLinkTarget($this->parent_gui,
"infoScreen"));
1753 if(!$this->
object->isAppraisee($ilUser->getId()))
1755 $this->ctrl->redirect($this->parent_gui,
"infoScreen");
1758 include_once(
"./Services/Utilities/classes/class.ilConfirmationGUI.php");
1760 $cgui->setHeaderText($this->lng->txt(
"survey_360_sure_appraisee_close"));
1762 $cgui->setFormAction($this->ctrl->getFormAction($this,
"appraiseeClose"));
1763 $cgui->setCancel($this->lng->txt(
"cancel"),
"confirmAppraiseeCloseCancel");
1764 $cgui->setConfirm($this->lng->txt(
"confirm"),
"appraiseeClose");
1766 $tpl->setContent($cgui->getHTML());
1771 $this->ctrl->redirect($this->parent_gui,
"infoScreen");
1778 if(!$this->
object->isAppraisee($ilUser->getId()))
1780 $this->ctrl->redirect($this->parent_gui,
"infoScreen");
1783 $this->
object->closeAppraisee($ilUser->getId());
1785 $this->ctrl->redirect($this->parent_gui,
"infoScreen");
1794 $appr_ids =
$_POST[
"appr_id"];
1796 if(!
sizeof($appr_ids))
1799 $this->ctrl->redirect($this,
"listAppraisees");
1802 include_once(
"./Services/Utilities/classes/class.ilConfirmationGUI.php");
1804 $cgui->setHeaderText($this->lng->txt(
"survey_360_sure_appraisee_close_admin"));
1806 $cgui->setFormAction($this->ctrl->getFormAction($this,
"adminAppraiseesClose"));
1807 $cgui->setCancel($this->lng->txt(
"cancel"),
"listAppraisees");
1808 $cgui->setConfirm($this->lng->txt(
"confirm"),
"adminAppraiseesClose");
1810 include_once
"Services/User/classes/class.ilUserUtil.php";
1811 foreach($appr_ids as $appr_id)
1816 $tpl->setContent($cgui->getHTML());
1823 $appr_ids =
$_POST[
"appr_id"];
1825 if(!
sizeof($appr_ids))
1828 $this->ctrl->redirect($this,
"listAppraisees");
1831 $appr_data = $this->
object->getAppraiseesData();
1832 foreach($appr_ids as $appr_id)
1834 if(isset($appr_data[$appr_id]) && !$appr_data[$appr_id][
"closed"])
1836 $this->
object->closeAppraisee($appr_id);
1840 ilUtil::sendSuccess($this->lng->txt(
"survey_360_appraisee_close_action_success_admin"),
true);
1841 $this->ctrl->redirect($this,
"listAppraisees");
1850 $this->ctrl->redirect($this,
"maintenance");
1856 include_once
"Services/UIComponent/Button/classes/class.ilLinkButton.php";
1858 $button->setCaption(
"print");
1859 $button->setOnClick(
"window.print(); return false;");
1860 $button->setOmitPreventDoubleSubmission(
true);
1861 $ilToolbar->addButtonInstance($button);
1863 include_once
"Modules/Survey/classes/tables/class.ilSurveyParticipantsTableGUI.php";
1865 $this->tpl->setContent(
$tbl->getHTML());
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
importAccessCodesObject()
Import codes from export codes file (upload form)
Class ilSurveyParticipantsGUI.
This class represents an option in a radio group.
static deliverData($a_data, $a_filename, $mime="application/octet-stream", $charset="")
deliver data for download via browser.
codesObject()
Display the survey access codes tab.
addAppraisee($a_user_ids)
exportAllCodesObject()
Exports all survey codes.
addExternalRaterFormObject(ilPropertyFormGUI $a_form=null)
Skill management settings.
static _getStaticLink($a_ref_id, $a_type='', $a_fallback_goto=true, $append="")
Get static link.
saveInvitationStatusObject()
Saves the status of the invitation tab.
_convertCharset($a_string, $a_from_charset="", $a_to_charset="UTF-8")
setValue($a_value)
Set Value.
maintenanceObject()
Participants maintenance.
setCodeLanguageObject()
Change survey language for direct access URL's.
insertSavedMessageObject()
confirmAppraiseeCloseObject()
inviteObject()
Creates the output for user/group invitation to a survey.
cancelDeleteSelectedUserDataObject()
Cancels the deletion of all user data for the test object.
static getASCIIFilename($a_filename)
convert utf8 to ascii filename
confirmDeleteAppraiseesObject()
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
confirmDeleteRatersObject()
initMailRatersForm($appr_id, array $rec_ids)
cancelDeleteAllUserDataObject()
Cancels delete of all user data in maintenance.
static getNamePresentation($a_user_id, $a_user_image=false, $a_profile_link=false, $a_profile_back_link="", $a_force_first_lastname=false, $a_omit_login=false, $a_sortable=true, $a_return_data_array=false)
Default behaviour is:
if(!is_array($argv)) $options
deleteCodesConfirmObject()
This class handles base functions for mail handling.
importExternalRecipientsFromFileObject()
date( 'd-M-Y', $objPHPExcel->getProperties() ->getCreated())
deleteCodesObject()
Delete a list of survey codes.
setSize($a_size)
Set Size.
This class represents a text property in a property form.
const MODE_PREDEFINED_USERS
static sendQuestion($a_info="", $a_keep=false)
Send Question to Screen.
Create styles array
The data for the language used.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
createSurveyCodesObject()
Create access codes for the survey.
__construct(ilObjSurveyGUI $a_parent_gui, $a_has_write_access)
confirmDeleteSelectedUserDataObject()
Deletes all user data for the test object.
deleteSavedMessageObject()
confirmAdminAppraiseesCloseObject()
importExternalMailRecipientsFromFileFormObject()
Create new PHPExcel object
obj_idprivate
importAccessCodesActionObject()
Import codes from export codes file.
disinviteUserGroupObject()
Disinvite users or groups from a survey.
This class represents a text area property in a property form.
importExternalRecipientsFromTextObject()
initExternalRaterForm($appr_id)
for($i=1; $i<=count($kw_cases_sel); $i+=1) $lang
adminAppraiseesCloseObject()
setCodesSubtabs()
Set the tabs for the access codes section.
confirmDeleteAllUserDataObject()
Deletes all user data of the survey after confirmation.
static fillAutoCompleteToolbar($parent_object, ilToolbarGUI $toolbar=null, $a_options=array(), $a_sticky=false)
fill toolbar with
inviteUserGroupObject($a_user_ids=array())
Invite users or groups to a survey.
mailRatersObject(ilPropertyFormGUI $a_form=null)
Settings template application class.
exportCodesObject()
Exports a list of survey codes.
deleteSingleUserResultsObject()
Asks for a confirmation to delete selected user data of the test object.
deleteAllUserDataObject()
Creates a confirmation form for delete all user data.
importExternalMailRecipientsFromTextFormObject()
Confirmation screen class.
confirmAppraiseeCloseCancelObject()