20 $this->parent_gui = $a_parent_gui;
21 $this->
object = $this->parent_gui->object;
22 $this->ref_id = $this->
object->getRefId();
33 $cmd = $ilCtrl->getCmd(
"maintenance");
34 $next_class = $this->ctrl->getNextClass($this);
38 case 'ilrepositorysearchgui':
39 include_once(
'./Services/Search/classes/class.ilRepositorySearchGUI.php');
44 $ilTabs->clearTargets();
45 $ilTabs->setBackTarget($this->lng->txt(
"btn_back"),
46 $this->ctrl->getLinkTarget($this,
"invite"));
48 $rep_search->setCallback($this,
49 'inviteUserGroupObject',
55 $this->ctrl->setReturn($this,
'invite');
56 $this->ctrl->forwardCommand($rep_search);
57 $ilTabs->setTabActive(
'invitation');
61 $ilTabs->clearTargets();
62 $ilTabs->setBackTarget($this->lng->txt(
"btn_back"),
63 $this->ctrl->getLinkTarget($this,
"listAppraisees"));
65 $this->ctrl->setParameter($this,
"rate360", 1);
66 $this->ctrl->saveParameter($this,
"appr_id");
68 $rep_search->setCallback($this,
75 $this->ctrl->setReturn($this,
'editRaters');
76 $this->ctrl->forwardCommand($rep_search);
80 $ilTabs->activateTab(
"survey_360_appraisees");
81 $this->ctrl->setParameter($this,
"appr360", 1);
83 $rep_search->setCallback($this,
90 $this->ctrl->setReturn($this,
'listAppraisees');
91 $this->ctrl->forwardCommand($rep_search);
109 if($this->object->get360Mode())
114 $this->parent_gui->handleWriteAccess();
117 $ilToolbar->addButton($this->lng->txt(
'svy_delete_all_user_data'),
118 $this->ctrl->getLinkTarget($this,
'deleteAllUserData'));
127 include_once
"./Modules/Survey/classes/tables/class.ilSurveyMaintenanceTableGUI.php";
129 $total =& $this->
object->getSurveyParticipants();
131 foreach (
$total as $user_data)
134 if((
bool)$user_data[
"finished"])
136 $finished = $user_data[
"finished_tstamp"];
138 $wt = $this->
object->getWorkingtimeForParticipant($user_data[
"active_id"]);
139 $last_access = $this->
object->_getLastAccess($user_data[
"active_id"]);
140 array_push(
$data, array(
141 'id' => $user_data[
"active_id"],
142 'name' => $user_data[
"sortname"],
143 'login' => $user_data[
"login"],
144 'last_access' => $last_access,
145 'workingtime' => $wt,
146 'finished' => $finished
149 $table_gui->setData(
$data);
150 $this->tpl->setVariable(
'ADM_CONTENT', $table_gui->getHTML());
165 $ilTabs->addSubTabTarget(
"results",
166 $this->ctrl->getLinkTarget($this,
'maintenance'),
167 array(
"maintenance",
"deleteAllUserData"),
170 if(!$this->object->isAccessibleWithoutCode())
172 $ilTabs->addSubTabTarget(
"codes",
173 $this->ctrl->getLinkTarget($this,
'codes'),
174 array(
"codes",
"editCodes",
"createSurveyCodes",
"setCodeLanguage",
"deleteCodes",
"exportCodes",
175 "importExternalMailRecipientsFromFileForm",
"importExternalMailRecipientsFromTextForm"),
180 $hidden_tabs = array();
181 $template = $this->
object->getTemplate();
184 include_once
"Services/Administration/classes/class.ilSettingsTemplate.php";
186 $hidden_tabs = $template->getHiddenTabs();
190 if(!in_array(
"invitation", $hidden_tabs))
192 $ilTabs->addSubTabTarget(
"invitation",
193 $this->ctrl->getLinkTarget($this,
'invite'),
194 array(
"invite",
"saveInvitationStatus",
195 "inviteUserGroup",
"disinviteUserGroup"),
199 $data = $this->
object->getExternalCodeRecipients();
202 $ilTabs->addSubTabTarget
205 $this->ctrl->getLinkTarget($this,
"mailCodes"),
206 array(
"mailCodes",
"sendCodesMail",
"insertSavedMessage",
"deleteSavedMessage"),
218 if (is_array(
$_POST[
"user_select"]))
220 foreach (
$_POST[
"user_select"] as $user_id)
222 $this->
object->disinviteUser($user_id);
226 $this->ctrl->redirect($this,
"invite");
236 if (is_array($a_user_ids))
238 foreach ($a_user_ids as $user_id)
240 $this->
object->inviteUser($user_id);
254 $this->ctrl->redirect($this,
"invite");
262 $mode =
$_POST[
'invitation'];
275 $this->
object->saveToDb();
277 $this->ctrl->redirect($this,
"invite");
290 $this->parent_gui->handleWriteAccess();
293 include_once(
"./Services/Form/classes/class.ilPropertyFormGUI.php");
295 $form->setFormAction($this->ctrl->getFormAction($this));
296 $form->setTableWidth(
"500");
297 $form->setId(
"invite");
301 $header->setTitle($this->lng->txt(
"invitation"));
306 $invitation->
setInfo($this->lng->txt(
'invitation_mode_desc'));
307 $invitation->addOption(
new ilRadioOption($this->lng->txt(
"invitation_off"), 0,
''));
308 $surveySetting =
new ilSetting(
"survey");
309 if ($surveySetting->get(
"unlimited_invitation"))
311 $invitation->addOption(
new ilRadioOption($this->lng->txt(
"unlimited_users"), 1,
''));
313 $invitation->addOption(
new ilRadioOption($this->lng->txt(
"predefined_users"), 2,
''));
315 if ($this->object->getInvitation())
317 $inv = $this->
object->getInvitationMode() + 1;
319 $invitation->setValue($inv);
320 $form->addItem($invitation);
322 $form->addCommandButton(
"saveInvitationStatus", $this->lng->txt(
"save"));
324 $this->tpl->addBlockFile(
"ADM_CONTENT",
"adm_content",
"tpl.il_svy_svy_invite.html",
"Modules/Survey");
325 $this->tpl->setVariable(
"INVITATION_TABLE", $form->getHTML());
327 if ($this->object->getInvitation() && $this->
object->getInvitationMode() == 1)
330 include_once
'./Services/Search/classes/class.ilRepositorySearchGUI.php';
335 'auto_complete_name' => $lng->txt(
'user'),
336 'submit_name' => $lng->txt(
'svy_invite_action')
340 $ilToolbar->addSpacer();
342 $ilToolbar->addButton($this->lng->txt(
"svy_search_users"),
343 $this->ctrl->getLinkTargetByClass(
'ilRepositorySearchGUI',
''));
345 $this->tpl->setVariable(
"ADM_CONTENT", $form->getHTML());
347 $invited_users = $this->
object->getUserData($this->object->getInvitedUsers());
348 include_once
"./Modules/Survey/classes/tables/class.ilSurveyInvitedUsersTableGUI.php";
350 $table_gui->setData($invited_users);
351 $this->tpl->setVariable(
'TBL_INVITED_USERS', $table_gui->getHTML());
360 include_once
"Services/Utilities/classes/class.ilConfirmationGUI.php";
362 $cgui->setHeaderText($this->lng->txt(
"confirm_delete_all_user_data"));
363 $cgui->setFormAction($this->ctrl->getFormAction($this,
"deleteAllUserData"));
364 $cgui->setCancel($this->lng->txt(
"cancel"),
"cancelDeleteAllUserData");
365 $cgui->setConfirm($this->lng->txt(
"confirm"),
"confirmDeleteAllUserData");
366 $this->tpl->setContent($cgui->getHTML());
374 $this->
object->deleteAllUserData();
377 if($this->object->get360Mode())
379 $this->
object->openAllAppraisees();
383 $this->ctrl->redirect($this,
"maintenance");
391 $this->ctrl->redirect($this,
"maintenance");
399 $this->
object->removeSelectedSurveyResults(
$_POST[
"chbUser"]);
401 $this->ctrl->redirect($this,
"maintenance");
410 $this->ctrl->redirect($this,
"maintenance");
418 $this->parent_gui->handleWriteAccess();
420 if (count(
$_POST[
"chbUser"]) == 0)
423 $this->ctrl->redirect($this,
"maintenance");
427 include_once
"./Modules/Survey/classes/tables/class.ilSurveyMaintenanceTableGUI.php";
429 $total =& $this->
object->getSurveyParticipants();
431 foreach (
$total as $user_data)
433 if (in_array($user_data[
'active_id'],
$_POST[
'chbUser']))
435 $last_access = $this->
object->_getLastAccess($user_data[
"active_id"]);
436 array_push(
$data, array(
437 'id' => $user_data[
"active_id"],
438 'name' => $user_data[
"sortname"],
439 'login' => $user_data[
"login"],
440 'last_access' => $last_access
444 $table_gui->setData(
$data);
445 $this->tpl->setVariable(
'ADM_CONTENT', $table_gui->getHTML());
453 if (strcmp(
$_POST[
"lang"],
"-1") != 0)
456 $ilUser->writePref(
"survey_code_language",
$_POST[
"lang"]);
459 $this->ctrl->redirect($this,
'codes');
469 $this->parent_gui->handleWriteAccess();
472 if ($this->object->isAccessibleWithoutCode())
477 $default_lang = $ilUser->getPref(
"survey_code_language");
480 $ilToolbar->setFormAction($this->ctrl->getFormAction($this));
482 include_once(
"./Services/Form/classes/class.ilTextInputGUI.php");
486 $ilToolbar->addInputItem(
$si,
true);
488 include_once
"Services/UIComponent/Button/classes/class.ilSubmitButton.php";
491 $button->setCaption(
"create");
492 $button->setCommand(
"createSurveyCodes");
493 $ilToolbar->addButtonInstance($button);
495 $ilToolbar->addSeparator();
498 $button->setCaption(
"import_from_file");
499 $button->setCommand(
"importExternalMailRecipientsFromFileForm");
500 $ilToolbar->addButtonInstance($button);
503 $button->setCaption(
"import_from_text");
504 $button->setCommand(
"importExternalMailRecipientsFromTextForm");
505 $ilToolbar->addButtonInstance($button);
507 $ilToolbar->addSeparator();
510 $button->setCaption(
"svy_import_codes");
511 $button->setCommand(
"importAccessCodes");
512 $ilToolbar->addButtonInstance($button);
514 $ilToolbar->addSeparator();
516 $languages = $this->lng->getInstalledLanguages();
518 $this->lng->loadLanguageModule(
"meta");
519 foreach ($languages as
$lang)
523 include_once(
"./Services/Form/classes/class.ilSelectInputGUI.php");
526 $si->setValue($default_lang);
527 $ilToolbar->addInputItem(
$si,
true);
530 $button->setCaption(
"set");
531 $button->setCommand(
"setCodeLanguage");
532 $ilToolbar->addButtonInstance($button);
534 include_once
"./Modules/Survey/classes/tables/class.ilSurveyCodesTableGUI.php";
536 $survey_codes = $this->
object->getSurveyCodesTableData(null, $default_lang);
537 $table_gui->setData($survey_codes);
538 $this->tpl->setContent($table_gui->getHTML());
543 if(isset(
$_GET[
"new_ids"]))
545 $ids = explode(
";",
$_GET[
"new_ids"]);
549 $ids = (array)
$_POST[
"chb_code"];
554 $this->ctrl->redirect($this,
'codes');
557 $this->parent_gui->handleWriteAccess();
560 include_once
"./Modules/Survey/classes/tables/class.ilSurveyCodesEditTableGUI.php";
562 $table_gui->setData($this->object->getSurveyCodesTableData($ids));
563 $this->tpl->setContent($table_gui->getHTML());
568 if(!is_array(
$_POST[
"chb_code"]))
570 $this->ctrl->redirect($this,
'codes');
573 foreach(
$_POST[
"chb_code"] as $id)
575 $this->
object->updateCode($id,
584 $this->ctrl->redirect($this,
'codes');
589 if (is_array(
$_POST[
"chb_code"]) && (count(
$_POST[
"chb_code"]) > 0))
591 include_once(
"./Services/Utilities/classes/class.ilConfirmationGUI.php");
593 $cgui->setHeaderText($this->lng->txt(
"survey_code_delete_sure"));
595 $cgui->setFormAction($this->ctrl->getFormAction($this));
596 $cgui->setCancel($this->lng->txt(
"cancel"),
"codes");
597 $cgui->setConfirm($this->lng->txt(
"confirm"),
"deleteCodes");
599 $data = $this->
object->getSurveyCodesTableData(
$_POST[
"chb_code"]);
601 foreach (
$data as $item)
608 $title = array($item[
"code"]);
609 $item[
"email"] ? $title[] = $item[
"email"] : null;
610 $item[
"last_name"] ? $title[] = $item[
"last_name"] : null;
611 $item[
"first_name"] ? $title[] = $item[
"first_name"] : null;
612 $title = implode(
", ", $title);
614 $cgui->addItem(
"chb_code[]", $item[
"code"], $title);
617 $this->tpl->setContent($cgui->getHTML());
622 $this->ctrl->redirect($this,
'codes');
631 if (is_array(
$_POST[
"chb_code"]) && (count(
$_POST[
"chb_code"]) > 0))
633 foreach (
$_POST[
"chb_code"] as $survey_code)
635 $this->
object->deleteSurveyCode($survey_code);
643 $this->ctrl->redirect($this,
'codes');
651 if (is_array(
$_POST[
"chb_code"]) && (count(
$_POST[
"chb_code"]) > 0))
653 $export = $this->
object->getSurveyCodesForExport(null,
$_POST[
"chb_code"]);
659 $this->ctrl->redirect($this,
'codes');
668 $export = $this->
object->getSurveyCodesForExport();
677 $this->parent_gui->handleWriteAccess();
680 include_once(
"./Services/Form/classes/class.ilPropertyFormGUI.php");
682 $form_import_file->setFormAction($this->ctrl->getFormAction($this));
683 $form_import_file->setTableWidth(
"100%");
684 $form_import_file->setId(
"codes_import_file");
687 $headerfile->setTitle($this->lng->txt(
"svy_import_codes"));
688 $form_import_file->addItem($headerfile);
690 $export_file =
new ilFileInputGUI($this->lng->txt(
"codes"),
"codes");
691 $export_file->
setInfo(sprintf($this->lng->txt(
'svy_import_codes_info'),
692 $this->lng->txt(
"export_all_survey_codes")));
693 $export_file->setSuffixes(array(
"csv"));
694 $export_file->setRequired(
true);
695 $form_import_file->addItem($export_file);
697 $form_import_file->addCommandButton(
"importAccessCodesAction", $this->lng->txt(
"import"));
698 $form_import_file->addCommandButton(
"codes", $this->lng->txt(
"cancel"));
700 $this->tpl->setContent($form_import_file->getHTML());
708 if(trim($_FILES[
'codes'][
'tmp_name']))
711 foreach($this->object->getSurveyCodesTableData() as $item)
713 $existing[$item[
"code"]] = $item[
"id"];
716 include_once
"./Services/Utilities/classes/class.ilCSVReader.php";
718 $reader->open($_FILES[
'codes'][
'tmp_name']);
719 foreach(
$reader->getDataArrayFromCSVFile() as
$row)
721 if(
sizeof(
$row) == 8)
724 list(
$code, $email, $last_name, $first_name, $created, $used, $sent,
$url) =
$row;
727 if(!array_key_exists(
$code, $existing))
730 if(strlen($created) == 10)
742 ,
"lastname" => $last_name
743 ,
"firstname" => $first_name
745 $this->
object->importSurveyCode(
$code, $created, $user_data);
753 $this->ctrl->redirect($this,
'codes');
761 if (is_numeric(
$_POST[
"nrOfCodes"]))
763 $ids = $this->
object->createSurveyCodes(
$_POST[
"nrOfCodes"]);
765 $this->ctrl->setParameter($this,
"new_ids", implode(
";", $ids));
766 $this->ctrl->redirect($this,
'editCodes');
771 $this->ctrl->redirect($this,
'codes');
777 $this->parent_gui->handleWriteAccess();
780 include_once(
"./Modules/Survey/classes/forms/FormMailCodesGUI.php");
782 $form_gui->setValuesByPost();
785 if ($form_gui->getSavedMessages()->getValue() > 0)
788 $settings = $this->
object->getUserSettings($ilUser->getId(),
'savemessage');
789 $form_gui->getMailMessage()->setValue($settings[$form_gui->getSavedMessages()->getValue()][
'value']);
800 $ilLog->write(
'Error: ' + $e->getMessage());
802 $this->tpl->setVariable(
"ADM_CONTENT", $form_gui->getHTML());
807 $this->parent_gui->handleWriteAccess();
810 include_once(
"./Modules/Survey/classes/forms/FormMailCodesGUI.php");
812 $form_gui->setValuesByPost();
815 if ($form_gui->getSavedMessages()->getValue() > 0)
817 $this->
object->deleteUserSettings($form_gui->getSavedMessages()->getValue());
819 $form_gui->setValuesByPost();
830 $ilLog->write(
'Error: ' + $e->getMessage());
832 $this->tpl->setVariable(
"ADM_CONTENT", $form_gui->getHTML());
837 $this->parent_gui->handleWriteAccess();
840 $mailData[
'm_subject'] = (array_key_exists(
'm_subject',
$_POST)) ?
$_POST[
'm_subject'] : sprintf($this->lng->txt(
'default_codes_mail_subject'), $this->
object->getTitle());
841 $mailData[
'm_message'] = (array_key_exists(
'm_message',
$_POST)) ?
$_POST[
'm_message'] : $this->lng->txt(
'default_codes_mail_message');
842 $mailData[
'm_notsent'] = (array_key_exists(
'm_notsent',
$_POST)) ?
$_POST[
'm_notsent'] :
'1';
844 include_once(
"./Modules/Survey/classes/forms/FormMailCodesGUI.php");
846 $form_gui->setValuesByArray($mailData);
847 $this->tpl->setVariable(
"ADM_CONTENT", $form_gui->getHTML());
854 $this->parent_gui->handleWriteAccess();
857 include_once(
"./Modules/Survey/classes/forms/FormMailCodesGUI.php");
859 if ($form_gui->checkInput())
861 $url_exists = strpos(
$_POST[
'm_message'],
'[url]') !== FALSE;
865 $form_gui->setValuesByPost();
869 if (
$_POST[
'savemessage'] == 1)
872 $title = (strlen(
$_POST[
'savemessagetitle'])) ?
$_POST[
'savemessagetitle'] : ilStr::substr(
$_POST[
'm_message'], 0, 40) .
'...';
873 $this->
object->saveUserSettings($ilUser->getId(),
'savemessage', $title,
$_POST[
'm_message']);
876 $lang = $ilUser->getPref(
"survey_code_language");
879 $lang = $this->lng->getDefaultLanguage();
883 $this->ctrl->redirect($this,
'mailCodes');
888 $form_gui->setValuesByPost();
890 $this->tpl->setVariable(
"ADM_CONTENT", $form_gui->getHTML());
895 if (trim(
$_POST[
'externaltext']))
897 $data = preg_split(
"/[\n\r]/",
$_POST[
'externaltext']);
898 $fields = preg_split(
"/;/", array_shift(
$data));
899 if (!in_array(
'email', $fields))
903 $this->ctrl->redirect($this,
'importExternalMailRecipientsFromTextForm');
905 $existingdata = $this->
object->getExternalCodeRecipients();
906 $existingcolumns = array();
907 if (count($existingdata))
909 $first = array_shift($existingdata);
910 foreach ($first as $key => $value)
912 array_push($existingcolumns, $key);
915 $founddata = array();
916 foreach (
$data as $datarow)
918 $row = preg_split(
"/;/", $datarow);
919 if (count(
$row) == count($fields))
922 foreach ($fields as $idx => $fieldname)
924 if (count($existingcolumns))
926 if (array_key_exists($idx, $existingcolumns))
928 $dataset[$fieldname] =
$row[$idx];
933 $dataset[$fieldname] =
$row[$idx];
936 if (strlen($dataset[
'email']))
938 array_push($founddata, $dataset);
942 $this->
object->createSurveyCodesForExternalData($founddata);
944 $this->ctrl->redirect($this,
'codes');
947 $this->ctrl->redirect($this,
'importExternalMailRecipientsFromTextForm');
951 protected function _convertCharset($a_string, $a_from_charset=
"", $a_to_charset=
"UTF-8")
953 if(extension_loaded(
"mbstring"))
957 mb_detect_order(
"UTF-8, ISO-8859-1, Windows-1252, ASCII");
958 $a_from_charset = mb_detect_encoding($a_string);
960 if(strtoupper($a_from_charset) != $a_to_charset)
962 return @mb_convert_encoding($a_string, $a_to_charset, $a_from_charset);
970 $bom = pack(
'H*',
'EFBBBF');
971 return preg_replace(
'/^'.$bom.
'/',
'', $a_text);
976 if (trim($_FILES[
'externalmails'][
'tmp_name']))
978 include_once
"./Services/Utilities/classes/class.ilCSVReader.php";
980 $reader->open($_FILES[
'externalmails'][
'tmp_name']);
982 $fields = array_shift(
$data);
983 foreach($fields as $idx => $field)
987 if (!in_array(
'email', $fields))
991 $this->ctrl->redirect($this,
'codes');
993 $existingdata = $this->
object->getExternalCodeRecipients();
994 $existingcolumns = array();
995 if (count($existingdata))
997 $first = array_shift($existingdata);
998 foreach ($first as $key => $value)
1000 array_push($existingcolumns, $key);
1004 include_once
"Services/Utilities/classes/class.ilStr.php";
1006 $founddata = array();
1009 if (count($row) == count($fields))
1012 foreach ($fields as $idx => $fieldname)
1017 if (count($existingcolumns))
1019 if (array_key_exists($idx, $existingcolumns))
1021 $dataset[$fieldname] = $row[$idx];
1026 $dataset[$fieldname] = $row[$idx];
1029 if (strlen($dataset[
'email']))
1031 array_push($founddata, $dataset);
1037 if(
sizeof($founddata))
1039 $this->
object->createSurveyCodesForExternalData($founddata);
1044 $this->ctrl->redirect($this,
'codes');
1051 $this->parent_gui->handleWriteAccess();
1054 include_once(
"./Services/Form/classes/class.ilPropertyFormGUI.php");
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",
"",
$_GET[
"ref_id"])) $form_import_file->addCommandButton(
"importExternalRecipientsFromFile", $this->lng->txt(
"import"));
1069 if ($ilAccess->checkAccess(
"write",
"",
$_GET[
"ref_id"])) $form_import_file->addCommandButton(
"codes", $this->lng->txt(
"cancel"));
1071 $this->tpl->setContent($form_import_file->getHTML());
1078 $this->parent_gui->handleWriteAccess();
1081 include_once(
"./Services/Form/classes/class.ilPropertyFormGUI.php");
1083 $form_import_text->setFormAction($this->ctrl->getFormAction($this));
1084 $form_import_text->setTableWidth(
"100%");
1085 $form_import_text->setId(
"codes_import_text");
1088 $headertext->setTitle($this->lng->txt(
"import_from_text"));
1089 $form_import_text->addItem($headertext);
1092 if (array_key_exists(
'externaltext',
$_SESSION) && strlen(
$_SESSION[
'externaltext']))
1099 $inp->setValue(
"email;firstname;lastname\n" . $this->lng->txt(
'mail_import_example2') .
"\n" . $this->lng->txt(
'mail_import_example3') .
"\n");
1101 $inp->setRequired(
true);
1104 $inp->setInfo($this->lng->txt(
'externaltext_info'));
1105 $form_import_text->addItem($inp);
1108 if ($ilAccess->checkAccess(
"write",
"",
$_GET[
"ref_id"])) $form_import_text->addCommandButton(
"importExternalRecipientsFromText", $this->lng->txt(
"import"));
1109 if ($ilAccess->checkAccess(
"write",
"",
$_GET[
"ref_id"])) $form_import_text->addCommandButton(
"codes", $this->lng->txt(
"cancel"));
1111 $this->tpl->setContent($form_import_text->getHTML());
1134 $this->parent_gui->handleWriteAccess();
1136 $this->ctrl->setParameter($this,
"appr360", 1);
1138 include_once
'./Services/Search/classes/class.ilRepositorySearchGUI.php';
1143 'auto_complete_name' => $this->lng->txt(
'user'),
1144 'submit_name' => $this->lng->txt(
'add'),
1145 'add_search' =>
true,
1151 include_once(
"./Services/Skill/classes/class.ilSkillManagementSettings.php");
1153 if ($this->object->get360SkillService() && $skmg_set->isActivated())
1155 $ilToolbar->addSeparator();
1156 $ilToolbar->addButton($lng->txt(
"survey_calc_skills"),
1157 $ilCtrl->getLinkTargetByClass(
"ilsurveyskilldeterminationgui"),
"");
1160 $ilToolbar->addSeparator();
1161 $ilToolbar->addButton($this->lng->txt(
'svy_delete_all_user_data'),
1162 $this->ctrl->getLinkTarget($this,
'deleteAllUserData'));
1164 $this->ctrl->setParameter($this,
"appr360",
"");
1166 include_once
"Modules/Survey/classes/tables/class.ilSurveyAppraiseesTableGUI.php";
1168 $tbl->setData($this->object->getAppraiseesData());
1169 $this->tpl->setContent(
$tbl->getHTML());
1174 if(
sizeof($a_user_ids))
1177 foreach(array_unique($a_user_ids) as $user_id)
1179 $this->
object->addAppraisee($user_id);
1184 $this->ctrl->redirect($this,
"listAppraisees");
1191 if(!
sizeof(
$_POST[
"appr_id"]))
1194 $this->ctrl->redirect($this,
"listAppraisees");
1197 $ilTabs->clearTargets();
1198 $ilTabs->setBackTarget($this->lng->txt(
"btn_back"),
1199 $this->ctrl->getLinkTarget($this,
"listAppraisees"));
1201 include_once(
"./Services/Utilities/classes/class.ilConfirmationGUI.php");
1203 $cgui->setHeaderText($this->lng->txt(
"survey_360_sure_delete_appraises"));
1205 $cgui->setFormAction($this->ctrl->getFormAction($this,
"deleteAppraisees"));
1206 $cgui->setCancel($this->lng->txt(
"cancel"),
"listAppraisees");
1207 $cgui->setConfirm($this->lng->txt(
"confirm"),
"deleteAppraisees");
1209 $data = $this->
object->getAppraiseesData();
1212 include_once
"Services/User/classes/class.ilUserUtil.php";
1213 foreach (
$_POST[
"appr_id"] as $id)
1215 if(isset(
$data[$id]) && !
$data[$id][
"closed"])
1225 $this->ctrl->redirect($this,
"listAppraisees");
1228 $this->tpl->setContent($cgui->getHTML());
1233 if(
sizeof(
$_POST[
"appr_id"]))
1235 $data = $this->
object->getAppraiseesData();
1237 foreach (
$_POST[
"appr_id"] as $id)
1240 if(isset(
$data[$id]) && !
$data[$id][
"closed"])
1242 $this->
object->deleteAppraisee($id);
1249 $this->ctrl->redirect($this,
"listAppraisees");
1256 if ($ilAccess->checkAccess(
"write",
"", $this->ref_id))
1261 $this->ctrl->redirect($this,
"listAppraisees");
1265 else if($this->object->get360Mode() &&
1266 $this->
object->get360SelfRaters() &&
1267 $this->
object->isAppraisee($ilUser->getId()) &&
1268 !$this->object->isAppraiseeClosed($ilUser->getId()))
1270 return $ilUser->getId();
1272 $this->ctrl->redirect($this->parent_gui,
"infoScreen");
1277 global $ilTabs, $ilToolbar, $ilAccess;
1281 $has_write = $ilAccess->checkAccess(
"write",
"", $this->ref_id);
1284 $ilTabs->clearTargets();
1285 $ilTabs->setBackTarget($this->lng->txt(
"btn_back"),
1286 $this->ctrl->getLinkTarget($this,
"listAppraisees"));
1289 $this->ctrl->setParameter($this,
"appr_id", $appr_id);
1290 $this->ctrl->setParameter($this,
"rate360", 1);
1292 include_once
'./Services/Search/classes/class.ilRepositorySearchGUI.php';
1297 'auto_complete_name' => $this->lng->txt(
'user'),
1298 'submit_name' => $this->lng->txt(
'add'),
1299 'add_search' =>
true,
1304 $this->ctrl->setParameter($this,
"rate360",
"");
1306 $ilToolbar->addSeparator();
1308 $ilToolbar->addButton($this->lng->txt(
"survey_360_add_external_rater"),
1309 $this->ctrl->getLinkTarget($this,
"addExternalRaterForm"));
1312 require_once
"Services/Link/classes/class.ilLink.php";
1315 include_once
"Modules/Survey/classes/tables/class.ilSurveyAppraiseesTableGUI.php";
1317 $tbl->setData($this->object->getRatersData($appr_id));
1318 $this->tpl->setContent(
$tbl->getHTML());
1323 global $ilTabs, $ilAccess;
1326 $this->ctrl->setParameter($this,
"appr_id", $appr_id);
1328 $has_write = $ilAccess->checkAccess(
"write",
"", $this->ref_id);
1331 $ilTabs->clearTargets();
1332 $ilTabs->setBackTarget($this->lng->txt(
"btn_back"),
1333 $this->ctrl->getLinkTarget($this,
"editRaters"));
1341 $this->tpl->setContent($a_form->getHTML());
1346 include_once
"Services/User/classes/class.ilUserUtil.php";
1347 include_once(
"./Services/Form/classes/class.ilPropertyFormGUI.php");
1349 $form->setFormAction($this->ctrl->getFormAction($this,
"addExternalRater"));
1350 $form->setTitle($this->lng->txt(
"survey_360_add_external_rater").
1351 ": ".ilUserUtil::getNamePresentation($appr_id));
1353 $email =
new ilEmailInputGUI($this->lng->txt(
"email"),
"email");
1354 $email->setRequired(
true);
1355 $form->addItem($email);
1357 $lname =
new ilTextInputGUI($this->lng->txt(
"lastname"),
"lname");
1359 $form->addItem($lname);
1361 $fname =
new ilTextInputGUI($this->lng->txt(
"firstname"),
"fname");
1363 $form->addItem($fname);
1365 $form->addCommandButton(
"addExternalRater", $this->lng->txt(
"save"));
1366 $form->addCommandButton(
"editRaters", $this->lng->txt(
"cancel"));
1376 $this->ctrl->redirect($this,
"listAppraisees");
1379 $this->ctrl->setParameter($this,
"appr_id", $appr_id);
1382 if($form->checkInput())
1385 "email" => $form->getInput(
"email"),
1386 "lastname" => $form->getInput(
"lname"),
1387 "firstname" => $form->getInput(
"fname")
1389 $anonymous_id = $this->
object->createSurveyCodesForExternalData(array(
$data));
1390 $anonymous_id = array_pop($anonymous_id);
1392 $this->
object->addRater($appr_id, 0, $anonymous_id);
1395 $this->ctrl->setParameter($this,
"appr_id", $appr_id);
1396 $this->ctrl->redirect($this,
"editRaters");
1399 $form->setValuesByPost();
1409 if(
sizeof($a_user_ids))
1412 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())
1418 $this->
object->addRater($appr_id, $user_id);
1425 $this->ctrl->setParameter($this,
"appr_id", $appr_id);
1426 $this->ctrl->redirect($this,
"editRaters");
1434 $this->ctrl->setParameter($this,
"appr_id", $appr_id);
1435 if(!
sizeof(
$_POST[
"rtr_id"]))
1438 $this->ctrl->redirect($this,
"editRaters");
1441 $ilTabs->clearTargets();
1442 $ilTabs->setBackTarget($this->lng->txt(
"btn_back"),
1443 $this->ctrl->getLinkTarget($this,
"editRaters"));
1445 include_once
"Services/User/classes/class.ilUserUtil.php";
1446 include_once(
"./Services/Utilities/classes/class.ilConfirmationGUI.php");
1448 $cgui->setHeaderText(sprintf($this->lng->txt(
"survey_360_sure_delete_raters"),
1451 $cgui->setFormAction($this->ctrl->getFormAction($this,
"deleteRaters"));
1452 $cgui->setCancel($this->lng->txt(
"cancel"),
"editRaters");
1453 $cgui->setConfirm($this->lng->txt(
"confirm"),
"deleteRaters");
1455 $data = $this->
object->getRatersData($appr_id);
1457 foreach (
$_POST[
"rtr_id"] as $id)
1459 if(isset(
$data[$id]))
1461 $cgui->addItem(
"rtr_id[]", $id,
$data[$id][
"lastname"].
", ".
1462 $data[$id][
"firstname"].
" (".
$data[$id][
"email"].
")");
1466 $this->tpl->setContent($cgui->getHTML());
1472 $this->ctrl->setParameter($this,
"appr_id", $appr_id);
1474 if(
sizeof(
$_POST[
"rtr_id"]))
1476 $data = $this->
object->getRatersData($appr_id);
1478 foreach (
$_POST[
"rtr_id"] as $id)
1480 if(isset(
$data[$id]))
1482 if(substr($id, 0, 1) ==
"u")
1484 $this->
object->deleteRater($appr_id, substr($id, 1));
1488 $this->
object->deleteRater($appr_id, 0, substr($id, 1));
1496 $this->ctrl->redirect($this,
"editRaters");
1503 if($this->object->get360SelfAppraisee() &&
1504 !$this->
object->isAppraisee($ilUser->getId()))
1506 $this->
object->addAppraisee($ilUser->getId());
1509 $this->ctrl->redirect($this->parent_gui,
"infoScreen");
1514 include_once(
"./Services/Form/classes/class.ilPropertyFormGUI.php");
1516 $form->setFormAction($this->ctrl->getFormAction($this,
"mailRatersAction"));
1517 $form->setTitle($this->lng->txt(
'compose'));
1519 $all_data = $this->
object->getRatersData($appr_id);
1520 $rec_data = array();
1521 foreach($rec_ids as $rec_id)
1523 if(isset($all_data[$rec_id]))
1525 $rec_data[] = $all_data[$rec_id][
"lastname"].
", ".
1526 $all_data[$rec_id][
"firstname"].
1527 " (".$all_data[$rec_id][
"email"].
")";
1532 $rec->setHTML(implode(
"<br />", $rec_data));
1533 $form->addItem($rec);
1535 $subject =
new ilTextInputGUI($this->lng->txt(
'subject'),
'subject');
1537 $subject->setRequired(
true);
1538 $form->addItem($subject);
1540 $existingdata = $this->
object->getExternalCodeRecipients();
1541 $existingcolumns = array();
1542 if (count($existingdata))
1544 $first = array_shift($existingdata);
1545 foreach ($first as $key => $value)
1547 if (strcmp($key,
'code') != 0 && strcmp($key,
'email') != 0 && strcmp($key,
'sent') != 0) array_push($existingcolumns,
'[' . $key .
']');
1551 $mailmessage_u =
new ilTextAreaInputGUI($this->lng->txt(
'survey_360_rater_message_content_registered'),
'message_u');
1553 $mailmessage_u->setCols(80);
1554 $mailmessage_u->setRows(10);
1555 $form->addItem($mailmessage_u);
1557 $mailmessage_a =
new ilTextAreaInputGUI($this->lng->txt(
'survey_360_rater_message_content_anonymous'),
'message_a');
1559 $mailmessage_a->setCols(80);
1560 $mailmessage_a->setRows(10);
1561 $mailmessage_a->setInfo(sprintf($this->lng->txt(
'message_content_info'), join($existingcolumns,
', ')));
1562 $form->addItem($mailmessage_a);
1565 $recf->setValue(implode(
";", $rec_ids));
1566 $form->addItem($recf);
1568 $form->addCommandButton(
"mailRatersAction", $this->lng->txt(
"send"));
1569 $form->addCommandButton(
"editRaters", $this->lng->txt(
"cancel"));
1571 $subject->setValue(sprintf($this->lng->txt(
'survey_360_rater_subject_default'), $this->
object->getTitle()));
1572 $mailmessage_u->setValue($this->lng->txt(
'survey_360_rater_message_content_registered_default'));
1573 $mailmessage_a->setValue($this->lng->txt(
'survey_360_rater_message_content_anonymous_default'));
1585 $this->ctrl->setParameter($this,
"appr_id", $appr_id);
1587 if(!
sizeof(
$_POST[
"rtr_id"]))
1590 $this->ctrl->redirect($this,
"editRaters");
1596 $ilTabs->clearTargets();
1597 $ilTabs->setBackTarget($this->lng->txt(
"btn_back"),
1598 $this->ctrl->getLinkTarget($this,
"editRaters"));
1600 $this->tpl->setContent($a_form->getHTML());
1608 $this->ctrl->setParameter($this,
"appr_id", $appr_id);
1610 $rec_ids = explode(
";",
$_POST[
"rtr_id"]);
1611 if(!
sizeof($rec_ids))
1613 $this->ctrl->redirect($this,
"editRaters");
1617 if($form->checkInput())
1619 $txt_u = $form->getInput(
"message_u");
1620 $txt_a = $form->getInput(
"message_a");
1621 $subj = $form->getInput(
"subject");
1624 $sender_id = (trim($ilUser->getEmail()))
1626 : ANONYMOUS_USER_ID;
1628 include_once
"./Services/Mail/classes/class.ilMail.php";
1630 $all_data = $this->
object->getRatersData($appr_id);
1631 foreach($rec_ids as $rec_id)
1633 if(isset($all_data[$rec_id]))
1636 $user = $all_data[$rec_id];
1639 if(substr($rec_id, 0, 1) ==
"a")
1642 $url = $user[
"href"];
1643 $rcp = $user[
"email"];
1649 $user[
"code"] = $this->lng->txt(
"survey_code_mail_on_demand");
1651 $rcp = $user[
"login"];
1654 $mytxt = str_replace(
"[lastname]", $user[
"lastname"], $mytxt);
1655 $mytxt = str_replace(
"[firstname]", $user[
"firstname"], $mytxt);
1656 $mytxt = str_replace(
"[url]",
$url, $mytxt);
1657 $mytxt = str_replace(
"[code]", $user[
"code"], $mytxt);
1659 $mail =
new ilMail($sender_id);
1670 $this->
object->set360RaterSent($appr_id,
1671 (substr($rec_id, 0, 1) ==
"a") ? 0 : (
int)substr($rec_id, 1),
1672 (substr($rec_id, 0, 1) ==
"u") ? 0 : (
int)substr($rec_id, 1));
1677 $this->ctrl->redirect($this,
"editRaters");
1680 $form->setValuesByPost();
1688 $ilTabs->clearTargets();
1689 $ilTabs->setBackTarget($this->lng->txt(
"menuback"),
1690 $this->ctrl->getLinkTarget($this->parent_gui,
"infoScreen"));
1692 if(!$this->object->isAppraisee($ilUser->getId()))
1694 $this->ctrl->redirect($this->parent_gui,
"infoScreen");
1697 include_once(
"./Services/Utilities/classes/class.ilConfirmationGUI.php");
1699 $cgui->setHeaderText($this->lng->txt(
"survey_360_sure_appraisee_close"));
1701 $cgui->setFormAction($this->ctrl->getFormAction($this,
"appraiseeClose"));
1702 $cgui->setCancel($this->lng->txt(
"cancel"),
"confirmAppraiseeCloseCancel");
1703 $cgui->setConfirm($this->lng->txt(
"confirm"),
"appraiseeClose");
1705 $tpl->setContent($cgui->getHTML());
1710 $this->ctrl->redirect($this->parent_gui,
"infoScreen");
1717 if(!$this->object->isAppraisee($ilUser->getId()))
1719 $this->ctrl->redirect($this->parent_gui,
"infoScreen");
1722 $this->
object->closeAppraisee($ilUser->getId());
1724 $this->ctrl->redirect($this->parent_gui,
"infoScreen");
1731 $this->parent_gui->handleWriteAccess();
1733 $appr_ids =
$_POST[
"appr_id"];
1735 if(!
sizeof($appr_ids))
1738 $this->ctrl->redirect($this,
"listAppraisees");
1741 include_once(
"./Services/Utilities/classes/class.ilConfirmationGUI.php");
1743 $cgui->setHeaderText($this->lng->txt(
"survey_360_sure_appraisee_close_admin"));
1745 $cgui->setFormAction($this->ctrl->getFormAction($this,
"adminAppraiseesClose"));
1746 $cgui->setCancel($this->lng->txt(
"cancel"),
"listAppraisees");
1747 $cgui->setConfirm($this->lng->txt(
"confirm"),
"adminAppraiseesClose");
1749 include_once
"Services/User/classes/class.ilUserUtil.php";
1750 foreach($appr_ids as $appr_id)
1755 $tpl->setContent($cgui->getHTML());
1760 $this->parent_gui->handleWriteAccess();
1762 $appr_ids =
$_POST[
"appr_id"];
1764 if(!
sizeof($appr_ids))
1767 $this->ctrl->redirect($this,
"listAppraisees");
1770 $appr_data = $this->
object->getAppraiseesData();
1771 foreach($appr_ids as $appr_id)
1773 if(isset($appr_data[$appr_id]) && !$appr_data[$appr_id][
"closed"])
1775 $this->
object->closeAppraisee($appr_id);
1779 ilUtil::sendSuccess($this->lng->txt(
"survey_360_appraisee_close_action_success_admin"),
true);
1780 $this->ctrl->redirect($this,
"listAppraisees");
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()
Class Mail this class handles base functions for mail handling.
importExternalRecipientsFromFileObject()
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.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
createSurveyCodesObject()
Create access codes for the survey.
__construct(ilObjSurveyGUI $a_parent_gui)
confirmDeleteSelectedUserDataObject()
Deletes all user data for the test object.
deleteSavedMessageObject()
confirmAdminAppraiseesCloseObject()
importExternalMailRecipientsFromFileFormObject()
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)
adminAppraiseesCloseObject()
setCodesSubtabs()
Set the tabs for the access codes section.
confirmDeleteAllUserDataObject()
Deletes all user data of the survey after confirmation.
if($_REQUEST['ilias_path']) define('ILIAS_HTTP_PATH' $_REQUEST['ilias_path']
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()