5 use \ILIAS\Survey\Participants;
58 $this->lng = $DIC->language();
59 $this->nav_history = $DIC[
"ilNavigationHistory"];
60 $this->tabs = $DIC->tabs();
61 $this->
user = $DIC->user();
62 $this->
help = $DIC[
"ilHelp"];
63 $this->rbacsystem = $DIC->rbac()->system();
64 $this->tree = $DIC->repositoryTree();
65 $this->tpl = $DIC[
"tpl"];
66 $this->toolbar = $DIC->toolbar();
67 $this->access = $DIC->access();
68 $this->locator = $DIC[
"ilLocator"];
69 $lng = $DIC->language();
70 $ilCtrl = $DIC->ctrl();
73 $lng->loadLanguageModule(
"survey");
74 $lng->loadLanguageModule(
"svy");
75 $this->ctrl = $ilCtrl;
76 $this->ctrl->saveParameter($this,
"ref_id");
80 $this->invitation_manager =
new Participants\InvitationsManager();
86 if (!$DIC->globalScreen()->tool()->context()->stack()->hasMatch(
87 $DIC->globalScreen()->tool()->context()->collection()->repository()
89 $DIC->globalScreen()->tool()->context()->claim()->repository();
98 $this->external_rater_360 =
false;
99 if (!$this->creation_mode &&
100 $this->object->get360Mode() &&
101 $_SESSION[
"anonymous_id"][$this->
object->getId()] &&
103 $this->object->getRefId(),
104 $_SESSION[
"anonymous_id"][$this->
object->getId()]
106 $this->external_rater_360 =
true;
109 if (!$this->external_rater_360) {
118 $this->ctrl->setParameterByClass(
"ilobjsurveygui",
"ref_id", $this->ref_id);
120 $ilNavigationHistory->addItem($this->ref_id, $link,
"svy");
124 $cmd = $this->ctrl->getCmd(
"properties");
127 if ($cmd ==
"saveTags") {
128 $this->ctrl->setCmdClass(
"ilinfoscreengui");
132 if (!$this->ctrl->getCmdClass() && $cmd ==
"questionsrepo") {
133 $_REQUEST[
"pgov"] = 1;
134 $this->ctrl->setCmd(
"questions");
135 $this->ctrl->setCmdClass(
"ilsurveyeditorgui");
138 $next_class = $this->ctrl->getNextClass($this);
139 $this->ctrl->setReturn($this,
"properties");
143 $this->log->debug(
"next_class= $next_class");
144 switch ($next_class) {
145 case 'illtiproviderobjectsettinggui':
147 $ilTabs->activateTab(
"settings");
148 $ilTabs->activateSubTab(
'lti_provider');
151 $lti_gui->offerLTIRolesForSelection(
false);
152 $this->ctrl->forwardCommand($lti_gui);
156 case "ilinfoscreengui":
158 $this->ctrl->getCmdClass(),
159 array(
'ilpublicuserprofilegui',
'ilobjportfoliogui')
165 $ilTabs->clearTargets();
167 $this->ctrl->forwardCommand($info);
171 case 'ilobjectmetadatagui':
173 $ilTabs->activateTab(
"meta_data");
176 $this->ctrl->forwardCommand($md_gui);
179 case "ilsurveyevaluationgui":
183 $ilTabs->activateTab(
"svy_results");
186 $this->ctrl->forwardCommand($eval_gui);
190 case "ilsurveyexecutiongui":
191 $ilTabs->clearTargets();
193 $this->ctrl->forwardCommand($exec_gui);
196 case 'ilpermissiongui':
197 $ilTabs->activateTab(
"perm_settings");
200 $this->ctrl->forwardCommand($perm_gui);
203 case 'ilobjectcopygui':
206 $this->ctrl->forwardCommand($cp);
209 case "ilcommonactiondispatchergui":
211 $this->ctrl->forwardCommand($gui);
215 case 'ilsurveyskillgui':
216 $ilTabs->activateTab(
"survey_competences");
218 $this->ctrl->forwardCommand($gui);
221 case 'ilsurveyskilldeterminationgui':
222 $ilTabs->activateTab(
"maintenance");
224 $this->ctrl->forwardCommand($gui);
227 case 'ilsurveyeditorgui':
229 $ilTabs->activateTab(
"survey_questions");
231 $this->ctrl->forwardCommand($gui);
234 case 'ilsurveyconstraintsgui':
236 $ilTabs->activateTab(
"constraints");
238 $this->ctrl->forwardCommand($gui);
241 case 'ilsurveyparticipantsgui':
243 $ilTabs->activateTab(
"maintenance");
245 $ilTabs->activateTab(
"survey_360_appraisees");
248 $this->ctrl->forwardCommand($gui);
251 case "illearningprogressgui":
252 $ilTabs->activateTab(
"learning_progress");
255 $this->object->getRefId()
257 $this->ctrl->forwardCommand($new_gui);
261 $ilTabs->activateTab(
"export");
263 $exp_gui->addFormat(
"xml");
264 $this->ctrl->forwardCommand($exp_gui);
271 $this->log->debug(
"Default cmd= $cmd");
277 if (strtolower(
$_GET[
"baseClass"]) !=
"iladministrationgui" &&
279 $this->tpl->printToStdout();
297 $this->ctrl->setCmdClass(get_class($eval_gui));
298 $this->ctrl->redirect($eval_gui,
"evaluation");
305 foreach ($templates as $item) {
306 $a_options[
"svytpl_" . $item[
"id"]] = array($item[
"title"],
307 nl2br(trim($item[
"description"])));
312 $a_options[
"svy360_1"] = array($this->lng->txt(
"survey_360_mode"),
313 $this->lng->txt(
"survey_360_mode_info"));
316 $a_options[
"svyselfeval_1"] = array($this->lng->txt(
"svy_self_ev_mode"),
317 $this->lng->txt(
"svy_self_ev_info"));
327 $a_new_object->loadFromDb();
331 $a_new_object->applySettingsTemplate(
$tpl);
341 $svy_mode = $a_new_object->getMode();
349 $a_new_object->saveToDB();
352 ilUtil::sendSuccess($this->lng->txt(
"object_added"),
true);
354 $a_new_object->
getRefId() .
"&cmd=properties");
371 $ilHelp->setScreenIdComponent(
"svy");
373 $hidden_tabs = array();
374 $template = $this->
object->getTemplate();
377 $hidden_tabs = $template->getHiddenTabs();
381 $this->tabs_gui->addTab(
383 $this->lng->txt(
"survey_questions"),
384 $this->ctrl->getLinkTargetByClass(array(
"ilsurveyeditorgui",
"ilsurveypagegui"),
"renderPage")
389 $this->tabs_gui->addTab(
391 $this->lng->txt(
"info_short"),
392 $this->ctrl->getLinkTarget($this,
'infoScreen')
398 $this->tabs_gui->addTab(
400 $this->lng->txt(
"settings"),
401 $this->ctrl->getLinkTarget($this,
'properties')
404 if ($this->object->get360Mode() &&
405 $this->
object->get360SelfRaters() &&
406 $this->
object->isAppraisee(
$ilUser->getId()) &&
407 !$this->object->isAppraiseeClosed(
$ilUser->getId())) {
408 $this->tabs_gui->addTab(
409 "survey_360_edit_raters",
410 $this->lng->txt(
"survey_360_edit_raters"),
411 $this->ctrl->getLinkTargetByClass(
'ilsurveyparticipantsgui',
'editRaters')
420 !in_array(
"constraints", $hidden_tabs) &&
423 $this->tabs_gui->addTab(
425 $this->lng->txt(
"constraints"),
426 $this->ctrl->getLinkTargetByClass(
"ilsurveyconstraintsgui",
"constraints")
431 switch ($this->object->getMode()) {
435 if ($this->object->getSkillService() && $skmg_set->isActivated()) {
436 $this->tabs_gui->addTab(
437 "survey_competences",
438 $this->lng->txt(
"survey_competences"),
439 $this->ctrl->getLinkTargetByClass(
"ilsurveyskillgui",
"listQuestionAssignment")
442 $this->tabs_gui->addTab(
443 "survey_360_appraisees",
444 $this->lng->txt(
"survey_360_appraisees"),
445 $this->ctrl->getLinkTargetByClass(
'ilsurveyparticipantsgui',
'listAppraisees')
451 if ($this->object->getSkillService() && $skmg_set->isActivated()) {
452 $this->tabs_gui->addTab(
453 "survey_competences",
454 $this->lng->txt(
"survey_competences"),
455 $this->ctrl->getLinkTargetByClass(
"ilsurveyskillgui",
"listQuestionAssignment")
458 $this->tabs_gui->addTab(
460 $this->lng->txt(
"maintenance"),
461 $this->ctrl->getLinkTargetByClass(
'ilsurveyparticipantsgui',
'maintenance')
467 $this->tabs_gui->addTab(
469 $this->lng->txt(
"maintenance"),
470 $this->ctrl->getLinkTargetByClass(
'ilsurveyparticipantsgui',
'maintenance')
480 $this->tabs_gui->addTab(
482 $this->lng->txt(
"svy_results"),
483 $this->ctrl->getLinkTargetByClass(
"ilsurveyevaluationgui",
"evaluation")
489 $this->tabs_gui->addTarget(
491 $this->ctrl->getLinkTargetByClass(array(
"ilobjsurveygui",
"illearningprogressgui"),
""),
493 array(
"illplistofobjectsgui",
"illplistofsettingsgui",
"illearningprogressgui",
"illplistofprogressgui")
498 if (!in_array(
"meta_data", $hidden_tabs)) {
501 $mdtab = $mdgui->getTab();
503 $this->tabs_gui->addTab(
505 $this->lng->txt(
"meta_data"),
511 if (!in_array(
"export", $hidden_tabs)) {
513 $this->tabs_gui->addTab(
515 $this->lng->txt(
"export"),
516 $this->ctrl->getLinkTargetByClass(
"ilexportgui",
"")
523 $this->tabs_gui->addTab(
525 $this->lng->txt(
"perm_settings"),
526 $this->ctrl->getLinkTargetByClass(array(get_class($this),
'ilpermissiongui'),
"perm")
549 if ($form->checkInput()) {
552 if (!$this->object->get360Mode()) {
553 if ($form->getInput(
"tut")) {
556 $tut_logins = $form->getInput(
"tut_ids");
557 foreach ($tut_logins as $tut_login) {
559 if ($tut_id &&
$rbacsystem->checkAccessOfUser($tut_id,
"write", $this->object->getRefId())) {
560 $tut_ids[] = $tut_id;
564 $tut_ids = $form->getItemByPostVar(
"tut_ids");
565 $tut_ids->setAlert($this->lng->txt(
"survey_notification_tutor_recipients_invalid"));
569 if ($form->getInput(
"tut_res")) {
570 $end = $form->getItemByPostVar(
"end_date");
571 if (!$end->getDate()) {
572 $tut_res = $form->getItemByPostVar(
"tut_res");
573 $tut_res->setAlert($this->lng->txt(
"svy_notification_tutor_results_alert"));
578 $tut_res_ids = array();
579 $tut_logins = $form->getInput(
"tut_res_ids");
580 foreach ($tut_logins as $tut_login) {
582 if ($tut_id &&
$rbacsystem->checkAccessOfUser($tut_id,
"write", $this->object->getRefId())) {
583 $tut_res_ids[] = $tut_id;
587 $tut_res_ids = $form->getItemByPostVar(
"tut_res_ids");
588 $tut_res_ids->setAlert($this->lng->txt(
"survey_notification_tutor_recipients_invalid"));
595 if ($form->getInput(
"rmd")) {
596 $rmd_start = $form->getItemByPostVar(
"rmd_start")->getDate();
597 $rmd_end = $form->getItemByPostVar(
"rmd_end")->getDate();
601 $rmd_start = $rmd_end;
605 $this->
object->setReminderStatus(
true);
606 $this->
object->setReminderStart($rmd_start);
607 $this->
object->setReminderEnd($rmd_end);
608 $this->
object->setReminderFrequency($form->getInput(
"rmd_freq"));
609 if (!$this->object->get360Mode()) {
610 $this->
object->setReminderTarget($form->getInput(
"rmd_grp"));
611 $this->
object->setReminderTemplate(($form->getInput(
"rmdt") > 0)
612 ? $form->getInput(
"rmdt")
615 if ($form->getInput(
"remind_appraisees") && $form->getInput(
"remind_raters")) {
617 } elseif ($form->getInput(
"remind_appraisees")) {
619 } elseif ($form->getInput(
"remind_raters")) {
622 $this->
object->setReminderTarget(0);
626 $this->
object->setReminderStatus(
false);
629 if (!$this->object->get360Mode()) {
630 if ($form->getInput(
"tut")) {
631 $this->
object->setTutorNotificationStatus(
true);
632 $this->
object->setTutorNotificationRecipients($tut_ids);
633 $this->
object->setTutorNotificationTarget($form->getInput(
"tut_grp"));
635 $this->
object->setTutorNotificationStatus(
false);
638 if ($form->getInput(
"tut_res")) {
639 $this->
object->setTutorResultsStatus(
true);
640 $this->
object->setTutorResultsRecipients($tut_res_ids);
642 $this->
object->setTutorResultsStatus(
false);
647 if (
$_POST[
'online'] && count($this->object->questions) == 0) {
652 $template_settings = null;
653 $template = $this->
object->getTemplate();
656 $template_settings = $template->getSettings();
659 $md_obj =
new ilMD($this->object->getId(), 0,
"svy");
667 $md_desc_ids = $md_section->getDescriptionIds();
669 $md_desc = $md_section->getDescription(array_pop($md_desc_ids));
674 $this->
object->setViewOwnResults(
$_POST[
"view_own"]);
675 $this->
object->setMailOwnResults(
$_POST[
"mail_own"]);
676 $this->
object->setMailConfirmation(
$_POST[
"mail_confirm"]);
681 $this->
object->setOfflineStatus((
bool) !
$_POST[
'online']);
682 $this->
object->update();
685 $period = $form->getItemByPostVar(
"access_period");
686 if ($period->getStart() && $period->getEnd()) {
687 $this->
object->setActivationLimited(
true);
688 $this->
object->setActivationVisibility(
$_POST[
"access_visiblity"]);
689 $this->
object->setActivationStartDate($period->getStart()->get(
IL_CAL_UNIX));
690 $this->
object->setActivationEndDate($period->getEnd()->get(
IL_CAL_UNIX));
692 $this->
object->setActivationLimited(
false);
696 $obj_service->commonSettings()->legacyForm($form, $this->
object)->saveTileImage();
699 if (!$template_settings[
"enabled_start_date"][
"hide"]) {
700 $start = $form->getItemByPostVar(
"start_date");
701 if ($start->getDate()) {
703 $this->
object->setStartDateAndTime($datetime[0], $datetime[1]);
705 $this->
object->setStartDate(null);
709 if (!$template_settings[
"enabled_end_date"][
"hide"]) {
710 $end = $form->getItemByPostVar(
"end_date");
711 if ($end->getDate()) {
713 $this->
object->setEndDateAndTime($datetime[0], $datetime[1]);
715 $this->
object->setEndDate(null);
720 $introduction =
$_POST[
"introduction"];
721 $this->
object->setIntroduction($introduction);
723 $this->
object->setOutro($outro);
725 if (!$template_settings[
"show_question_titles"][
"hide"]) {
726 $this->
object->setShowQuestionTitles(
$_POST[
"show_question_titles"]);
729 if (!$template_settings[
"use_pool"][
"hide"]) {
730 $this->
object->setPoolUsage(
$_POST[
"use_pool"]);
733 $this->
object->setMailNotification(
$_POST[
'mailnotification']);
734 $this->
object->setMailAddresses(
$_POST[
'mailaddresses']);
735 $this->
object->setMailParticipantData(
$_POST[
'mailparticipantdata']);
737 switch ($this->object->getMode()) {
739 $this->
object->set360SelfEvaluation((
bool)
$_POST[
"self_eval"]);
740 $this->
object->set360SelfAppraisee((
bool) $_POST[
"self_appr"]);
741 $this->
object->set360SelfRaters((
bool) $_POST[
"self_rate"]);
742 $this->
object->set360Results((
int) $_POST[
"ts_res"]);;
743 $this->
object->setSkillService((
int) $_POST[
"skill_service"]);
746 $this->
object->setSelfEvaluationResults($_POST[
"self_eval_res"]);
747 $this->
object->setSkillService((
int) $_POST[
"skill_service"]);
750 if (!$template_settings[
"evaluation_access"][
"hide"]) {
751 $this->
object->setEvaluationAccess($_POST[
"evaluation_access"]);
753 $this->
object->setCalculateSumScore((
int) $_POST[
"calculate_sum_score"]);
756 $hide_codes = $template_settings[
"acc_codes"][
"hide"];
757 $hide_anon = $template_settings[
"anonymization_options"][
"hide"];
758 if (!$hide_codes || !$hide_anon) {
759 $current = $this->
object->getAnonymize();
763 $codes = (bool) $_POST[
"acc_codes"];
769 $anon = ((string) $_POST[
"anonymization_options"] ==
"statanon");
789 $this->
object->setAnonymousUserList($_POST[
"anon_list"]);
793 unset(
$_SESSION[
"anonymous_id"][$this->object->getId()]);
799 $this->
object->saveToDb();
802 $this->object->getId(),
809 if (strcmp(
$_SESSION[
"info"],
"") != 0) {
810 ilUtil::sendSuccess(
$_SESSION[
"info"] .
"<br />" . $this->lng->txt(
"settings_saved"),
true);
812 ilUtil::sendSuccess($this->lng->txt(
"settings_saved"),
true);
814 $this->ctrl->redirect($this,
"properties");
821 $form->setValuesByPost();
834 $template_settings = $hide_rte_switch = null;
835 $template = $this->
object->getTemplate();
839 $template_settings = $template->getSettings();
840 $hide_rte_switch = $template_settings[
"rte_switch"][
"hide"];
844 $form->setFormAction($this->ctrl->getFormAction($this));
845 $form->setTableWidth(
"100%");
846 $form->setId(
"survey_properties");
850 $header->setTitle($this->lng->txt(
"settings"));
851 $form->addItem($header);
856 $md_obj =
new ilMD($this->object->getId(), 0,
"svy");
860 $title->setRequired(
true);
861 $title->setValue($md_section->getTitle());
862 $form->addItem($title);
864 $ids = $md_section->getDescriptionIds();
866 $desc_obj = $md_section->getDescription(array_pop($ids));
871 $desc->setValue($desc_obj->getDescription());
872 $form->addItem($desc);
876 $pool_usage =
new ilRadioGroupInputGUI($this->lng->txt(
"survey_question_pool_usage"),
"use_pool");
877 $opt =
new ilRadioOption($this->lng->txt(
"survey_question_pool_usage_active"), 1);
878 $opt->
setInfo($this->lng->txt(
"survey_question_pool_usage_active_info"));
879 $pool_usage->addOption($opt);
880 $opt =
new ilRadioOption($this->lng->txt(
"survey_question_pool_usage_inactive"), 0);
881 $opt->
setInfo($this->lng->txt(
"survey_question_pool_usage_inactive_info"));
882 $pool_usage->addOption($opt);
883 $pool_usage->setValue($this->object->getPoolUsage());
884 $form->addItem($pool_usage);
887 if ($this->object->get360Mode()) {
888 $self_eval =
new ilCheckboxInputGUI($this->lng->txt(
"survey_360_self_evaluation"),
"self_eval");
889 $self_eval->
setInfo($this->lng->txt(
"survey_360_self_evaluation_info"));
890 $self_eval->setChecked($this->object->get360SelfEvaluation());
891 $form->addItem($self_eval);
893 $self_rate =
new ilCheckboxInputGUI($this->lng->txt(
"survey_360_self_raters"),
"self_rate");
894 $self_rate->
setInfo($this->lng->txt(
"survey_360_self_raters_info"));
895 $self_rate->setChecked($this->object->get360SelfRaters());
896 $form->addItem($self_rate);
898 $self_appr =
new ilCheckboxInputGUI($this->lng->txt(
"survey_360_self_appraisee"),
"self_appr");
899 $self_appr->
setInfo($this->lng->txt(
"survey_360_self_appraisee_info"));
900 $self_appr->setChecked($this->object->get360SelfAppraisee());
901 $form->addItem($self_appr);
906 $this->lng->loadLanguageModule(
'rep');
909 $section->setTitle($this->lng->txt(
'rep_activation_availability'));
913 $act_obj_info = $act_ref_info =
"";
915 $act_obj_info =
' ' . $this->lng->txt(
'rep_activation_online_object_info');
916 $act_ref_info = $this->lng->txt(
'rep_activation_access_ref_info');
920 $online->
setInfo($this->lng->txt(
'svy_activation_online_info') . $act_obj_info);
921 $online->setChecked(!$this->object->getOfflineStatus());
922 $form->addItem($online);
926 $date = $this->
object->getActivationStartDate();
930 $date = $this->
object->getActivationEndDate();
934 $form->addItem($dur);
936 $visible =
new ilCheckboxInputGUI($this->lng->txt(
'rep_activation_limited_visibility'),
'access_visiblity');
937 $visible->
setInfo($this->lng->txt(
'svy_activation_limited_visibility_info'));
938 $visible->setChecked($this->object->getActivationVisibility());
939 $dur->addSubItem($visible);
943 $section->setTitle($this->lng->txt(
'obj_presentation'));
947 $obj_service->commonSettings()->legacyForm($form, $this->
object)->addTileImage();
952 $section->setTitle($this->lng->txt(
'svy_settings_section_before_start'));
957 $intro->
setValue($this->object->prepareTextareaOutput($this->object->getIntroduction()));
961 $intro->setUseRte(
true);
962 $intro->setInfo($this->lng->txt(
"survey_introduction_info"));
964 $intro->addPlugin(
"latex");
965 $intro->addButton(
"latex");
966 $intro->addButton(
"pastelatex");
967 $intro->setRTESupport($this->object->getId(),
"svy",
"survey", null, $hide_rte_switch);
969 $form->addItem($intro);
975 $section->setTitle($this->lng->txt(
'svy_settings_section_access'));
979 $start = $this->
object->getStartDate();
986 $form->addItem($startingtime);
989 $end = $this->
object->getEndDate();
996 $form->addItem($endingtime);
999 if (!$this->object->get360Mode()) {
1000 $codes =
new ilCheckboxInputGUI($this->lng->txt(
"survey_access_codes"),
"acc_codes");
1001 $codes->
setInfo($this->lng->txt(
"survey_access_codes_info"));
1002 $codes->setChecked(!$this->object->isAccessibleWithoutCode());
1003 $form->addItem($codes);
1006 $codes->setDisabled(
true);
1014 $section->setTitle($this->lng->txt(
'svy_settings_section_question_behaviour'));
1018 $show_question_titles =
new ilCheckboxInputGUI($this->lng->txt(
"svy_show_questiontitles"),
"show_question_titles");
1019 $show_question_titles->
setValue(1);
1020 $show_question_titles->setChecked($this->object->getShowQuestionTitles());
1021 $form->addItem($show_question_titles);
1027 $info->setTitle($this->lng->txt(
"svy_settings_section_finishing"));
1028 $form->addItem($info);
1030 $view_own =
new ilCheckboxInputGUI($this->lng->txt(
"svy_results_view_own"),
"view_own");
1031 $view_own->
setInfo($this->lng->txt(
"svy_results_view_own_info"));
1032 $view_own->setChecked($this->object->hasViewOwnResults());
1033 $form->addItem($view_own);
1035 $mail_confirm =
new ilCheckboxInputGUI($this->lng->txt(
"svy_results_mail_confirm"),
"mail_confirm");
1036 $mail_confirm->
setInfo($this->lng->txt(
"svy_results_mail_confirm_info"));
1037 $mail_confirm->setChecked($this->object->hasMailConfirmation());
1038 $form->addItem($mail_confirm);
1040 $mail_own =
new ilCheckboxInputGUI($this->lng->txt(
"svy_results_mail_own"),
"mail_own");
1041 $mail_own->
setInfo($this->lng->txt(
"svy_results_mail_own_info"));
1042 $mail_own->setChecked($this->object->hasMailOwnResults());
1043 $mail_confirm->addSubItem($mail_own);
1047 $finalstatement->
setValue($this->object->prepareTextareaOutput($this->object->getOutro()));
1048 $finalstatement->setRows(10);
1049 $finalstatement->setCols(80);
1051 $finalstatement->setUseRte(
true);
1053 $finalstatement->addPlugin(
"latex");
1054 $finalstatement->addButton(
"latex");
1055 $finalstatement->addButton(
"pastelatex");
1056 $finalstatement->setRTESupport($this->object->getId(),
"svy",
"survey", null, $hide_rte_switch);
1058 $form->addItem($finalstatement);
1061 $mailnotification =
new ilCheckboxInputGUI($this->lng->txt(
"mailnotification"),
"mailnotification");
1063 $mailnotification->
setInfo($this->lng->txt(
"svy_result_mail_notification_info"));
1064 $mailnotification->setValue(1);
1065 $mailnotification->setChecked($this->object->getMailNotification());
1068 $mailaddresses =
new ilTextInputGUI($this->lng->txt(
"mailaddresses"),
"mailaddresses");
1069 $mailaddresses->setValue($this->object->getMailAddresses());
1070 $mailaddresses->setSize(80);
1071 $mailaddresses->setInfo($this->lng->txt(
'mailaddresses_info'));
1072 $mailaddresses->setRequired(
true);
1075 $participantdata =
new ilTextAreaInputGUI($this->lng->txt(
"mailparticipantdata"),
"mailparticipantdata");
1076 $participantdata->
setValue($this->object->getMailParticipantData());
1077 $participantdata->setRows(6);
1078 $participantdata->setCols(80);
1079 $participantdata->setUseRte(
false);
1080 $participantdata->setInfo($this->lng->txt(
"mailparticipantdata_info"));
1083 $placeholders = array(
1084 "FIRST_NAME" =>
"firstname",
1085 "LAST_NAME" =>
"lastname",
1089 foreach ($placeholders as $placeholder => $caption) {
1090 $txt[] =
"[" . strtoupper($placeholder) .
"]: " . $this->lng->txt($caption);
1093 $participantdatainfo =
new ilNonEditableValueGUI($this->lng->txt(
"mailparticipantdata_placeholder"),
"",
true);
1096 $mailnotification->addSubItem($mailaddresses);
1097 $mailnotification->addSubItem($participantdata);
1098 $mailnotification->addSubItem($participantdatainfo);
1099 $form->addItem($mailnotification);
1102 if (!$this->object->get360Mode()) {
1105 $has_parent =
$tree->checkForParentType($this->object->getRefId(),
"grp");
1107 $has_parent =
$tree->checkForParentType($this->object->getRefId(),
"crs");
1109 $num_inv = count($this->invitation_manager->getAllForSurvey($this->object->getSurveyId()));
1112 $tut =
new ilCheckboxInputGUI($this->lng->txt(
"survey_notification_tutor_setting"),
"tut");
1113 $tut->
setChecked($this->object->getTutorNotificationStatus());
1114 $form->addItem($tut);
1116 $tut_logins = array();
1117 $tuts = $this->
object->getTutorNotificationRecipients();
1119 foreach ($tuts as $tut_id) {
1121 if ($tmp[
"login"]) {
1122 $tut_logins[] = $tmp[
"login"];
1126 $tut_ids =
new ilTextInputGUI($this->lng->txt(
"survey_notification_tutor_recipients"),
"tut_ids");
1127 $tut_ids->setDataSource($this->ctrl->getLinkTarget($this,
"doAutoComplete",
"",
true));
1128 $tut_ids->setRequired(
true);
1129 $tut_ids->setMulti(
true);
1130 $tut_ids->setMultiValues($tut_logins);
1131 $tut_ids->setValue(array_shift($tut_logins));
1132 $tut->addSubItem($tut_ids);
1134 $tut_grp =
new ilRadioGroupInputGUI($this->lng->txt(
"survey_notification_target_group"),
"tut_grp");
1136 $tut_grp->setValue($this->object->getTutorNotificationTarget());
1137 $tut->addSubItem($tut_grp);
1140 $this->lng->txt(
"survey_notification_target_group_parent_course"),
1144 $tut_grp_crs->
setInfo($this->lng->txt(
"survey_notification_target_group_parent_course_inactive"));
1146 $tut_grp_crs->setInfo(sprintf(
1147 $this->lng->txt(
"survey_notification_target_group_invited_info"),
1148 count($this->object->getNotificationTargetUserIds(
false))
1151 $tut_grp->addOption($tut_grp_crs);
1154 $this->lng->txt(
"survey_notification_target_group_invited"),
1157 $tut_grp_inv->
setInfo(sprintf($this->lng->txt(
"survey_notification_target_group_invited_info"), $num_inv));
1158 $tut_grp->addOption($tut_grp_inv);
1160 $tut_res =
new ilCheckboxInputGUI($this->lng->txt(
"svy_notification_tutor_results"),
"tut_res");
1161 $tut_res->
setInfo($this->lng->txt(
"svy_notification_tutor_results_info"));
1162 $tut_res->setChecked($this->object->getTutorResultsStatus());
1163 $form->addItem($tut_res);
1165 $tut_res_logins = array();
1166 $tuts = $this->
object->getTutorResultsRecipients();
1168 foreach ($tuts as $tut_id) {
1170 if ($tmp[
"login"]) {
1171 $tut_res_logins[] = $tmp[
"login"];
1175 $tut_res_ids =
new ilTextInputGUI($this->lng->txt(
"survey_notification_tutor_recipients"),
"tut_res_ids");
1176 $tut_res_ids->setDataSource($this->ctrl->getLinkTarget($this,
"doAutoComplete",
"",
true));
1177 $tut_res_ids->setRequired(
true);
1178 $tut_res_ids->setMulti(
true);
1179 $tut_res_ids->setMultiValues($tut_res_logins);
1180 $tut_res_ids->setValue(array_shift($tut_res_logins));
1181 $tut_res->addSubItem($tut_res_ids);
1188 $info->setTitle($this->lng->txt(
"svy_settings_section_reminders"));
1189 $form->addItem($info);
1192 $rmd->
setChecked($this->object->getReminderStatus());
1193 $form->addItem($rmd);
1195 $rmd_start =
new ilDateTimeInputGUI($this->lng->txt(
"survey_reminder_start"),
"rmd_start");
1197 $start = $this->
object->getReminderStart();
1199 $rmd_start->setDate($start);
1201 $rmd->addSubItem($rmd_start);
1203 $end = $this->
object->getReminderEnd();
1204 $rmd_end =
new ilDateTimeInputGUI($this->lng->txt(
"survey_reminder_end"),
"rmd_end");
1208 $rmd->addSubItem($rmd_end);
1210 $rmd_freq =
new ilNumberInputGUI($this->lng->txt(
"survey_reminder_frequency"),
"rmd_freq");
1212 $rmd_freq->setSize(3);
1213 $rmd_freq->setSuffix($this->lng->txt(
"survey_reminder_frequency_days"));
1214 $rmd_freq->setValue($this->object->getReminderFrequency());
1215 $rmd_freq->setMinValue(1);
1216 $rmd->addSubItem($rmd_freq);
1219 if (!$this->object->get360Mode()) {
1220 $rmd_grp =
new ilRadioGroupInputGUI($this->lng->txt(
"survey_notification_target_group"),
"rmd_grp");
1222 $rmd_grp->setValue($this->object->getReminderTarget());
1223 $rmd->addSubItem($rmd_grp);
1226 $this->lng->txt(
"survey_notification_target_group_parent_course"),
1230 $rmd_grp_crs->
setInfo($this->lng->txt(
"survey_notification_target_group_parent_course_inactive"));
1232 $rmd_grp_crs->setInfo(sprintf(
1233 $this->lng->txt(
"survey_notification_target_group_invited_info"),
1234 count($this->object->getNotificationTargetUserIds(
false))
1237 $rmd_grp->addOption($rmd_grp_crs);
1240 $this->lng->txt(
"survey_notification_target_group_invited"),
1243 $rmd_grp_inv->
setInfo(sprintf($this->lng->txt(
"survey_notification_target_group_invited_info"), $num_inv));
1244 $rmd_grp->addOption($rmd_grp_inv);
1246 $mtmpl = $this->
object->getReminderMailTemplates();
1250 $rmdt->addOption(
new ilRadioOption($this->lng->txt(
"svy_reminder_mail_template_none"), -1));
1251 foreach ($mtmpl as $mtmpl_id => $mtmpl_caption) {
1253 $rmdt->addOption($option);
1256 $reminderTemplateValue = -1;
1257 if ($this->object->getReminderTemplate()) {
1258 $reminderTemplateValue = $this->
object->getReminderTemplate();
1260 $rmdt->setValue($reminderTemplateValue);
1261 $rmd->addSubItem($rmdt);
1265 $cb =
new ilCheckboxInputGUI($this->lng->txt(
"survey_notification_target_group"),
"remind_appraisees");
1267 $cb->setInfo($this->lng->txt(
"survey_360_appraisees_remind_info"));
1269 $cb->setChecked(in_array(
1270 $this->object->getReminderTarget(),
1273 $rmd->addSubItem($cb);
1277 $cb->setOptionTitle($this->lng->txt(
"survey_360_raters"));
1278 $cb->setInfo($this->lng->txt(
"survey_360_raters_remind_info"));
1280 $cb->setChecked(in_array(
1281 $this->object->getReminderTarget(),
1284 $rmd->addSubItem($cb);
1291 $results->setTitle($this->lng->txt(
"results"));
1295 switch ($this->object->getMode()) {
1298 $ts_results->
setValue($this->object->get360Results());
1301 $option->
setInfo($this->lng->txt(
"survey_360_results_none_info"));
1302 $ts_results->addOption($option);
1305 $option->
setInfo($this->lng->txt(
"survey_360_results_own_info"));
1306 $ts_results->addOption($option);
1309 $option->
setInfo($this->lng->txt(
"survey_360_results_all_info"));
1310 $ts_results->addOption($option);
1312 $form->addItem($ts_results);
1317 $evaluation_access =
new ilRadioGroupInputGUI($this->lng->txt(
'evaluation_access'),
"self_eval_res");
1318 $evaluation_access->
setValue($this->object->getSelfEvaluationResults());
1321 $evaluation_access->addOption($option);
1324 $evaluation_access->addOption($option);
1327 $evaluation_access->addOption($option);
1329 $form->addItem($evaluation_access);
1333 $evaluation_access =
new ilRadioGroupInputGUI($this->lng->txt(
'evaluation_access'),
"evaluation_access");
1336 $option->
setInfo($this->lng->txt(
"svy_evaluation_access_off_info"));
1337 $evaluation_access->addOption($option);
1340 $option->
setInfo($this->lng->txt(
"svy_evaluation_access_all_info"));
1341 $evaluation_access->addOption($option);
1344 $option->
setInfo($this->lng->txt(
"svy_evaluation_access_participants_info"));
1345 $evaluation_access->addOption($option);
1347 $evaluation_access->setValue($this->object->getEvaluationAccess());
1348 $form->addItem($evaluation_access);
1350 $anonymization_options =
new ilRadioGroupInputGUI($this->lng->txt(
"survey_results_anonymization"),
"anonymization_options");
1352 $option =
new ilCheckboxOption($this->lng->txt(
"survey_results_personalized"),
"statpers");
1353 $option->
setInfo($this->lng->txt(
"survey_results_personalized_info"));
1354 $anonymization_options->addOption($option);
1356 $option =
new ilCheckboxOption($this->lng->txt(
"survey_results_anonymized"),
"statanon");
1357 $option->
setInfo($this->lng->txt(
"survey_results_anonymized_info"));
1358 $anonymization_options->addOption($option);
1359 $anonymization_options->setValue($this->object->hasAnonymizedResults()
1362 $form->addItem($anonymization_options);
1364 $surveySetting =
new ilSetting(
"survey");
1365 if ($surveySetting->get(
"anonymous_participants",
false)) {
1367 if ($surveySetting->get(
"anonymous_participants_min", 0)) {
1368 $min =
" (" . $this->lng->txt(
"svy_anonymous_participants_min") .
": " .
1369 $surveySetting->get(
"anonymous_participants_min") .
")";
1372 $anon_list =
new ilCheckboxInputGUI($this->lng->txt(
"svy_anonymous_participants_svy"),
"anon_list");
1373 $anon_list->
setInfo($this->lng->txt(
"svy_anonymous_participants_svy_info") . $min);
1374 $anon_list->setChecked($this->object->hasAnonymousUserList());
1378 if ($this->object->_hasDatasets($this->object->getSurveyId())) {
1379 $anonymization_options->setDisabled(
true);
1381 $anon_list->setDisabled(
true);
1386 $sum_score =
new ilCheckboxInputGUI($this->lng->txt(
"survey_calculate_sum_score"),
"calculate_sum_score");
1387 $sum_score->
setInfo($this->lng->txt(
"survey_calculate_sum_score_info"));
1388 $sum_score->setValue(
"1");
1389 $sum_score->setChecked($this->object->getCalculateSumScore());
1390 $form->addItem($sum_score);
1398 $svy_mode = $this->
object->getMode();
1401 $other->setTitle($this->lng->txt(
"other"));
1402 $form->addItem($other);
1404 $skill_service =
new ilCheckboxInputGUI($this->lng->txt(
"survey_activate_skill_service"),
"skill_service");
1405 $skill_service->
setInfo($this->lng->txt(
"survey_activate_skill_service_info"));
1406 $skill_service->setChecked($this->object->getSkillService());
1407 $form->addItem($skill_service);
1411 ->getObjectPositionSettingsByType($this->object->getType());
1413 if ($position_settings->isActive()) {
1416 $feat->setTitle($this->lng->txt(
'obj_features'));
1417 $form->addItem($feat);
1421 $this->object->getId(),
1429 $form->addCommandButton(
"saveProperties", $this->lng->txt(
"save"));
1432 if ($template_settings) {
1433 foreach ($template_settings as $id => $item) {
1434 if ($item[
"hide"]) {
1435 if ($id ==
"enabled_end_date") {
1438 if ($id ==
"enabled_start_date") {
1441 $form->removeItemByPostVar($id,
true);
1454 if ($a_section ==
'settings') {
1455 $this->tabs_gui->addSubTabTarget(
1457 $this->ctrl->getLinkTarget($this,
'properties')
1461 if ($lti_settings->hasSettingsAccess()) {
1462 $this->tabs_gui->addSubTabTarget(
1464 $this->ctrl->getLinkTargetByClass(ilLTIProviderObjectSettingGUI::class)
1484 $ilTabs->activateTab(
"settings");
1485 $ilTabs->activateSubTab(
'settings');
1487 if ($this->object->get360Mode()) {
1488 $ilHelp->setScreenId(
"settings_360");
1497 if ($this->object->getTemplate()) {
1498 $link = $this->ctrl->getLinkTarget($this,
"confirmResetTemplate");
1499 $link =
"<a href=\"" . $link .
"\">" . $this->lng->txt(
"survey_using_template_link") .
"</a>";
1500 $message =
"<div style=\"margin-top:10px\">" .
1502 $this->lng->txt(
"survey_using_template"),
1509 $this->tpl->setContent($a_form->getHTML() .
$message);
1514 $fields = array(
'login',
'firstname',
'lastname',
'email');
1517 $auto->setSearchFields($fields);
1518 $auto->setResultField(
'login');
1519 $auto->enableFieldSearchableCheck(
true);
1520 $auto->setMoreLinkAvailable(
true);
1522 if (($_REQUEST[
'fetchall'])) {
1536 $this->tpl->addBlockFile(
"ADM_CONTENT",
"adm_content",
"tpl.il_svy_svy_confirm_resettemplate.html",
"Modules/Survey");
1537 $this->tpl->setCurrentBlock(
"adm_content");
1538 $this->tpl->setVariable(
"BTN_CONFIRM_REMOVE", $this->lng->txt(
"confirm"));
1539 $this->tpl->setVariable(
"BTN_CANCEL_REMOVE", $this->lng->txt(
"cancel"));
1540 $this->tpl->setVariable(
"FORM_ACTION", $this->ctrl->getFormAction($this,
"resetTemplateObject"));
1541 $this->tpl->parseCurrentBlock();
1549 $this->
object->setTemplate(null);
1550 $this->
object->saveToDB();
1552 ilUtil::sendSuccess($this->lng->txt(
"survey_template_reset"),
true);
1553 $this->ctrl->redirect($this,
"properties");
1565 $form->setTarget(
"_top");
1566 $form->setFormAction($this->ctrl->getFormAction($this));
1567 $form->setTitle($this->lng->txt(
"import_svy"));
1569 $fi =
new ilFileInputGUI($this->lng->txt(
"import_file"),
"importfile");
1571 $fi->setRequired(
true);
1572 $form->addItem($fi);
1575 $questionspools = $svy->getAvailableQuestionpools(
true,
true,
true);
1577 $pools =
new ilSelectInputGUI($this->lng->txt(
"select_questionpool_short"),
"spl");
1578 $pools->setOptions(array(
"" => $this->lng->txt(
"dont_use_questionpool")) + $questionspools);
1579 $pools->setRequired(
false);
1580 $form->addItem($pools);
1582 $form->addCommandButton(
"importSurvey", $this->lng->txt(
"import"));
1583 $form->addCommandButton(
"cancel", $this->lng->txt(
"cancel"));
1595 $parent_id =
$_GET[
"ref_id"];
1596 $new_type = $_REQUEST[
"new_type"];
1601 $this->lng->loadLanguageModule($new_type);
1602 $this->ctrl->setParameter($this,
"new_type", $new_type);
1605 if ($form->checkInput()) {
1607 $newObj->setType($new_type);
1608 $newObj->setTitle(
"dummy");
1609 $newObj->create(
true);
1614 $this->log->debug(
"form->getInput(spl) = " . $form->getInput(
"spl"));
1616 $error = $newObj->importObject($_FILES[
"importfile"], $form->getInput(
"spl"));
1617 if (strlen($error)) {
1623 ilUtil::sendSuccess($this->lng->txt(
"object_imported"),
true);
1625 "&baseClass=ilObjSurveyGUI");
1631 $tpl->addJavaScript(
"./Modules/Scorm2004/scripts/questions/jquery.js");
1634 $this->tpl->setCurrentBlock(
"template_option");
1635 $this->tpl->setVariable(
"VAL_TEMPLATE_OPTION",
"");
1636 $this->tpl->setVariable(
"TXT_TEMPLATE_OPTION", $this->lng->txt(
"none"));
1637 $this->tpl->parseCurrentBlock();
1639 foreach ($templates as $item) {
1640 $this->tpl->setCurrentBlock(
"template_option");
1641 $this->tpl->setVariable(
"VAL_TEMPLATE_OPTION", $item[
"id"]);
1642 $this->tpl->setVariable(
"TXT_TEMPLATE_OPTION", $item[
"title"]);
1643 $this->tpl->parseCurrentBlock();
1645 $desc = str_replace(
"\n",
"", nl2br($item[
"description"]));
1646 $desc = str_replace(
"\r",
"", $desc);
1648 $this->tpl->setCurrentBlock(
"js_data");
1649 $this->tpl->setVariable(
"JS_DATA_ID", $item[
"id"]);
1650 $this->tpl->setVariable(
"JS_DATA_TEXT", $desc);
1651 $this->tpl->parseCurrentBlock();
1654 $this->tpl->setCurrentBlock(
"templates");
1655 $this->tpl->setVariable(
"TXT_TEMPLATE", $this->lng->txt(
"svy_settings_template"));
1656 $this->tpl->parseCurrentBlock();
1661 $form->setValuesByPost();
1662 $tpl->setContent($form->getHtml());
1677 $this->ctrl->setCmd(
"showSummary");
1678 $this->ctrl->setCmdClass(
"ilinfoscreengui");
1692 if (!$this->external_rater_360) {
1698 $ilTabs->activateTab(
"info_short");
1703 $info->enablePrivateNotes();
1706 $is_appraisee =
false;
1709 if ($this->object->get360Mode() &&
1710 $this->
object->isAppraisee(
$ilUser->getId())) {
1711 $is_appraisee =
true;
1713 $info->addSection($this->lng->txt(
"survey_360_appraisee_info"));
1715 $appr_data = $this->
object->getAppraiseesData();
1716 $appr_data = $appr_data[
$ilUser->getId()];
1717 $info->addProperty($this->lng->txt(
"survey_360_raters_status_info"), $appr_data[
"finished"]);
1719 if (!$appr_data[
"closed"]) {
1721 $button->setCaption(
"survey_360_appraisee_close_action");
1722 $button->setUrl($this->ctrl->getLinkTargetByClass(
"ilsurveyparticipantsgui",
"confirmappraiseeclose"));
1723 $close_button_360 =
'<div>' . $button->render() .
'</div>';
1725 $txt =
"survey_360_appraisee_close_action_info";
1726 if ($this->object->getSkillService()) {
1730 $this->lng->txt(
"status"),
1731 $close_button_360 . $this->lng->txt(
$txt)
1738 $this->lng->txt(
"status"),
1740 $this->lng->txt(
"survey_360_appraisee_close_action_status"),
1751 $code_input =
false;
1752 $anonymous_code =
$_POST[
"anonymous_id"];
1753 if ($anonymous_code) {
1756 if (!$this->object->checkSurveyCode($anonymous_code)) {
1757 $anonymous_code = null;
1760 $this->
object->bindSurveyCodeToUser(
$ilUser->getId(), $anonymous_code);
1763 if ($anonymous_code) {
1764 $_SESSION[
"anonymous_id"][$this->
object->getId()] = $anonymous_code;
1766 $anonymous_code =
$_SESSION[
"anonymous_id"][$this->
object->getId()];
1767 if ($anonymous_code) {
1773 if ($this->object->getAnonymize() && !$anonymous_code) {
1774 $anonymous_code = $this->
object->findCodeForUser(
$ilUser->getId());
1778 $participant_status = $this->
object->getUserSurveyExecutionStatus($anonymous_code);
1779 if ($participant_status) {
1780 $anonymous_code = $participant_status[
"code"];
1781 $participant_status = $participant_status[
"runs"];
1785 if (!$this->object->isAccessibleWithoutCode() &&
1788 (!$anonymous_code || !$this->
object->isAnonymousKey($anonymous_code))) {
1789 $anonymous_code = null;
1794 $_SESSION[
"anonymous_id"][$this->
object->getId()] = $anonymous_code;
1796 $survey_started = $this->
object->isSurveyStarted(
$ilUser->getId(), $anonymous_code);
1798 $showButtons = $big_button =
false;
1801 if (!$this->object->get360Mode() &&
1802 ($survey_started === 1 &&
1807 if ($this->object->hasViewOwnResults()) {
1809 $button->setCaption(
"svy_view_own_results");
1810 $button->setUrl($this->ctrl->getLinkTarget($this,
"viewUserResults"));
1811 $ilToolbar->addButtonInstance($button);
1815 if ($this->object->hasMailConfirmation()) {
1816 if ($this->object->hasViewOwnResults()) {
1817 $ilToolbar->addSeparator();
1822 require_once
"Services/Form/classes/class.ilTextInputGUI.php";
1825 $mail->setValue(
$ilUser->getEmail());
1826 $ilToolbar->addInputItem($mail,
true);
1829 $ilToolbar->setFormAction($this->ctrl->getFormAction($this,
"mailUserResults"));
1832 $button->setCaption(
"svy_mail_send_confirmation");
1833 $button->setCommand(
"mailUserResults");
1834 $ilToolbar->addButtonInstance($button);
1839 $canStart = $this->
object->canStartSurvey(null, $this->external_rater_360);
1841 $showButtons = $canStart[
"result"];
1842 if (!$showButtons) {
1843 if ($canStart[
"edit_settings"] &&
1844 $ilAccess->checkAccess(
"write",
"", $this->ref_id)) {
1845 $canStart[
"messages"][] =
"<a href=\"" . $this->ctrl->getLinkTarget($this,
"properties") .
"\">» " .
1846 $this->lng->txt(
"survey_edit_settings") .
"</a>";
1854 if (!$is_appraisee &&
1856 !$this->object->isAccessibleWithoutCode()) {
1857 $info->setFormAction($this->ctrl->getFormAction($this,
"infoScreen"));
1858 $info->addSection($this->lng->txt(
"anonymization"));
1859 $info->addProperty(
"", $this->lng->txt(
"anonymize_anonymous_introduction"));
1860 $info->addPropertyTextinput($this->lng->txt(
"enter_anonymous_id"),
"anonymous_id",
"", 8,
"infoScreen", $this->lng->txt(
"submit"),
true);
1863 if (!$this->object->get360Mode()) {
1864 if ($anonymous_code) {
1865 $info->addHiddenElement(
"anonymous_id", $anonymous_code);
1867 if ($survey_started === 0) {
1868 $big_button = array(
"resume", $this->lng->txt(
"resume_survey"));
1869 } elseif ($survey_started ===
false) {
1870 $big_button = array(
"start", $this->lng->txt(
"start_survey"));
1875 $appr_ids = array();
1878 if ($anonymous_code) {
1879 $anonymous_id = $this->
object->getAnonymousIdByCode($anonymous_code);
1880 if ($anonymous_id) {
1881 $appr_ids = $this->
object->getAppraiseesToRate(0, $anonymous_id);
1888 $appr_ids = $this->
object->getAppraiseesToRate(
$ilUser->getId());
1891 if (
sizeof($appr_ids)) {
1893 $active_appraisees = array();
1894 if ($participant_status) {
1895 foreach ($participant_status as $item) {
1896 $active_appraisees[$item[
"appr_id"]] = $item[
"finished"];
1902 foreach ($appr_ids as $appr_id) {
1903 if ($this->object->isAppraiseeClosed($appr_id)) {
1905 $list[$appr_id] = $this->lng->txt(
"survey_360_appraisee_is_closed");
1906 } elseif (array_key_exists($appr_id, $active_appraisees)) {
1908 if ($active_appraisees[$appr_id]) {
1909 $list[$appr_id] = $this->lng->txt(
"already_completed_survey");
1913 $list[$appr_id] = array(
"resume", $this->lng->txt(
"resume_survey"));
1917 $list[$appr_id] = array(
"start", $this->lng->txt(
"start_survey"));
1921 $info->addSection($this->lng->txt(
"survey_360_rate_other_appraisees"));
1923 foreach ($list as $appr_id => $item) {
1926 if (!is_array($item)) {
1927 $info->addProperty($appr_name, $item);
1929 $this->ctrl->setParameter($output_gui,
"appr_id", $appr_id);
1930 $href = $this->ctrl->getLinkTarget($output_gui, $item[0]);
1931 $this->ctrl->setParameter($output_gui,
"appr_id",
"");
1934 $button->setCaption($item[1],
false);
1935 $button->setUrl($href);
1936 $big_button_360 =
'<div>' . $button->render() .
'</div>';
1938 $info->addProperty($appr_name, $big_button_360);
1941 } elseif (!$is_appraisee) {
1947 if ($this->object->get360Mode() &&
1948 $this->
object->get360SelfAppraisee() &&
1949 !$this->
object->isAppraisee(
$ilUser->getId()) &&
1951 $link = $this->ctrl->getLinkTargetByClass(
"ilsurveyparticipantsgui",
"addSelfAppraisee");
1952 $link =
'<a href="' . $link .
'">' . $this->lng->txt(
"survey_360_add_self_appraisee") .
'</a>';
1953 $info->addProperty(
" ", $link);
1958 $ilToolbar->setFormAction($this->ctrl->getFormAction($output_gui,
"infoScreen"));
1961 $button->setCaption($big_button[1],
false);
1962 $button->setCommand($big_button[0]);
1963 $button->setPrimary(
true);
1964 $ilToolbar->addButtonInstance($button);
1966 $ilToolbar->setCloseFormTag(
false);
1967 $info->setOpenFormTag(
false);
1976 if (strlen($this->object->getIntroduction())) {
1977 $introduction = $this->
object->getIntroduction();
1978 $info->addSection($this->lng->txt(
"introduction"));
1979 $info->addProperty(
"", $this->object->prepareTextareaOutput($introduction) .
1980 "<br />" . $info->getHiddenToggleButton());
1982 $info->addSection($this->lng->txt(
"show_details"));
1983 $info->addProperty(
"", $info->getHiddenToggleButton());
1986 $info->hideFurtherSections(
false);
1988 if (!$this->object->get360Mode()) {
1989 $info->addSection($this->lng->txt(
"svy_general_properties"));
1992 $this->lng->txt(
"survey_results_anonymization"),
1993 !$this->
object->hasAnonymizedResults()
1994 ? $this->lng->txt(
"survey_results_personalized_info")
1995 : $this->lng->txt(
"survey_results_anonymized_info")
2000 $info->addProperty($this->lng->txt(
"evaluation_access"), $this->lng->txt(
"evaluation_access_info"));
2004 $info->addMetaDataSections($this->object->getId(), 0, $this->
object->getType());
2006 $this->ctrl->forwardCommand($info);
2012 switch ($this->ctrl->getCmd()) {
2017 case "redirectQuestion":
2018 $ilLocator->addItem($this->object->getTitle(), $this->ctrl->getLinkTarget($this,
"infoScreen"),
"",
$_GET[
"ref_id"]);
2021 case "checkEvaluationAccess":
2022 case "evaluationdetails":
2023 case "evaluationuser":
2024 $ilLocator->addItem($this->object->getTitle(), $this->ctrl->getLinkTargetByClass(
"ilsurveyevaluationgui",
"evaluation"),
"",
$_GET[
"ref_id"]);
2029 case "importSurvey":
2033 $ilLocator->addItem($this->object->getTitle(), $this->ctrl->getLinkTarget($this,
"infoScreen"),
"",
$_GET[
"ref_id"]);
2036 $ilLocator->addItem($this->object->getTitle(), $this->ctrl->getLinkTarget($this,
"infoScreen"),
"",
$_GET[
"ref_id"]);
2039 if ((
int)
$_GET[
"q_id"] && !(int) $_REQUEST[
"new_for_survey"]) {
2042 $q_id = (int)
$_GET[
"q_id"];
2044 $this->ctrl->setParameterByClass($q_type,
"q_id", $q_id);
2045 $ilLocator->addItem(
2047 $this->ctrl->getLinkTargetByClass(array(
"ilSurveyEditorGUI", $q_type),
"editQuestion")
2061 public static function _goto($a_target, $a_access_code =
"")
2065 $ilAccess = $DIC->access();
2066 $lng = $DIC->language();
2069 if (strlen($a_access_code)) {
2071 $_GET[
"baseClass"] =
"ilObjSurveyGUI";
2072 $_GET[
"cmd"] =
"infoScreen";
2073 $_GET[
"ref_id"] = $a_target;
2074 include(
"ilias.php");
2078 if ($ilAccess->checkAccess(
"visible",
"", $a_target) ||
2079 $ilAccess->checkAccess(
"read",
"", $a_target)) {
2080 $_GET[
"baseClass"] =
"ilObjSurveyGUI";
2081 $_GET[
"cmd"] =
"infoScreen";
2082 $_GET[
"ref_id"] = $a_target;
2083 include(
"ilias.php");
2087 $lng->txt(
"msg_no_perm_read_item"),
2096 $rtpl =
new ilTemplate(
"tpl.svy_view_user_results.html",
true,
true,
"Modules/Survey");
2098 $show_titles = (bool) $this->object->getShowQuestionTitles();
2100 foreach ($this->object->getSurveyPages() as $page) {
2101 if (count($page) > 0) {
2103 if (count($page) > 1) {
2104 if ((
bool) $page[0][
"questionblock_show_blocktitle"]) {
2105 $rtpl->setVariable(
"BLOCK_TITLE", trim($page[0][
"questionblock_title"]));
2110 foreach ($page as $question) {
2111 $question_gui = $this->
object->getQuestionGUI($question[
"type_tag"], $question[
"question_id"]);
2112 if (is_object($question_gui)) {
2113 $rtpl->setCurrentBlock(
"question_bl");
2116 if (strlen($question[
"heading"])) {
2117 $rtpl->setVariable(
"HEADING", trim($question[
"heading"]));
2122 $question_gui->getPrintView(
2124 (
bool) $question[
"questionblock_show_questiontext"],
2125 $this->object->getId(),
2126 $this->
object->loadWorkingData($question[
"question_id"], $a_active_id)
2130 $rtpl->parseCurrentBlock();
2134 $rtpl->setCurrentBlock(
"block_bl");
2135 $rtpl->parseCurrentBlock();
2139 return $rtpl->get();
2148 $anonymous_code =
$_SESSION[
"anonymous_id"][$this->
object->getId()];
2149 $active_id = $this->
object->getActiveID(
$ilUser->getId(), $anonymous_code, 0);
2150 if ($this->object->isSurveyStarted(
$ilUser->getId(), $anonymous_code) !== 1 ||
2152 $this->ctrl->redirect($this,
"infoScreen");
2155 $ilTabs->clearTargets();
2156 $ilTabs->setBackTarget(
2157 $this->lng->txt(
"btn_back"),
2158 $this->ctrl->getLinkTarget($this,
"infoScreen")
2162 $tpl->setContent($html);
2169 $show_titles = (bool) $this->object->getShowQuestionTitles();
2171 foreach ($this->object->getSurveyPages() as $page) {
2172 if (count($page) > 0) {
2173 $res[] =
"\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n";
2176 if (count($page) > 1) {
2177 if ((
bool) $page[0][
"questionblock_show_blocktitle"]) {
2178 $res[$this->lng->txt(
"questionblock")] = trim($page[0][
"questionblock_title"]) .
"\n";
2184 $page_res = array();
2186 foreach ($page as $question) {
2187 $question_gui = $this->
object->getQuestionGUI($question[
"type_tag"], $question[
"question_id"]);
2188 if (is_object($question_gui)) {
2189 $question_parts = array();
2192 if (strlen($question[
"heading"])) {
2193 $question_parts[$this->lng->txt(
"heading")] = trim($question[
"heading"]);
2197 $question_parts[$this->lng->txt(
"title")] = trim($question[
"title"]);
2200 if ((
bool) $question[
"questionblock_show_questiontext"]) {
2201 $question_parts[$this->lng->txt(
"question")] = trim(strip_tags($question_gui->object->getQuestionText()));
2204 $answers = $question_gui->getParsedAnswers(
2205 $this->object->loadWorkingData($question[
"question_id"], $a_active_id),
2209 if (
sizeof($answers)) {
2211 if (
sizeof($answers) > 1 ||
2212 get_class($question_gui) ==
"SurveyTextQuestionGUI") {
2217 foreach ($answers as $answer) {
2219 if ($answer[
"textanswer"]) {
2220 $text =
' ("' . $answer[
"textanswer"] .
'")';
2222 if (!isset($answer[
"cols"])) {
2223 if (isset($answer[
"title"])) {
2224 $parts[] = $answer[
"title"] . $text;
2225 } elseif (isset($answer[
"value"])) {
2226 $parts[] = $answer[
"value"];
2228 $parts[] = substr($text, 2, -1);
2234 foreach ($answer[
"cols"] as $col) {
2235 $tmp[] = $col[
"title"];
2237 $parts[] = $answer[
"title"] .
": " . implode(
", ", $tmp) . $text;
2240 $question_parts[$this->lng->txt(
"answer")] =
2241 ($multiline ?
"\n" :
"") . implode(
"\n", $parts);
2245 foreach ($question_parts as
$type => $value) {
2246 $tmp[] =
$type .
": " . $value;
2248 $page_res[] = implode(
"\n", $tmp);
2252 $res[] = implode(
"\n\n-------------------------------\n\n", $page_res);
2256 $res[] =
"\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n";
2258 return implode(
"\n",
$res);
2261 public function sendUserResultsMail($a_active_id, $a_recipient)
2265 $finished = $this->
object->getSurveyParticipants(array($a_active_id));
2266 $finished = array_pop($finished);
2269 require_once
"Services/Mail/classes/class.ilMail.php";
2270 require_once
"Services/Link/classes/class.ilLink.php";
2273 $body .= $this->lng->txt(
"svy_mail_own_results_body") .
"\n";
2274 $body .=
"\n" . $this->lng->txt(
"obj_svy") .
": " . $this->
object->getTitle() .
"\n";
2276 $body .=
"\n" . $this->lng->txt(
"survey_results_finished") .
": " . $finished .
"\n\n";
2278 if ($this->object->hasMailOwnResults()) {
2279 $subject =
"svy_mail_own_results_subject";
2282 $subject =
"svy_mail_confirmation_subject";
2289 $senderFactory =
$GLOBALS[
"DIC"][
"mail.mime.sender.factory"];
2292 $mmail->From($senderFactory->system());
2293 $mmail->To($a_recipient);
2294 $mmail->Subject(sprintf($this->lng->txt($subject), $this->
object->getTitle()),
true);
2295 $mmail->Body($body);
2303 $anonymous_code =
$_SESSION[
"anonymous_id"][$this->
object->getId()];
2304 $active_id = $this->
object->getActiveID(
$ilUser->getId(), $anonymous_code, 0);
2305 if ($this->object->isSurveyStarted(
$ilUser->getId(), $anonymous_code) !== 1 ||
2307 $this->ctrl->redirect($this,
"infoScreen");
2310 $recipient =
$_POST[
"mail"];
2312 $recipient =
$ilUser->getEmail();
2315 $this->ctrl->redirect($this,
"infoScreen");
2318 $this->sendUserResultsMail($active_id, $recipient);
2320 ilUtil::sendSuccess($this->lng->txt(
"mail_sent"),
true);
2321 $this->ctrl->redirect($this,
"infoScreen");
2333 return $access->checkRbacOrPositionPermissionAccess(
2335 $a_position_permission,
2336 $this->object->getRefId()
Class ilSurveyParticipantsGUI.
static _lookupName($a_user_id)
lookup user name
This class represents an option in a radio group.
Survey skill service GUI class.
static getAllSettingsTemplates($a_type, $a_include_auto_generated=false)
Get all settings templates of type.
static _goto($a_target, $a_access_code="")
redirect script
setValue($a_value)
Set Value.
This class represents an option in a checkbox group.
resetTemplateObject()
Enable all settings - remove template.
const EVALUATION_ACCESS_OFF
Class ilObjSurveyQuestionPool.
static _getRichTextEditor()
Returns the identifier for the Rich Text Editor.
GUI class for the workflow of copying objects.
static validateExternalRaterCode($a_ref_id, $a_code)
static is_email($a_email, ilMailRfc822AddressParserFactory $mailAddressParserFactory=null)
This preg-based function checks whether an e-mail address is formally valid.
Skill management settings.
const EVALUATION_ACCESS_PARTICIPANTS
static getStyleSheetLocation($mode="output", $a_css_name="", $a_css_location="")
get full style sheet file name (path inclusive) of current user
Class ilSurveyConstraintsGUI.
static _hasDatasets($survey_id)
static getSystemMessageHTML($a_txt, $a_type="info")
Get HTML for a system message.
static _getTitle($question_id)
Returns the question title of a question with a given id.
static _getUsedHTMLTags($a_module="")
Returns an array of all allowed HTML tags for text editing.
const NOTIFICATION_APPRAISEES
setValue($a_value)
Set Value.
static _gotoRepositoryRoot($a_raise_error=false)
Goto repository root.
static _getQuestionType($question_id)
Returns the question type of a question with a given id.
static _lookupId($a_user_str)
Lookup id by login.
static setUseRelativeDates($a_status)
set use relative dates
static _lookupTitle($a_id)
lookup object title
getUserResultsPlain($a_active_id)
setInfo($a_info)
Set Info.
initImportForm($a_new_type)
static formatDate(ilDateTime $date, $a_skip_day=false, $a_include_wd=false, $include_seconds=false)
Format a date public.
savePropertiesObject()
Save the survey properties.
static _getAllReferences($a_id)
get all reference ids of object
checkRbacOrPositionPermission($a_rbac_permission, $a_position_permission)
Check rbac or position permission.
Auto completion class for user lists.
static getInstance()
Get instance.
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
Export User Interface Class.
static checkAccess($a_ref_id, $a_allow_only_read=true)
check access to learning progress
setCustomRolesForSelection($a_roles)
Set custom roles for mapping to LTI roles.
prepareOutput($a_show_subobjects=true)
prepare output
addDidacticTemplateOptions(array &$a_options)
importSurveyObject()
form for new survey object import
foreach($_POST as $key=> $value) $res
GUI class for LTI provider object settings.
afterSave(ilObject $a_new_object)
save object public
const ANONYMIZE_FREEACCESS
const NOTIFICATION_PARENT_COURSE
const RESULTS_SELF_EVAL_OWN
const NOTIFICATION_APPRAISEES_AND_RATERS
Survey execution graphical output.
Class ilObjectGUI Basic methods of all Output classes.
static _lookupObjId($a_id)
if(!defined('PATH_SEPARATOR')) $GLOBALS['_PEAR_default_error_mode']
infoScreenObject()
this one is called from the info button in the repository not very nice to set cmdClass/Cmd manually...
setCols($a_cols)
Set Cols.
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
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, $a_ctrl_path="ilpublicuserprofilegui")
Default behaviour is:
static lookupTitle($a_id)
Lookup title.
static sendQuestion($a_info="", $a_keep=false)
Send Question to Screen.
const NOTIFICATION_INVITED_USERS
static updateServiceSettingsForm($a_obj_id, ilPropertyFormGUI $form, $services)
Update service settings.
infoScreen()
show information screen
evaluationObject()
Redirects the evaluation object call to the ilSurveyEvaluationGUI class.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
const EVALUATION_ACCESS_ALL
static _hasEvaluationAccess($a_obj_id, $user_id)
propertiesObject(ilPropertyFormGUI $a_form=null)
Display and fill the properties form of the test.
confirmResetTemplateObject()
Enable all settings - Confirmation.
This class represents a non editable value in a property form.
__construct(Container $dic, ilPlugin $plugin)
const LP_CONTEXT_REPOSITORY
This class represents a text area property in a property form.
static initServiceSettingsForm($a_obj_id, ilPropertyFormGUI $form, $services)
Init service settings form.
getTabs()
adds tabs to tab gui object
const RESULTS_SELF_EVAL_NONE
getCreationMode()
get creation mode
getRefId()
get reference id public
addSubTabs($a_section)
Add subtabs for tabs.
putObjectInTree(ilObject $a_obj, $a_parent_node_id=null)
Add object to tree at given position.
checkPermission($a_perm, $a_cmd="", $a_type="", $a_ref_id=null)
Check permission and redirect on error.
getDidacticTemplateVar($a_type)
Get didactic template setting from creation screen.
New PermissionGUI (extends from old ilPermission2GUI) RBAC related output.
static getLogger($a_component_id)
Get component logger.
Survey skill determination GUI class.
Survey evaluation graphical output.
getUserResultsTable($a_active_id)
const NOTIFICATION_RATERS
const ORGU_POSITION_ACCESS
static redirect($a_script)
addHeaderAction()
Add header action menu.
checkPermissionBool($a_perm, $a_cmd="", $a_type="", $a_ref_id=null)
Check permission.
Class ilObjUserTrackingGUI.
const RESULTS_SELF_EVAL_ALL
static _getLink($a_ref_id, $a_type='', $a_params=array(), $append="")
Settings template application class.
static getInstanceFromAjaxCall()
(Re-)Build instance from ajax call
static _getInstallationSignature()
static getSalutation($a_usr_id, ilLanguage $a_language=null)
initPropertiesForm()
Init survey settings form.