20 $this->parent_gui = $a_parent_gui;
21 $this->
object = $this->parent_gui->object;
22 $this->ref_id = $this->
object->getRefId();
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)
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']);
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']))
1094 $inp->setValue(
$_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,
1146 'add_from_container' => $this->ref_id
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()))
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,
1300 'add_from_container' => $this->ref_id
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");
1358 $lname->setSize(30);
1359 $form->addItem($lname);
1361 $fname =
new ilTextInputGUI($this->lng->txt(
"firstname"),
"fname");
1362 $fname->setSize(30);
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() ||
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');
1536 $subject->setSize(50);
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');
1552 $mailmessage_u->setRequired(
true);
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');
1558 $mailmessage_a->setRequired(
true);
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");
Confirmation screen class.
@classDescription Date and time handling
static _getStaticLink($a_ref_id, $a_type='', $a_fallback_goto=true, $append="")
Get static link.
Class Mail this class handles base functions for mail handling.
const MODE_PREDEFINED_USERS
This class represents an option in a radio group.
static fillAutoCompleteToolbar($parent_object, ilToolbarGUI $toolbar=null, $a_options=array(), $a_sticky=false)
fill toolbar with
Settings template application class.
Skill management settings.
Class ilSurveyParticipantsGUI.
exportCodesObject()
Exports a list of survey codes.
cancelDeleteAllUserDataObject()
Cancels delete of all user data in maintenance.
mailRatersObject(ilPropertyFormGUI $a_form=null)
importExternalRecipientsFromFileObject()
saveInvitationStatusObject()
Saves the status of the invitation tab.
deleteSavedMessageObject()
__construct(ilObjSurveyGUI $a_parent_gui)
deleteCodesConfirmObject()
confirmAppraiseeCloseObject()
deleteAllUserDataObject()
Creates a confirmation form for delete all user data.
addAppraisee($a_user_ids)
setCodesSubtabs()
Set the tabs for the access codes section.
maintenanceObject()
Participants maintenance.
importExternalMailRecipientsFromFileFormObject()
addExternalRaterFormObject(ilPropertyFormGUI $a_form=null)
importExternalMailRecipientsFromTextFormObject()
confirmAppraiseeCloseCancelObject()
inviteObject()
Creates the output for user/group invitation to a survey.
insertSavedMessageObject()
importAccessCodesActionObject()
Import codes from export codes file.
codesObject()
Display the survey access codes tab.
confirmDeleteAllUserDataObject()
Deletes all user data of the survey after confirmation.
createSurveyCodesObject()
Create access codes for the survey.
_convertCharset($a_string, $a_from_charset="", $a_to_charset="UTF-8")
exportAllCodesObject()
Exports all survey codes.
initMailRatersForm($appr_id, array $rec_ids)
deleteCodesObject()
Delete a list of survey codes.
confirmDeleteAppraiseesObject()
disinviteUserGroupObject()
Disinvite users or groups from a survey.
deleteSingleUserResultsObject()
Asks for a confirmation to delete selected user data of the test object.
setCodeLanguageObject()
Change survey language for direct access URL's.
importAccessCodesObject()
Import codes from export codes file (upload form)
confirmAdminAppraiseesCloseObject()
adminAppraiseesCloseObject()
cancelDeleteSelectedUserDataObject()
Cancels the deletion of all user data for the test object.
initExternalRaterForm($appr_id)
confirmDeleteRatersObject()
inviteUserGroupObject($a_user_ids=array())
Invite users or groups to a survey.
confirmDeleteSelectedUserDataObject()
Deletes all user data for the test object.
importExternalRecipientsFromTextObject()
This class represents a text area property in a property form.
This class represents a text property in a property form.
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:
static sendQuestion($a_info="", $a_keep=false)
Send Question to Screen.
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
static deliverData($a_data, $a_filename, $mime="application/octet-stream", $charset="")
deliver data for download via browser.
static getASCIIFilename($a_filename)
convert utf8 to ascii filename
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
if($_REQUEST['ilias_path']) define('ILIAS_HTTP_PATH' $_REQUEST['ilias_path']
if(!is_array($argv)) $options