ILIAS  release_5-4 Revision v5.4.26-12-gabc799a52e6
ilSurveyParticipantsGUI Class Reference

Class ilSurveyParticipantsGUI. More...

+ Collaboration diagram for ilSurveyParticipantsGUI:

Public Member Functions

 __construct (ilObjSurveyGUI $a_parent_gui, $a_has_write_access)
 
 executeCommand ()
 
 maintenanceObject ()
 Participants maintenance. More...
 
 setCodesSubtabs ()
 Set the tabs for the access codes section. More...
 
 disinviteUserGroupObject ()
 Disinvite users or groups from a survey. More...
 
 inviteUserGroupObject ($a_user_ids=array())
 Invite users or groups to a survey. More...
 
 saveInvitationStatusObject ()
 Saves the status of the invitation tab. More...
 
 inviteObject ()
 Creates the output for user/group invitation to a survey. More...
 
 deleteAllUserDataObject ()
 Creates a confirmation form for delete all user data. More...
 
 confirmDeleteAllUserDataObject ()
 Deletes all user data of the survey after confirmation. More...
 
 cancelDeleteAllUserDataObject ()
 Cancels delete of all user data in maintenance. More...
 
 confirmDeleteSelectedUserDataObject ()
 Deletes all user data for the test object. More...
 
 cancelDeleteSelectedUserDataObject ()
 Cancels the deletion of all user data for the test object. More...
 
 deleteSingleUserResultsObject ()
 Asks for a confirmation to delete selected user data of the test object. More...
 
 setCodeLanguageObject ()
 Change survey language for direct access URL's. More...
 
 codesObject ()
 Display the survey access codes tab. More...
 
 editCodesObject ()
 
 updateCodesObject ()
 
 deleteCodesConfirmObject ()
 
 deleteCodesObject ()
 Delete a list of survey codes. More...
 
 exportCodesObject ()
 Exports a list of survey codes. More...
 
 exportAllCodesObject ()
 Exports all survey codes. More...
 
 createSurveyCodesObject ()
 Create access codes for the survey. More...
 
 insertSavedMessageObject ()
 
 deleteSavedMessageObject ()
 
 mailCodesObject ()
 
 sendCodesMailObject ()
 
 importExternalRecipientsFromTextObject ()
 
 importExternalRecipientsFromFileObject ()
 
 importExternalMailRecipientsFromFileFormObject ()
 
 importExternalMailRecipientsFromTextFormObject ()
 
 listAppraiseesObject ()
 
 addAppraisee ($a_user_ids)
 
 confirmDeleteAppraiseesObject ()
 
 deleteAppraiseesObject ()
 
 handleRatersAccess ()
 
 editRatersObject ()
 
 addExternalRaterFormObject (ilPropertyFormGUI $a_form=null)
 
 addExternalRaterObject ()
 
 addRater ($a_user_ids)
 
 confirmDeleteRatersObject ()
 
 deleteRatersObject ()
 
 addSelfAppraiseeObject ()
 
 initMailRatersForm ($appr_id, array $rec_ids)
 
 mailRatersObject (ilPropertyFormGUI $a_form=null)
 
 mailRatersActionObject ()
 
 confirmAppraiseeCloseObject ()
 
 confirmAppraiseeCloseCancelObject ()
 
 appraiseeCloseObject ()
 
 confirmAdminAppraiseesCloseObject ()
 
 adminAppraiseesCloseObject ()
 
 getObject ()
 

Protected Member Functions

 handleWriteAccess ()
 
 filterSurveyParticipantsByAccess ($a_finished_ids=null)
 
 isAnonymousListActive ()
 
 importAccessCodesObject ()
 Import codes from export codes file (upload form) More...
 
 importAccessCodesActionObject ()
 Import codes from export codes file. More...
 
 _convertCharset ($a_string, $a_from_charset="", $a_to_charset="UTF-8")
 
 removeUTF8Bom ($a_text)
 
 initExternalRaterForm ($appr_id)
 
 listParticipantsObject ()
 

Protected Attributes

 $ctrl
 
 $lng
 
 $tpl
 
 $tabs
 
 $toolbar
 
 $access
 
 $rbacsystem
 
 $user
 
 $log
 
 $parent_gui
 
 $object
 
 $ref_id
 
 $has_write
 

Detailed Description

Constructor & Destructor Documentation

◆ __construct()

ilSurveyParticipantsGUI::__construct ( ilObjSurveyGUI  $a_parent_gui,
  $a_has_write_access 
)

Definition at line 66 of file class.ilSurveyParticipantsGUI.php.

67 {
68 global $DIC;
69
70 $this->tabs = $DIC->tabs();
71 $this->toolbar = $DIC->toolbar();
72 $this->access = $DIC->access();
73 $this->rbacsystem = $DIC->rbac()->system();
74 $this->user = $DIC->user();
75 $this->log = $DIC["ilLog"];
76 $ilCtrl = $DIC->ctrl();
77 $lng = $DIC->language();
78 $tpl = $DIC["tpl"];
79
80 $this->parent_gui = $a_parent_gui;
81 $this->object = $this->parent_gui->object;
82 $this->ref_id = $this->object->getRefId();
83 $this->has_write = (bool) $a_has_write_access;
84
85 $this->ctrl = $ilCtrl;
86 $this->lng = $lng;
87 $this->tpl = $tpl;
88 }
user()
Definition: user.php:4
global $ilCtrl
Definition: ilias.php:18
global $DIC
Definition: saml.php:7

References $DIC, $ilCtrl, $lng, $tpl, and user().

+ Here is the call graph for this function:

Member Function Documentation

◆ _convertCharset()

ilSurveyParticipantsGUI::_convertCharset (   $a_string,
  $a_from_charset = "",
  $a_to_charset = "UTF-8" 
)
protected

Definition at line 1035 of file class.ilSurveyParticipantsGUI.php.

1036 {
1037 if (extension_loaded("mbstring")) {
1038 if (!$a_from_charset) {
1039 mb_detect_order("UTF-8, ISO-8859-1, Windows-1252, ASCII");
1040 $a_from_charset = mb_detect_encoding($a_string);
1041 }
1042 if (strtoupper($a_from_charset) != $a_to_charset) {
1043 return @mb_convert_encoding($a_string, $a_to_charset, $a_from_charset);
1044 }
1045 }
1046 return $a_string;
1047 }

Referenced by importExternalRecipientsFromFileObject().

+ Here is the caller graph for this function:

◆ addAppraisee()

ilSurveyParticipantsGUI::addAppraisee (   $a_user_ids)

Definition at line 1250 of file class.ilSurveyParticipantsGUI.php.

1251 {
1252 if (sizeof($a_user_ids)) {
1253 // #13319
1254 foreach (array_unique($a_user_ids) as $user_id) {
1255 $this->object->addAppraisee($user_id);
1256 }
1257
1258 ilUtil::sendSuccess($this->lng->txt("settings_saved"), true);
1259 }
1260 $this->ctrl->redirect($this, "listAppraisees");
1261 }

◆ addExternalRaterFormObject()

ilSurveyParticipantsGUI::addExternalRaterFormObject ( ilPropertyFormGUI  $a_form = null)

Definition at line 1394 of file class.ilSurveyParticipantsGUI.php.

1395 {
1396 $ilTabs = $this->tabs;
1397 $ilAccess = $this->access;
1398
1399 $appr_id = $this->handleRatersAccess();
1400 $this->ctrl->setParameter($this, "appr_id", $appr_id);
1401
1402 $has_write = $ilAccess->checkAccess("write", "", $this->ref_id);
1403 if ($has_write) {
1404 $ilTabs->clearTargets();
1405 $ilTabs->setBackTarget(
1406 $this->lng->txt("btn_back"),
1407 $this->ctrl->getLinkTarget($this, "editRaters")
1408 );
1409 }
1410
1411 if (!$a_form) {
1412 $a_form = $this->initExternalRaterForm($appr_id);
1413 }
1414
1415 $this->tpl->setContent($a_form->getHTML());
1416 }

References $access, $has_write, $tabs, handleRatersAccess(), and initExternalRaterForm().

Referenced by addExternalRaterObject().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ addExternalRaterObject()

ilSurveyParticipantsGUI::addExternalRaterObject ( )

Definition at line 1445 of file class.ilSurveyParticipantsGUI.php.

1446 {
1447 $appr_id = $_REQUEST["appr_id"];
1448 if (!$appr_id) {
1449 $this->ctrl->redirect($this, "listAppraisees");
1450 }
1451
1452 $this->ctrl->setParameter($this, "appr_id", $appr_id);
1453
1454 $form = $this->initExternalRaterForm($appr_id);
1455 if ($form->checkInput()) {
1456 $data = array(
1457 "email" => $form->getInput("email"),
1458 "lastname" => $form->getInput("lname"),
1459 "firstname" => $form->getInput("fname")
1460 );
1461 $anonymous_id = $this->object->createSurveyCodesForExternalData(array($data));
1462 $anonymous_id = array_pop($anonymous_id);
1463
1464 $this->object->addRater($appr_id, 0, $anonymous_id);
1465
1466 ilUtil::sendSuccess($this->lng->txt("settings_saved"), true);
1467 $this->ctrl->setParameter($this, "appr_id", $appr_id);
1468 $this->ctrl->redirect($this, "editRaters");
1469 }
1470
1471 $form->setValuesByPost();
1473 }
addExternalRaterFormObject(ilPropertyFormGUI $a_form=null)
if(isset($_POST['submit'])) $form
$data
Definition: bench.php:6

References $data, $form, addExternalRaterFormObject(), and initExternalRaterForm().

+ Here is the call graph for this function:

◆ addRater()

ilSurveyParticipantsGUI::addRater (   $a_user_ids)

Definition at line 1475 of file class.ilSurveyParticipantsGUI.php.

1476 {
1477 $ilAccess = $this->access;
1479
1480 $appr_id = $this->handleRatersAccess();
1481
1482 if (sizeof($a_user_ids)) {
1483 // #13319
1484 foreach (array_unique($a_user_ids) as $user_id) {
1485 if ($ilAccess->checkAccess("write", "", $this->ref_id) ||
1486 $this->object->get360SelfEvaluation() ||
1487 $user_id != $ilUser->getId()) {
1488 if ($appr_id != $user_id) {
1489 $this->object->addRater($appr_id, $user_id);
1490 ilUtil::sendSuccess($this->lng->txt("settings_saved"), true);
1491 } else {
1492 ilUtil::sendFailure($this->lng->txt("svy_appraisses_cannot_be_raters"), true);
1493 }
1494 }
1495 }
1496 }
1497
1498 $this->ctrl->setParameter($this, "appr_id", $appr_id);
1499 $this->ctrl->redirect($this, "editRaters");
1500 }
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
$ilUser
Definition: imgupload.php:18

References $access, $ilUser, $user, handleRatersAccess(), and ilUtil\sendFailure().

+ Here is the call graph for this function:

◆ addSelfAppraiseeObject()

ilSurveyParticipantsGUI::addSelfAppraiseeObject ( )

Definition at line 1567 of file class.ilSurveyParticipantsGUI.php.

1568 {
1570
1571 if ($this->object->get360SelfAppraisee() &&
1572 !$this->object->isAppraisee($ilUser->getId())) {
1573 $this->object->addAppraisee($ilUser->getId());
1574 }
1575
1576 $this->ctrl->redirect($this->parent_gui, "infoScreen");
1577 }

References $ilUser, and $user.

◆ adminAppraiseesCloseObject()

ilSurveyParticipantsGUI::adminAppraiseesCloseObject ( )

Definition at line 1818 of file class.ilSurveyParticipantsGUI.php.

1819 {
1820 $this->handleWriteAccess();
1821
1822 $appr_ids = $_POST["appr_id"];
1823
1824 if (!sizeof($appr_ids)) {
1825 ilUtil::sendFailure($this->lng->txt("select_one"), true);
1826 $this->ctrl->redirect($this, "listAppraisees");
1827 }
1828
1829 $appr_data = $this->object->getAppraiseesData();
1830 foreach ($appr_ids as $appr_id) {
1831 if (isset($appr_data[$appr_id]) && !$appr_data[$appr_id]["closed"]) {
1832 $this->object->closeAppraisee($appr_id);
1833 }
1834 }
1835
1836 ilUtil::sendSuccess($this->lng->txt("survey_360_appraisee_close_action_success_admin"), true);
1837 $this->ctrl->redirect($this, "listAppraisees");
1838 }
$_POST["username"]

References $_POST, handleWriteAccess(), and ilUtil\sendFailure().

+ Here is the call graph for this function:

◆ appraiseeCloseObject()

ilSurveyParticipantsGUI::appraiseeCloseObject ( )

Definition at line 1776 of file class.ilSurveyParticipantsGUI.php.

1777 {
1779
1780 if (!$this->object->isAppraisee($ilUser->getId())) {
1781 $this->ctrl->redirect($this->parent_gui, "infoScreen");
1782 }
1783
1784 $this->object->closeAppraisee($ilUser->getId());
1785 ilUtil::sendSuccess($this->lng->txt("survey_360_appraisee_close_action_success"), true);
1786 $this->ctrl->redirect($this->parent_gui, "infoScreen");
1787 }

References $ilUser, and $user.

◆ cancelDeleteAllUserDataObject()

ilSurveyParticipantsGUI::cancelDeleteAllUserDataObject ( )

Cancels delete of all user data in maintenance.

Definition at line 524 of file class.ilSurveyParticipantsGUI.php.

525 {
526 $this->ctrl->redirect($this, "maintenance");
527 }

◆ cancelDeleteSelectedUserDataObject()

ilSurveyParticipantsGUI::cancelDeleteSelectedUserDataObject ( )

Cancels the deletion of all user data for the test object.

Definition at line 542 of file class.ilSurveyParticipantsGUI.php.

543 {
544 ilUtil::sendInfo($this->lng->txt('msg_cancel'), true);
545 $this->ctrl->redirect($this, "maintenance");
546 }
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.

References ilUtil\sendInfo().

+ Here is the call graph for this function:

◆ codesObject()

ilSurveyParticipantsGUI::codesObject ( )

Display the survey access codes tab.

Definition at line 596 of file class.ilSurveyParticipantsGUI.php.

597 {
599 $ilToolbar = $this->toolbar;
600
601 $this->handleWriteAccess();
602 $this->setCodesSubtabs();
603
604 if ($this->object->isAccessibleWithoutCode()) {
605 return ilUtil::sendInfo($this->lng->txt("survey_codes_no_anonymization"));
606 }
607
608 $default_lang = $ilUser->getPref("survey_code_language");
609
610 // creation buttons
611 $ilToolbar->setFormAction($this->ctrl->getFormAction($this));
612
613 include_once("./Services/Form/classes/class.ilTextInputGUI.php");
614 $si = new ilTextInputGUI($this->lng->txt("new_survey_codes"), "nrOfCodes");
615 $si->setValue(1);
616 $si->setSize(3);
617 $ilToolbar->addInputItem($si, true);
618
619 include_once "Services/UIComponent/Button/classes/class.ilSubmitButton.php";
620
621 $button = ilSubmitButton::getInstance();
622 $button->setCaption("create");
623 $button->setCommand("createSurveyCodes");
624 $ilToolbar->addButtonInstance($button);
625
626 $ilToolbar->addSeparator();
627
628 $button = ilSubmitButton::getInstance();
629 $button->setCaption("import_from_file");
630 $button->setCommand("importExternalMailRecipientsFromFileForm");
631 $ilToolbar->addButtonInstance($button);
632
633 $button = ilSubmitButton::getInstance();
634 $button->setCaption("import_from_text");
635 $button->setCommand("importExternalMailRecipientsFromTextForm");
636 $ilToolbar->addButtonInstance($button);
637
638 $ilToolbar->addSeparator();
639
640 $button = ilSubmitButton::getInstance();
641 $button->setCaption("svy_import_codes");
642 $button->setCommand("importAccessCodes");
643 $ilToolbar->addButtonInstance($button);
644
645 $ilToolbar->addSeparator();
646
647 $languages = $this->lng->getInstalledLanguages();
648 $options = array();
649 $this->lng->loadLanguageModule("meta");
650 foreach ($languages as $lang) {
651 $options[$lang] = $this->lng->txt("meta_l_" . $lang);
652 }
653 include_once("./Services/Form/classes/class.ilSelectInputGUI.php");
654 $si = new ilSelectInputGUI($this->lng->txt("survey_codes_lang"), "lang");
655 $si->setOptions($options);
656 $si->setValue($default_lang);
657 $ilToolbar->addInputItem($si, true);
658
659 $button = ilSubmitButton::getInstance();
660 $button->setCaption("set");
661 $button->setCommand("setCodeLanguage");
662 $ilToolbar->addButtonInstance($button);
663
664 include_once "./Modules/Survey/classes/tables/class.ilSurveyCodesTableGUI.php";
665 $table_gui = new ilSurveyCodesTableGUI($this, 'codes');
666 $survey_codes = $this->object->getSurveyCodesTableData(null, $default_lang);
667 $table_gui->setData($survey_codes);
668 $this->tpl->setContent($table_gui->getHTML());
669 }
This class represents a selection list property in a property form.
static getInstance()
Factory.
setCodesSubtabs()
Set the tabs for the access codes section.
This class represents a text property in a property form.
$languages
Definition: cssgen2.php:34
for($i=1; $i<=count($kw_cases_sel); $i+=1) $lang
Definition: langwiz.php:349

References $ilUser, $lang, $languages, PHPMailer\PHPMailer\$options, $si, $toolbar, $user, ilSubmitButton\getInstance(), handleWriteAccess(), ilUtil\sendInfo(), and setCodesSubtabs().

+ Here is the call graph for this function:

◆ confirmAdminAppraiseesCloseObject()

ilSurveyParticipantsGUI::confirmAdminAppraiseesCloseObject ( )

Definition at line 1789 of file class.ilSurveyParticipantsGUI.php.

1790 {
1791 $tpl = $this->tpl;
1792
1793 $this->handleWriteAccess();
1794
1795 $appr_ids = $_POST["appr_id"];
1796
1797 if (!sizeof($appr_ids)) {
1798 ilUtil::sendFailure($this->lng->txt("select_one"), true);
1799 $this->ctrl->redirect($this, "listAppraisees");
1800 }
1801
1802 include_once("./Services/Utilities/classes/class.ilConfirmationGUI.php");
1803 $cgui = new ilConfirmationGUI();
1804 $cgui->setHeaderText($this->lng->txt("survey_360_sure_appraisee_close_admin"));
1805
1806 $cgui->setFormAction($this->ctrl->getFormAction($this, "adminAppraiseesClose"));
1807 $cgui->setCancel($this->lng->txt("cancel"), "listAppraisees");
1808 $cgui->setConfirm($this->lng->txt("confirm"), "adminAppraiseesClose");
1809
1810 include_once "Services/User/classes/class.ilUserUtil.php";
1811 foreach ($appr_ids as $appr_id) {
1812 $cgui->addItem("appr_id[]", $appr_id, ilUserUtil::getNamePresentation($appr_id));
1813 }
1814
1815 $tpl->setContent($cgui->getHTML());
1816 }
Confirmation screen class.
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:

References $_POST, $tpl, ilUserUtil\getNamePresentation(), handleWriteAccess(), and ilUtil\sendFailure().

+ Here is the call graph for this function:

◆ confirmAppraiseeCloseCancelObject()

ilSurveyParticipantsGUI::confirmAppraiseeCloseCancelObject ( )

Definition at line 1771 of file class.ilSurveyParticipantsGUI.php.

1772 {
1773 $this->ctrl->redirect($this->parent_gui, "infoScreen");
1774 }

◆ confirmAppraiseeCloseObject()

ilSurveyParticipantsGUI::confirmAppraiseeCloseObject ( )

Definition at line 1744 of file class.ilSurveyParticipantsGUI.php.

1745 {
1747 $tpl = $this->tpl;
1748 $ilTabs = $this->tabs;
1749
1750 $ilTabs->clearTargets();
1751 $ilTabs->setBackTarget(
1752 $this->lng->txt("menuback"),
1753 $this->ctrl->getLinkTarget($this->parent_gui, "infoScreen")
1754 );
1755
1756 if (!$this->object->isAppraisee($ilUser->getId())) {
1757 $this->ctrl->redirect($this->parent_gui, "infoScreen");
1758 }
1759
1760 include_once("./Services/Utilities/classes/class.ilConfirmationGUI.php");
1761 $cgui = new ilConfirmationGUI();
1762 $cgui->setHeaderText($this->lng->txt("survey_360_sure_appraisee_close"));
1763
1764 $cgui->setFormAction($this->ctrl->getFormAction($this, "appraiseeClose"));
1765 $cgui->setCancel($this->lng->txt("cancel"), "confirmAppraiseeCloseCancel");
1766 $cgui->setConfirm($this->lng->txt("confirm"), "appraiseeClose");
1767
1768 $tpl->setContent($cgui->getHTML());
1769 }

References $ilUser, $tabs, $tpl, and $user.

◆ confirmDeleteAllUserDataObject()

ilSurveyParticipantsGUI::confirmDeleteAllUserDataObject ( )

Deletes all user data of the survey after confirmation.

Definition at line 499 of file class.ilSurveyParticipantsGUI.php.

500 {
501 if ($this->access->checkAccess('write', '', $this->object->getRefId())) {
502 $this->object->deleteAllUserData();
503 } else {
504 $participants = $this->filterSurveyParticipantsByAccess();
505 foreach ($participants as $something => $participant_data) {
506 $this->object->removeSelectedSurveyResults([$participant_data['active_id']]);
507 }
508 }
509
510
511
512 // #11558 - re-open closed appraisees
513 if ($this->object->get360Mode()) {
514 $this->object->openAllAppraisees();
515 }
516
517 ilUtil::sendSuccess($this->lng->txt("svy_all_user_data_deleted"), true);
518 $this->ctrl->redirect($this, "maintenance");
519 }
filterSurveyParticipantsByAccess($a_finished_ids=null)

References filterSurveyParticipantsByAccess().

+ Here is the call graph for this function:

◆ confirmDeleteAppraiseesObject()

ilSurveyParticipantsGUI::confirmDeleteAppraiseesObject ( )

Definition at line 1263 of file class.ilSurveyParticipantsGUI.php.

1264 {
1265 $ilTabs = $this->tabs;
1266
1267 if (!sizeof($_POST["appr_id"])) {
1268 ilUtil::sendFailure($this->lng->txt("select_one"), true);
1269 $this->ctrl->redirect($this, "listAppraisees");
1270 }
1271
1272 $ilTabs->clearTargets();
1273 $ilTabs->setBackTarget(
1274 $this->lng->txt("btn_back"),
1275 $this->ctrl->getLinkTarget($this, "listAppraisees")
1276 );
1277
1278 include_once("./Services/Utilities/classes/class.ilConfirmationGUI.php");
1279 $cgui = new ilConfirmationGUI();
1280 $cgui->setHeaderText($this->lng->txt("survey_360_sure_delete_appraises"));
1281
1282 $cgui->setFormAction($this->ctrl->getFormAction($this, "deleteAppraisees"));
1283 $cgui->setCancel($this->lng->txt("cancel"), "listAppraisees");
1284 $cgui->setConfirm($this->lng->txt("confirm"), "deleteAppraisees");
1285
1286 $data = $this->object->getAppraiseesData();
1287
1288 $count = 0;
1289 include_once "Services/User/classes/class.ilUserUtil.php";
1290 foreach ($_POST["appr_id"] as $id) {
1291 if (isset($data[$id]) && !$data[$id]["closed"]) {
1292 $cgui->addItem("appr_id[]", $id, ilUserUtil::getNamePresentation($id));
1293 $count++;
1294 }
1295 }
1296
1297 if (!$count) {
1298 ilUtil::sendFailure($this->lng->txt("select_one"), true);
1299 $this->ctrl->redirect($this, "listAppraisees");
1300 }
1301
1302 $this->tpl->setContent($cgui->getHTML());
1303 }
if(!array_key_exists('StateId', $_REQUEST)) $id

References $_POST, $data, $id, $tabs, ilUserUtil\getNamePresentation(), and ilUtil\sendFailure().

+ Here is the call graph for this function:

◆ confirmDeleteRatersObject()

ilSurveyParticipantsGUI::confirmDeleteRatersObject ( )

Definition at line 1502 of file class.ilSurveyParticipantsGUI.php.

1503 {
1504 $ilTabs = $this->tabs;
1505
1506 $appr_id = $this->handleRatersAccess();
1507 $this->ctrl->setParameter($this, "appr_id", $appr_id);
1508 if (!sizeof($_POST["rtr_id"])) {
1509 ilUtil::sendFailure($this->lng->txt("select_one"), true);
1510 $this->ctrl->redirect($this, "editRaters");
1511 }
1512
1513 $ilTabs->clearTargets();
1514 $ilTabs->setBackTarget(
1515 $this->lng->txt("btn_back"),
1516 $this->ctrl->getLinkTarget($this, "editRaters")
1517 );
1518
1519 include_once "Services/User/classes/class.ilUserUtil.php";
1520 include_once("./Services/Utilities/classes/class.ilConfirmationGUI.php");
1521 $cgui = new ilConfirmationGUI();
1522 $cgui->setHeaderText(sprintf(
1523 $this->lng->txt("survey_360_sure_delete_raters"),
1525 ));
1526
1527 $cgui->setFormAction($this->ctrl->getFormAction($this, "deleteRaters"));
1528 $cgui->setCancel($this->lng->txt("cancel"), "editRaters");
1529 $cgui->setConfirm($this->lng->txt("confirm"), "deleteRaters");
1530
1531 $data = $this->object->getRatersData($appr_id);
1532
1533 foreach ($_POST["rtr_id"] as $id) {
1534 if (isset($data[$id])) {
1535 $cgui->addItem("rtr_id[]", $id, $data[$id]["lastname"] . ", " .
1536 $data[$id]["firstname"] . " (" . $data[$id]["email"] . ")");
1537 }
1538 }
1539
1540 $this->tpl->setContent($cgui->getHTML());
1541 }

References $_POST, $data, $id, $tabs, ilUserUtil\getNamePresentation(), handleRatersAccess(), and ilUtil\sendFailure().

+ Here is the call graph for this function:

◆ confirmDeleteSelectedUserDataObject()

ilSurveyParticipantsGUI::confirmDeleteSelectedUserDataObject ( )

Deletes all user data for the test object.

Definition at line 532 of file class.ilSurveyParticipantsGUI.php.

533 {
534 $this->object->removeSelectedSurveyResults($_POST["chbUser"]);
535 ilUtil::sendSuccess($this->lng->txt("svy_selected_user_data_deleted"), true);
536 $this->ctrl->redirect($this, "maintenance");
537 }

References $_POST.

◆ createSurveyCodesObject()

ilSurveyParticipantsGUI::createSurveyCodesObject ( )

Create access codes for the survey.

Definition at line 878 of file class.ilSurveyParticipantsGUI.php.

879 {
880 if (is_numeric($_POST["nrOfCodes"])) {
881 $ids = $this->object->createSurveyCodes($_POST["nrOfCodes"]);
882 ilUtil::sendSuccess($this->lng->txt('codes_created'), true);
883 $this->ctrl->setParameter($this, "new_ids", implode(";", $ids));
884 $this->ctrl->redirect($this, 'editCodes');
885 } else {
886 ilUtil::sendFailure($this->lng->txt("enter_valid_number_of_codes"), true);
887 $this->ctrl->redirect($this, 'codes');
888 }
889 }

References $_POST, and ilUtil\sendFailure().

+ Here is the call graph for this function:

◆ deleteAllUserDataObject()

ilSurveyParticipantsGUI::deleteAllUserDataObject ( )

Creates a confirmation form for delete all user data.

Definition at line 485 of file class.ilSurveyParticipantsGUI.php.

486 {
487 include_once "Services/Utilities/classes/class.ilConfirmationGUI.php";
488 $cgui = new ilConfirmationGUI();
489 $cgui->setHeaderText($this->lng->txt("confirm_delete_all_user_data"));
490 $cgui->setFormAction($this->ctrl->getFormAction($this, "deleteAllUserData"));
491 $cgui->setCancel($this->lng->txt("cancel"), "cancelDeleteAllUserData");
492 $cgui->setConfirm($this->lng->txt("confirm"), "confirmDeleteAllUserData");
493 $this->tpl->setContent($cgui->getHTML());
494 }

◆ deleteAppraiseesObject()

ilSurveyParticipantsGUI::deleteAppraiseesObject ( )

Definition at line 1305 of file class.ilSurveyParticipantsGUI.php.

1306 {
1307 if (sizeof($_POST["appr_id"])) {
1308 $data = $this->object->getAppraiseesData();
1309
1310 foreach ($_POST["appr_id"] as $id) {
1311 // #11285
1312 if (isset($data[$id]) && !$data[$id]["closed"]) {
1313 $this->object->deleteAppraisee($id);
1314 }
1315 }
1316
1317 ilUtil::sendSuccess($this->lng->txt("settings_saved"), true);
1318 }
1319
1320 $this->ctrl->redirect($this, "listAppraisees");
1321 }

References $_POST, $data, and $id.

◆ deleteCodesConfirmObject()

ilSurveyParticipantsGUI::deleteCodesConfirmObject ( )

Definition at line 723 of file class.ilSurveyParticipantsGUI.php.

724 {
725 if (is_array($_POST["chb_code"]) && (count($_POST["chb_code"]) > 0)) {
726 include_once("./Services/Utilities/classes/class.ilConfirmationGUI.php");
727 $cgui = new ilConfirmationGUI();
728 $cgui->setHeaderText($this->lng->txt("survey_code_delete_sure"));
729
730 $cgui->setFormAction($this->ctrl->getFormAction($this));
731 $cgui->setCancel($this->lng->txt("cancel"), "codes");
732 $cgui->setConfirm($this->lng->txt("confirm"), "deleteCodes");
733
734 $data = $this->object->getSurveyCodesTableData($_POST["chb_code"]);
735
736 foreach ($data as $item) {
737 if ($item["used"]) {
738 continue;
739 }
740
741 $title = array($item["code"]);
742 $item["email"] ? $title[] = $item["email"] : null;
743 $item["last_name"] ? $title[] = $item["last_name"] : null;
744 $item["first_name"] ? $title[] = $item["first_name"] : null;
745 $title = implode(", ", $title);
746
747 $cgui->addItem("chb_code[]", $item["code"], $title);
748 }
749
750 $this->tpl->setContent($cgui->getHTML());
751 } else {
752 ilUtil::sendFailure($this->lng->txt('no_checkbox'), true);
753 $this->ctrl->redirect($this, 'codes');
754 }
755 }

References $_POST, $data, $title, and ilUtil\sendFailure().

+ Here is the call graph for this function:

◆ deleteCodesObject()

ilSurveyParticipantsGUI::deleteCodesObject ( )

Delete a list of survey codes.

Definition at line 760 of file class.ilSurveyParticipantsGUI.php.

761 {
762 if (is_array($_POST["chb_code"]) && (count($_POST["chb_code"]) > 0)) {
763 foreach ($_POST["chb_code"] as $survey_code) {
764 $this->object->deleteSurveyCode($survey_code);
765 }
766 ilUtil::sendSuccess($this->lng->txt('codes_deleted'), true);
767 } else {
768 ilUtil::sendInfo($this->lng->txt('no_checkbox'), true);
769 }
770 $this->ctrl->redirect($this, 'codes');
771 }

References $_POST, and ilUtil\sendInfo().

+ Here is the call graph for this function:

◆ deleteRatersObject()

ilSurveyParticipantsGUI::deleteRatersObject ( )

Definition at line 1543 of file class.ilSurveyParticipantsGUI.php.

1544 {
1545 $appr_id = $this->handleRatersAccess();
1546 $this->ctrl->setParameter($this, "appr_id", $appr_id);
1547
1548 if (sizeof($_POST["rtr_id"])) {
1549 $data = $this->object->getRatersData($appr_id);
1550
1551 foreach ($_POST["rtr_id"] as $id) {
1552 if (isset($data[$id])) {
1553 if (substr($id, 0, 1) == "u") {
1554 $this->object->deleteRater($appr_id, substr($id, 1));
1555 } else {
1556 $this->object->deleteRater($appr_id, 0, substr($id, 1));
1557 }
1558 }
1559 }
1560
1561 ilUtil::sendSuccess($this->lng->txt("settings_saved"), true);
1562 }
1563
1564 $this->ctrl->redirect($this, "editRaters");
1565 }

References $_POST, $data, $id, and handleRatersAccess().

+ Here is the call graph for this function:

◆ deleteSavedMessageObject()

ilSurveyParticipantsGUI::deleteSavedMessageObject ( )

Definition at line 915 of file class.ilSurveyParticipantsGUI.php.

916 {
917 $this->handleWriteAccess();
918 $this->setCodesSubtabs();
919
920 include_once("./Modules/Survey/classes/forms/FormMailCodesGUI.php");
921 $form_gui = new FormMailCodesGUI($this);
922 $form_gui->setValuesByPost();
923 try {
924 if ($form_gui->getSavedMessages()->getValue() > 0) {
925 $this->object->deleteUserSettings($form_gui->getSavedMessages()->getValue());
926 $form_gui = new FormMailCodesGUI($this);
927 $form_gui->setValuesByPost();
928 ilUtil::sendSuccess($this->lng->txt('msg_message_deleted'));
929 } else {
930 ilUtil::sendFailure($this->lng->txt('msg_no_message_deleted'));
931 }
932 } catch (Exception $e) {
934 $ilLog->write('Error: ' + $e->getMessage());
935 }
936 $this->tpl->setVariable("ADM_CONTENT", $form_gui->getHTML());
937 }
Class FormMailCodesGUI.

References $ilLog, $log, handleWriteAccess(), ilUtil\sendFailure(), and setCodesSubtabs().

+ Here is the call graph for this function:

◆ deleteSingleUserResultsObject()

ilSurveyParticipantsGUI::deleteSingleUserResultsObject ( )

Asks for a confirmation to delete selected user data of the test object.

Definition at line 551 of file class.ilSurveyParticipantsGUI.php.

552 {
553 $this->handleWriteAccess();
554
555 if (!is_array($_POST["chbUser"]) || count($_POST["chbUser"]) == 0) {
556 ilUtil::sendInfo($this->lng->txt('no_checkbox'), true);
557 $this->ctrl->redirect($this, "maintenance");
558 }
559
560 ilUtil::sendQuestion($this->lng->txt("confirm_delete_single_user_data"));
561 include_once "./Modules/Survey/classes/tables/class.ilSurveyMaintenanceTableGUI.php";
562 $table_gui = new ilSurveyMaintenanceTableGUI($this, 'maintenance', true);
563 $total = &$this->object->getSurveyParticipants();
564 $data = array();
565 foreach ($total as $user_data) {
566 if (in_array($user_data['active_id'], $_POST['chbUser'])) {
567 $last_access = $this->object->getLastAccess($user_data["active_id"]);
568 array_push($data, array(
569 'id' => $user_data["active_id"],
570 'name' => $user_data["sortname"],
571 'login' => $user_data["login"],
572 'last_access' => $last_access
573 ));
574 }
575 }
576 $table_gui->setData($data);
577 $this->tpl->setVariable('ADM_CONTENT', $table_gui->getHTML());
578 }
$total
Definition: Utf8Test.php:87
static sendQuestion($a_info="", $a_keep=false)
Send Question to Screen.

References $_POST, $data, $total, handleWriteAccess(), ilUtil\sendInfo(), and ilUtil\sendQuestion().

+ Here is the call graph for this function:

◆ disinviteUserGroupObject()

ilSurveyParticipantsGUI::disinviteUserGroupObject ( )

Disinvite users or groups from a survey.

Definition at line 351 of file class.ilSurveyParticipantsGUI.php.

352 {
353 // disinvite users
354 if (is_array($_POST["user_select"])) {
355 foreach ($_POST["user_select"] as $user_id) {
356 $this->object->disinviteUser($user_id);
357 }
358 }
359 ilUtil::sendSuccess($this->lng->txt('msg_users_disinvited'), true);
360 $this->ctrl->redirect($this, "invite");
361 }

References $_POST.

◆ editCodesObject()

ilSurveyParticipantsGUI::editCodesObject ( )

Definition at line 671 of file class.ilSurveyParticipantsGUI.php.

672 {
673 if (isset($_GET["new_ids"])) {
674 $ids = explode(";", $_GET["new_ids"]);
675 } else {
676 $ids = (array) $_POST["chb_code"];
677 }
678 if (!$ids) {
679 ilUtil::sendFailure($this->lng->txt('no_checkbox'), true);
680 $this->ctrl->redirect($this, 'codes');
681 }
682
683 $this->handleWriteAccess();
684 $this->setCodesSubtabs();
685
686 include_once "./Modules/Survey/classes/tables/class.ilSurveyCodesEditTableGUI.php";
687 $table_gui = new ilSurveyCodesEditTableGUI($this, 'editCodes');
688 $table_gui->setData($this->object->getSurveyCodesTableData($ids));
689 $this->tpl->setContent($table_gui->getHTML());
690 }
$_GET["client_id"]

References $_GET, $_POST, handleWriteAccess(), ilUtil\sendFailure(), and setCodesSubtabs().

+ Here is the call graph for this function:

◆ editRatersObject()

ilSurveyParticipantsGUI::editRatersObject ( )

Definition at line 1343 of file class.ilSurveyParticipantsGUI.php.

1344 {
1345 $ilTabs = $this->tabs;
1346 $ilToolbar = $this->toolbar;
1347 $ilAccess = $this->access;
1348
1349 $appr_id = $_REQUEST["appr_id"] = $this->handleRatersAccess();
1350
1351 $has_write = $ilAccess->checkAccess("write", "", $this->ref_id);
1352 if ($has_write) {
1353 $ilTabs->clearTargets();
1354 $ilTabs->setBackTarget(
1355 $this->lng->txt("btn_back"),
1356 $this->ctrl->getLinkTarget($this, "listAppraisees")
1357 );
1358 }
1359
1360 $this->ctrl->setParameter($this, "appr_id", $appr_id);
1361 $this->ctrl->setParameter($this, "rate360", 1);
1362
1363 include_once './Services/Search/classes/class.ilRepositorySearchGUI.php';
1365 $this,
1366 $ilToolbar,
1367 array(
1368 'auto_complete_name' => $this->lng->txt('user'),
1369 'submit_name' => $this->lng->txt('add'),
1370 'add_search' => true,
1371 'add_from_container' => $this->ref_id
1372 )
1373 );
1374
1375 $this->ctrl->setParameter($this, "rate360", "");
1376
1377 $ilToolbar->addSeparator();
1378
1379 $ilToolbar->addButton(
1380 $this->lng->txt("survey_360_add_external_rater"),
1381 $this->ctrl->getLinkTarget($this, "addExternalRaterForm")
1382 );
1383
1384 // #13320
1385 require_once "Services/Link/classes/class.ilLink.php";
1386 $url = ilLink::_getStaticLink($this->object->getRefId());
1387
1388 include_once "Modules/Survey/classes/tables/class.ilSurveyAppraiseesTableGUI.php";
1389 $tbl = new ilSurveyAppraiseesTableGUI($this, "editRaters", true, !$this->object->isAppraiseeClosed($appr_id), $url); // #11285
1390 $tbl->setData($this->object->getRatersData($appr_id));
1391 $this->tpl->setContent($tbl->getHTML());
1392 }
static fillAutoCompleteToolbar($parent_object, ilToolbarGUI $toolbar=null, $a_options=array(), $a_sticky=false)
fill toolbar with
$tbl
Definition: example_048.php:81
$url

References $access, $has_write, $tabs, $tbl, $toolbar, $url, ilLink\_getStaticLink(), ilRepositorySearchGUI\fillAutoCompleteToolbar(), and handleRatersAccess().

+ Here is the call graph for this function:

◆ executeCommand()

ilSurveyParticipantsGUI::executeCommand ( )

Definition at line 98 of file class.ilSurveyParticipantsGUI.php.

99 {
101 $ilTabs = $this->tabs;
102
103 $cmd = $ilCtrl->getCmd("maintenance");
104 $next_class = $this->ctrl->getNextClass($this);
105
106 switch ($next_class) {
107 case 'ilrepositorysearchgui':
108 include_once('./Services/Search/classes/class.ilRepositorySearchGUI.php');
109 $rep_search = new ilRepositorySearchGUI();
110
111 if (!$_REQUEST["appr360"] && !$_REQUEST["rate360"]) {
112 $ilTabs->clearTargets();
113 $ilTabs->setBackTarget(
114 $this->lng->txt("btn_back"),
115 $this->ctrl->getLinkTarget($this, "invite")
116 );
117
118 $rep_search->setCallback(
119 $this,
120 'inviteUserGroupObject',
121 array(
122 )
123 );
124
125 // Set tabs
126 $this->ctrl->setReturn($this, 'invite');
127 $this->ctrl->forwardCommand($rep_search);
128 $ilTabs->setTabActive('invitation');
129 } elseif ($_REQUEST["rate360"]) {
130 $ilTabs->clearTargets();
131 $ilTabs->setBackTarget(
132 $this->lng->txt("btn_back"),
133 $this->ctrl->getLinkTarget($this, "listAppraisees")
134 );
135
136 $this->ctrl->setParameter($this, "rate360", 1);
137 $this->ctrl->saveParameter($this, "appr_id");
138
139 $rep_search->setCallback(
140 $this,
141 'addRater',
142 array(
143 )
144 );
145
146 // Set tabs
147 $this->ctrl->setReturn($this, 'editRaters');
148 $this->ctrl->forwardCommand($rep_search);
149 } else {
150 $ilTabs->activateTab("survey_360_appraisees");
151 $this->ctrl->setParameter($this, "appr360", 1);
152
153 $rep_search->setCallback(
154 $this,
155 'addAppraisee',
156 array(
157 )
158 );
159
160 // Set tabs
161 $this->ctrl->setReturn($this, 'listAppraisees');
162 $this->ctrl->forwardCommand($rep_search);
163 }
164 break;
165
166 default:
167 $cmd .= "Object";
168 $this->$cmd();
169 break;
170 }
171 }

References $ctrl, $ilCtrl, and $tabs.

◆ exportAllCodesObject()

ilSurveyParticipantsGUI::exportAllCodesObject ( )

Exports all survey codes.

Definition at line 790 of file class.ilSurveyParticipantsGUI.php.

791 {
792 $export = $this->object->getSurveyCodesForExport();
793 ilUtil::deliverData($export, ilUtil::getASCIIFilename($this->object->getTitle() . ".csv"));
794 }
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

References ilUtil\deliverData(), and ilUtil\getASCIIFilename().

+ Here is the call graph for this function:

◆ exportCodesObject()

ilSurveyParticipantsGUI::exportCodesObject ( )

Exports a list of survey codes.

Definition at line 776 of file class.ilSurveyParticipantsGUI.php.

777 {
778 if (is_array($_POST["chb_code"]) && (count($_POST["chb_code"]) > 0)) {
779 $export = $this->object->getSurveyCodesForExport(null, $_POST["chb_code"]);
780 ilUtil::deliverData($export, ilUtil::getASCIIFilename($this->object->getTitle() . ".csv"));
781 } else {
782 ilUtil::sendFailure($this->lng->txt("no_checkbox"), true);
783 $this->ctrl->redirect($this, 'codes');
784 }
785 }

References $_POST, ilUtil\deliverData(), ilUtil\getASCIIFilename(), and ilUtil\sendFailure().

+ Here is the call graph for this function:

◆ filterSurveyParticipantsByAccess()

ilSurveyParticipantsGUI::filterSurveyParticipantsByAccess (   $a_finished_ids = null)
protected

Definition at line 173 of file class.ilSurveyParticipantsGUI.php.

174 {
175 $all_participants = $this->object->getSurveyParticipants($a_finished_ids);
176 $participant_ids = [];
177 foreach ($all_participants as $participant) {
178 $participant_ids[] = $participant['usr_id'];
179 }
180
181
182 $filtered_participant_ids = $this->access->filterUserIdsByRbacOrPositionOfCurrentUser(
183 'read_results',
184 'access_results',
185 $this->object->getRefId(),
186 $participant_ids
187 );
188 $participants = [];
189 foreach ($all_participants as $username => $user_data) {
190 if (!$user_data['usr_id']) {
191 $participants[$username] = $user_data;
192 }
193 if (in_array($user_data['usr_id'], $filtered_participant_ids)) {
194 $participants[$username] = $user_data;
195 }
196 }
197 return $participants;
198 }

Referenced by confirmDeleteAllUserDataObject(), and maintenanceObject().

+ Here is the caller graph for this function:

◆ getObject()

ilSurveyParticipantsGUI::getObject ( )

Definition at line 1863 of file class.ilSurveyParticipantsGUI.php.

References $object.

◆ handleRatersAccess()

ilSurveyParticipantsGUI::handleRatersAccess ( )

Definition at line 1323 of file class.ilSurveyParticipantsGUI.php.

1324 {
1325 $ilAccess = $this->access;
1327
1328 if ($ilAccess->checkAccess("write", "", $this->ref_id)) {
1329 $appr_id = $_REQUEST["appr_id"];
1330 if (!$appr_id) {
1331 $this->ctrl->redirect($this, "listAppraisees");
1332 }
1333 return $appr_id;
1334 } elseif ($this->object->get360Mode() &&
1335 $this->object->get360SelfRaters() &&
1336 $this->object->isAppraisee($ilUser->getId()) &&
1337 !$this->object->isAppraiseeClosed($ilUser->getId())) {
1338 return $ilUser->getId();
1339 }
1340 $this->ctrl->redirect($this->parent_gui, "infoScreen");
1341 }

References $access, $ilUser, and $user.

Referenced by addExternalRaterFormObject(), addRater(), confirmDeleteRatersObject(), deleteRatersObject(), editRatersObject(), mailRatersActionObject(), and mailRatersObject().

+ Here is the caller graph for this function:

◆ handleWriteAccess()

ilSurveyParticipantsGUI::handleWriteAccess ( )
protected

◆ importAccessCodesActionObject()

ilSurveyParticipantsGUI::importAccessCodesActionObject ( )
protected

Import codes from export codes file.

Definition at line 832 of file class.ilSurveyParticipantsGUI.php.

833 {
834 if (trim($_FILES['codes']['tmp_name'])) {
835 $existing = array();
836 foreach ($this->object->getSurveyCodesTableData() as $item) {
837 $existing[$item["code"]] = $item["id"];
838 }
839
840 include_once "./Services/Utilities/classes/class.ilCSVReader.php";
841 $reader = new ilCSVReader();
842 $reader->open($_FILES['codes']['tmp_name']);
843 foreach ($reader->getDataArrayFromCSVFile() as $row) {
844 // numeric check of used column due to #26176
845 if (sizeof($row) == 8 && is_numeric($row[5])) {
846 // used/sent/url are not relevant when importing
847 list($code, $email, $last_name, $first_name, $created, $used, $sent, $url) = $row;
848
849 // unique code?
850 if (!array_key_exists($code, $existing)) {
851 // could be date or datetime
852 if (strlen($created) == 10) {
853 $created = new ilDate($created, IL_CAL_DATE);
854 } else {
855 $created = new ilDateTime($created, IL_CAL_DATETIME);
856 }
857 $created = $created->get(IL_CAL_UNIX);
858
859 $user_data = array(
860 "email" => $email
861 ,"lastname" => $last_name
862 ,"firstname" => $first_name
863 );
864 $this->object->importSurveyCode($code, $created, $user_data);
865 }
866 }
867 }
868
869 ilUtil::sendSuccess($this->lng->txt('codes_created'), true);
870 }
871
872 $this->ctrl->redirect($this, 'codes');
873 }
const IL_CAL_DATE
const IL_CAL_UNIX
const IL_CAL_DATETIME
@classDescription Date and time handling
Class for single dates.
$code
Definition: example_050.php:99
if( $orgName !==null) if($spconfig->hasValue('contacts')) $email
Definition: metadata.php:201
$row

References $code, $email, $reader, $row, $url, IL_CAL_DATE, IL_CAL_DATETIME, and IL_CAL_UNIX.

◆ importAccessCodesObject()

ilSurveyParticipantsGUI::importAccessCodesObject ( )
protected

Import codes from export codes file (upload form)

Definition at line 799 of file class.ilSurveyParticipantsGUI.php.

800 {
801 $this->handleWriteAccess();
802 $this->setCodesSubtabs();
803
804 include_once("./Services/Form/classes/class.ilPropertyFormGUI.php");
805 $form_import_file = new ilPropertyFormGUI();
806 $form_import_file->setFormAction($this->ctrl->getFormAction($this));
807 $form_import_file->setTableWidth("100%");
808 $form_import_file->setId("codes_import_file");
809
810 $headerfile = new ilFormSectionHeaderGUI();
811 $headerfile->setTitle($this->lng->txt("svy_import_codes"));
812 $form_import_file->addItem($headerfile);
813
814 $export_file = new ilFileInputGUI($this->lng->txt("codes"), "codes");
815 $export_file->setInfo(sprintf(
816 $this->lng->txt('svy_import_codes_info'),
817 $this->lng->txt("export_all_survey_codes")
818 ));
819 $export_file->setSuffixes(array("csv"));
820 $export_file->setRequired(true);
821 $form_import_file->addItem($export_file);
822
823 $form_import_file->addCommandButton("importAccessCodesAction", $this->lng->txt("import"));
824 $form_import_file->addCommandButton("codes", $this->lng->txt("cancel"));
825
826 $this->tpl->setContent($form_import_file->getHTML());
827 }
This class represents a file property in a property form.
This class represents a section header in a property form.
This class represents a property form user interface.

References handleWriteAccess(), and setCodesSubtabs().

+ Here is the call graph for this function:

◆ importExternalMailRecipientsFromFileFormObject()

ilSurveyParticipantsGUI::importExternalMailRecipientsFromFileFormObject ( )

Definition at line 1114 of file class.ilSurveyParticipantsGUI.php.

1115 {
1116 $ilAccess = $this->access;
1117
1118 $this->handleWriteAccess();
1119 $this->setCodesSubtabs();
1120
1121 include_once("./Services/Form/classes/class.ilPropertyFormGUI.php");
1122 $form_import_file = new ilPropertyFormGUI();
1123 $form_import_file->setFormAction($this->ctrl->getFormAction($this));
1124 $form_import_file->setTableWidth("100%");
1125 $form_import_file->setId("codes_import_file");
1126
1127 $headerfile = new ilFormSectionHeaderGUI();
1128 $headerfile->setTitle($this->lng->txt("import_from_file"));
1129 $form_import_file->addItem($headerfile);
1130
1131 $externalmails = new ilFileInputGUI($this->lng->txt("externalmails"), "externalmails");
1132 $externalmails->setInfo($this->lng->txt('externalmails_info'));
1133 $externalmails->setRequired(true);
1134 $form_import_file->addItem($externalmails);
1135 if ($ilAccess->checkAccess("write", "", $_GET["ref_id"])) {
1136 $form_import_file->addCommandButton("importExternalRecipientsFromFile", $this->lng->txt("import"));
1137 }
1138 if ($ilAccess->checkAccess("write", "", $_GET["ref_id"])) {
1139 $form_import_file->addCommandButton("codes", $this->lng->txt("cancel"));
1140 }
1141
1142 $this->tpl->setContent($form_import_file->getHTML());
1143 }

References $_GET, $access, handleWriteAccess(), and setCodesSubtabs().

+ Here is the call graph for this function:

◆ importExternalMailRecipientsFromTextFormObject()

ilSurveyParticipantsGUI::importExternalMailRecipientsFromTextFormObject ( )

Definition at line 1145 of file class.ilSurveyParticipantsGUI.php.

1146 {
1147 $ilAccess = $this->access;
1148
1149 $this->handleWriteAccess();
1150 $this->setCodesSubtabs();
1151
1152 include_once("./Services/Form/classes/class.ilPropertyFormGUI.php");
1153 $form_import_text = new ilPropertyFormGUI();
1154 $form_import_text->setFormAction($this->ctrl->getFormAction($this));
1155 $form_import_text->setTableWidth("100%");
1156 $form_import_text->setId("codes_import_text");
1157
1158 $headertext = new ilFormSectionHeaderGUI();
1159 $headertext->setTitle($this->lng->txt("import_from_text"));
1160 $form_import_text->addItem($headertext);
1161
1162 $inp = new ilTextAreaInputGUI($this->lng->txt('externaltext'), 'externaltext');
1163 if (array_key_exists('externaltext', $_SESSION) && strlen($_SESSION['externaltext'])) {
1164 $inp->setValue($_SESSION['externaltext']);
1165 } else {
1166 // $this->lng->txt('mail_import_example1') #14897
1167 $inp->setValue("email;firstname;lastname\n" . $this->lng->txt('mail_import_example2') . "\n" . $this->lng->txt('mail_import_example3') . "\n");
1168 }
1169 $inp->setRequired(true);
1170 $inp->setCols(80);
1171 $inp->setRows(10);
1172 $inp->setInfo($this->lng->txt('externaltext_info'));
1173 $form_import_text->addItem($inp);
1174 unset($_SESSION['externaltext']);
1175
1176 if ($ilAccess->checkAccess("write", "", $_GET["ref_id"])) {
1177 $form_import_text->addCommandButton("importExternalRecipientsFromText", $this->lng->txt("import"));
1178 }
1179 if ($ilAccess->checkAccess("write", "", $_GET["ref_id"])) {
1180 $form_import_text->addCommandButton("codes", $this->lng->txt("cancel"));
1181 }
1182
1183 $this->tpl->setContent($form_import_text->getHTML());
1184 }
$_SESSION["AccountId"]
This class represents a text area property in a property form.

References $_GET, $_SESSION, $access, handleWriteAccess(), and setCodesSubtabs().

+ Here is the call graph for this function:

◆ importExternalRecipientsFromFileObject()

ilSurveyParticipantsGUI::importExternalRecipientsFromFileObject ( )

Definition at line 1055 of file class.ilSurveyParticipantsGUI.php.

1056 {
1057 if (trim($_FILES['externalmails']['tmp_name'])) {
1058 include_once "./Services/Utilities/classes/class.ilCSVReader.php";
1059 $reader = new ilCSVReader();
1060 $reader->open($_FILES['externalmails']['tmp_name']);
1061 $data = $reader->getDataArrayFromCSVFile();
1062 $fields = array_shift($data);
1063 foreach ($fields as $idx => $field) {
1064 $fields[$idx] = $this->removeUTF8Bom($field);
1065 }
1066 if (!in_array('email', $fields)) {
1067 $reader->close();
1068 ilUtil::sendFailure($this->lng->txt('err_external_rcp_no_email'), true);
1069 $this->ctrl->redirect($this, 'codes');
1070 }
1071 $existingdata = $this->object->getExternalCodeRecipients();
1072 $existingcolumns = array();
1073 if (count($existingdata)) {
1074 $first = array_shift($existingdata);
1075 foreach ($first as $key => $value) {
1076 array_push($existingcolumns, $key);
1077 }
1078 }
1079
1080 include_once "Services/Utilities/classes/class.ilStr.php";
1081
1082 $founddata = array();
1083 foreach ($data as $row) {
1084 if (count($row) == count($fields)) {
1085 $dataset = array();
1086 foreach ($fields as $idx => $fieldname) {
1087 // #14811
1088 $row[$idx] = $this->_convertCharset($row[$idx]);
1089
1090 if (count($existingcolumns)) {
1091 if (array_key_exists($idx, $existingcolumns)) {
1092 $dataset[$fieldname] = $row[$idx];
1093 }
1094 } else {
1095 $dataset[$fieldname] = $row[$idx];
1096 }
1097 }
1098 if (strlen($dataset['email'])) {
1099 array_push($founddata, $dataset);
1100 }
1101 }
1102 }
1103 $reader->close();
1104
1105 if (sizeof($founddata)) {
1106 $this->object->createSurveyCodesForExternalData($founddata);
1107 ilUtil::sendSuccess($this->lng->txt('external_recipients_imported'), true);
1108 }
1109 }
1110
1111 $this->ctrl->redirect($this, 'codes');
1112 }
_convertCharset($a_string, $a_from_charset="", $a_to_charset="UTF-8")
$key
Definition: croninfo.php:18

References $data, $key, $reader, $row, _convertCharset(), removeUTF8Bom(), and ilUtil\sendFailure().

+ Here is the call graph for this function:

◆ importExternalRecipientsFromTextObject()

ilSurveyParticipantsGUI::importExternalRecipientsFromTextObject ( )

Definition at line 989 of file class.ilSurveyParticipantsGUI.php.

990 {
991 if (trim($_POST['externaltext'])) {
992 $data = preg_split("/[\n\r]/", $_POST['externaltext']);
993 $fields = preg_split("/;/", array_shift($data));
994 if (!in_array('email', $fields)) {
995 $_SESSION['externaltext'] = $_POST['externaltext'];
996 ilUtil::sendFailure($this->lng->txt('err_external_rcp_no_email_column'), true);
997 $this->ctrl->redirect($this, 'importExternalMailRecipientsFromTextForm');
998 }
999 $existingdata = $this->object->getExternalCodeRecipients();
1000 $existingcolumns = array();
1001 if (count($existingdata)) {
1002 $first = array_shift($existingdata);
1003 foreach ($first as $key => $value) {
1004 array_push($existingcolumns, $key);
1005 }
1006 }
1007 $founddata = array();
1008 foreach ($data as $datarow) {
1009 $row = preg_split("/;/", $datarow);
1010 if (count($row) == count($fields)) {
1011 $dataset = array();
1012 foreach ($fields as $idx => $fieldname) {
1013 if (count($existingcolumns)) {
1014 if (array_key_exists($idx, $existingcolumns)) {
1015 $dataset[$fieldname] = $row[$idx];
1016 }
1017 } else {
1018 $dataset[$fieldname] = $row[$idx];
1019 }
1020 }
1021 if (strlen($dataset['email'])) {
1022 array_push($founddata, $dataset);
1023 }
1024 }
1025 }
1026 $this->object->createSurveyCodesForExternalData($founddata);
1027 ilUtil::sendSuccess($this->lng->txt('external_recipients_imported'), true);
1028 $this->ctrl->redirect($this, 'codes');
1029 }
1030
1031 $this->ctrl->redirect($this, 'importExternalMailRecipientsFromTextForm');
1032 }

References $_POST, $_SESSION, $data, $key, $row, and ilUtil\sendFailure().

+ Here is the call graph for this function:

◆ initExternalRaterForm()

ilSurveyParticipantsGUI::initExternalRaterForm (   $appr_id)
protected

Definition at line 1418 of file class.ilSurveyParticipantsGUI.php.

1419 {
1420 include_once "Services/User/classes/class.ilUserUtil.php";
1421 include_once("./Services/Form/classes/class.ilPropertyFormGUI.php");
1422 $form = new ilPropertyFormGUI();
1423 $form->setFormAction($this->ctrl->getFormAction($this, "addExternalRater"));
1424 $form->setTitle($this->lng->txt("survey_360_add_external_rater") .
1425 ": " . ilUserUtil::getNamePresentation($appr_id));
1426
1427 $email = new ilEmailInputGUI($this->lng->txt("email"), "email");
1428 $email->setRequired(true);
1429 $form->addItem($email);
1430
1431 $lname = new ilTextInputGUI($this->lng->txt("lastname"), "lname");
1432 $lname->setSize(30);
1433 $form->addItem($lname);
1434
1435 $fname = new ilTextInputGUI($this->lng->txt("firstname"), "fname");
1436 $fname->setSize(30);
1437 $form->addItem($fname);
1438
1439 $form->addCommandButton("addExternalRater", $this->lng->txt("save"));
1440 $form->addCommandButton("editRaters", $this->lng->txt("cancel"));
1441
1442 return $form;
1443 }

References $email, $form, and ilUserUtil\getNamePresentation().

Referenced by addExternalRaterFormObject(), and addExternalRaterObject().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ initMailRatersForm()

ilSurveyParticipantsGUI::initMailRatersForm (   $appr_id,
array  $rec_ids 
)

Definition at line 1579 of file class.ilSurveyParticipantsGUI.php.

1580 {
1581 include_once("./Services/Form/classes/class.ilPropertyFormGUI.php");
1582 $form = new ilPropertyFormGUI();
1583 $form->setFormAction($this->ctrl->getFormAction($this, "mailRatersAction"));
1584 $form->setTitle($this->lng->txt('compose'));
1585
1586 $all_data = $this->object->getRatersData($appr_id);
1587 $rec_data = array();
1588 foreach ($rec_ids as $rec_id) {
1589 if (isset($all_data[$rec_id])) {
1590 $rec_data[] = $all_data[$rec_id]["lastname"] . ", " .
1591 $all_data[$rec_id]["firstname"] .
1592 " (" . $all_data[$rec_id]["email"] . ")";
1593 }
1594 }
1595 sort($rec_data);
1596 $rec = new ilCustomInputGUI($this->lng->txt('recipients'));
1597 $rec->setHTML(implode("<br />", $rec_data));
1598 $form->addItem($rec);
1599
1600 $subject = new ilTextInputGUI($this->lng->txt('subject'), 'subject');
1601 $subject->setSize(50);
1602 $subject->setRequired(true);
1603 $form->addItem($subject);
1604
1605 $existingdata = $this->object->getExternalCodeRecipients();
1606 $existingcolumns = array();
1607 if (count($existingdata)) {
1608 $first = array_shift($existingdata);
1609 foreach ($first as $key => $value) {
1610 if (strcmp($key, 'code') != 0 && strcmp($key, 'email') != 0 && strcmp($key, 'sent') != 0) {
1611 array_push($existingcolumns, '[' . $key . ']');
1612 }
1613 }
1614 }
1615
1616 $mailmessage_u = new ilTextAreaInputGUI($this->lng->txt('survey_360_rater_message_content_registered'), 'message_u');
1617 $mailmessage_u->setRequired(true);
1618 $mailmessage_u->setCols(80);
1619 $mailmessage_u->setRows(10);
1620 $form->addItem($mailmessage_u);
1621
1622 $mailmessage_a = new ilTextAreaInputGUI($this->lng->txt('survey_360_rater_message_content_anonymous'), 'message_a');
1623 $mailmessage_a->setRequired(true);
1624 $mailmessage_a->setCols(80);
1625 $mailmessage_a->setRows(10);
1626 $mailmessage_a->setInfo(sprintf($this->lng->txt('message_content_info'), join(', ', $existingcolumns)));
1627 $form->addItem($mailmessage_a);
1628
1629 $recf = new ilHiddenInputGUI("rtr_id");
1630 $recf->setValue(implode(";", $rec_ids));
1631 $form->addItem($recf);
1632
1633 $form->addCommandButton("mailRatersAction", $this->lng->txt("send"));
1634 $form->addCommandButton("editRaters", $this->lng->txt("cancel"));
1635
1636 $subject->setValue(sprintf($this->lng->txt('survey_360_rater_subject_default'), $this->object->getTitle()));
1637 $mailmessage_u->setValue($this->lng->txt('survey_360_rater_message_content_registered_default'));
1638 $mailmessage_a->setValue($this->lng->txt('survey_360_rater_message_content_anonymous_default'));
1639
1640 return $form;
1641 }
This class represents a custom property in a property form.
This class represents a hidden form property in a property form.

References $form, and $key.

Referenced by mailRatersActionObject(), and mailRatersObject().

+ Here is the caller graph for this function:

◆ insertSavedMessageObject()

ilSurveyParticipantsGUI::insertSavedMessageObject ( )

Definition at line 891 of file class.ilSurveyParticipantsGUI.php.

892 {
893 $this->handleWriteAccess();
894 $this->setCodesSubtabs();
895
896 include_once("./Modules/Survey/classes/forms/FormMailCodesGUI.php");
897 $form_gui = new FormMailCodesGUI($this);
898 $form_gui->setValuesByPost();
899 try {
900 if ($form_gui->getSavedMessages()->getValue() > 0) {
902 $settings = $this->object->getUserSettings($ilUser->getId(), 'savemessage');
903 $form_gui->getMailMessage()->setValue($settings[$form_gui->getSavedMessages()->getValue()]['value']);
904 ilUtil::sendSuccess($this->lng->txt('msg_message_inserted'));
905 } else {
906 ilUtil::sendFailure($this->lng->txt('msg_no_message_inserted'));
907 }
908 } catch (Exception $e) {
910 $ilLog->write('Error: ' + $e->getMessage());
911 }
912 $this->tpl->setVariable("ADM_CONTENT", $form_gui->getHTML());
913 }

References $ilLog, $ilUser, $log, $user, handleWriteAccess(), ilUtil\sendFailure(), and setCodesSubtabs().

+ Here is the call graph for this function:

◆ inviteObject()

ilSurveyParticipantsGUI::inviteObject ( )

Creates the output for user/group invitation to a survey.

Definition at line 411 of file class.ilSurveyParticipantsGUI.php.

412 {
413 $ilAccess = $this->access;
415 $ilToolbar = $this->toolbar;
417
418 $this->handleWriteAccess();
419 $this->setCodesSubtabs();
420
421 include_once("./Services/Form/classes/class.ilPropertyFormGUI.php");
422 $form = new ilPropertyFormGUI();
423 $form->setFormAction($this->ctrl->getFormAction($this));
424 $form->setTableWidth("500");
425 $form->setId("invite");
426
427 // invitation
429 $header->setTitle($this->lng->txt("invitation"));
430 $form->addItem($header);
431
432 // invitation mode
433 $invitation = new ilRadioGroupInputGUI($this->lng->txt('invitation_mode'), "invitation");
434 $invitation->setInfo($this->lng->txt('invitation_mode_desc'));
435 $invitation->addOption(new ilRadioOption($this->lng->txt("invitation_off"), 0, ''));
436 $surveySetting = new ilSetting("survey");
437 if ($surveySetting->get("unlimited_invitation")) {
438 $invitation->addOption(new ilRadioOption($this->lng->txt("unlimited_users"), 1, ''));
439 }
440 $invitation->addOption(new ilRadioOption($this->lng->txt("predefined_users"), 2, ''));
441 $inv = 0;
442 if ($this->object->getInvitation()) {
443 $inv = $this->object->getInvitationMode() + 1;
444 }
445 $invitation->setValue($inv);
446 $form->addItem($invitation);
447
448 $form->addCommandButton("saveInvitationStatus", $this->lng->txt("save"));
449
450 $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.il_svy_svy_invite.html", "Modules/Survey");
451 $this->tpl->setVariable("INVITATION_TABLE", $form->getHTML());
452
453 if ($this->object->getInvitation() && $this->object->getInvitationMode() == 1) {
454 // search button
455 include_once './Services/Search/classes/class.ilRepositorySearchGUI.php';
457 $this,
458 $tb,
459 array(
460 'auto_complete_name' => $lng->txt('user'),
461 'submit_name' => $lng->txt('svy_invite_action')
462 )
463 );
464
465 $ilToolbar->addSpacer();
466
467 $ilToolbar->addButton(
468 $this->lng->txt("svy_search_users"),
469 $this->ctrl->getLinkTargetByClass('ilRepositorySearchGUI', '')
470 );
471
472 $this->tpl->setVariable("ADM_CONTENT", $form->getHTML());
473
474 $invited_users = $this->object->getUserData($this->object->getInvitedUsers());
475 include_once "./Modules/Survey/classes/tables/class.ilSurveyInvitedUsersTableGUI.php";
476 $table_gui = new ilSurveyInvitedUsersTableGUI($this, 'invite');
477 $table_gui->setData($invited_users);
478 $this->tpl->setVariable('TBL_INVITED_USERS', $table_gui->getHTML());
479 }
480 }
This class represents a property in a property form.
This class represents an option in a radio group.
ILIAS Setting Class.

References $access, $form, $header, $lng, $rbacsystem, $toolbar, ilRepositorySearchGUI\fillAutoCompleteToolbar(), handleWriteAccess(), and setCodesSubtabs().

+ Here is the call graph for this function:

◆ inviteUserGroupObject()

ilSurveyParticipantsGUI::inviteUserGroupObject (   $a_user_ids = array())

Invite users or groups to a survey.

Definition at line 366 of file class.ilSurveyParticipantsGUI.php.

367 {
368 $invited = 0;
369 // add users to invitation
370 if (is_array($a_user_ids)) {
371 foreach ($a_user_ids as $user_id) {
372 $this->object->inviteUser($user_id);
373 $invited++;
374 }
375 }
376 if ($invited == 0) {
377 ilUtil::sendFailure($this->lng->txt('no_user_invited'), true);
378 return false;
379 } else {
380 ilUtil::sendSuccess(sprintf($this->lng->txt('users_invited'), $invited), true);
381 return false;
382 }
383 $this->ctrl->redirect($this, "invite");
384 }

References ilUtil\sendFailure().

+ Here is the call graph for this function:

◆ isAnonymousListActive()

ilSurveyParticipantsGUI::isAnonymousListActive ( )
protected

Definition at line 259 of file class.ilSurveyParticipantsGUI.php.

260 {
261 $surveySetting = new ilSetting("survey");
262 if ($surveySetting->get("anonymous_participants", false)) {
263 if ($this->object->hasAnonymizedResults() &&
264 $this->object->hasAnonymousUserList()) {
265 $end = $this->object->getEndDate();
266 if ($end && $end < date("YmdHis")) {
267 $min = $surveySetting->get("anonymous_participants_min", 0);
268 $total = $this->object->getSurveyParticipants();
269 if (!$min || sizeof($total) >= $min) {
270 return true;
271 }
272 }
273 }
274 }
275 return false;
276 }

References $end, and $total.

Referenced by listParticipantsObject(), and setCodesSubtabs().

+ Here is the caller graph for this function:

◆ listAppraiseesObject()

ilSurveyParticipantsGUI::listAppraiseesObject ( )

Definition at line 1202 of file class.ilSurveyParticipantsGUI.php.

1203 {
1204 $ilToolbar = $this->toolbar;
1205 $lng = $this->lng;
1207
1208 $this->handleWriteAccess();
1209
1210 $this->ctrl->setParameter($this, "appr360", 1);
1211
1212 include_once './Services/Search/classes/class.ilRepositorySearchGUI.php';
1214 $this,
1215 $ilToolbar,
1216 array(
1217 'auto_complete_name' => $this->lng->txt('user'),
1218 'submit_name' => $this->lng->txt('add'),
1219 'add_search' => true,
1220 'add_from_container' => $this->ref_id
1221 )
1222 );
1223
1224 // competence calculations
1225 include_once("./Services/Skill/classes/class.ilSkillManagementSettings.php");
1226 $skmg_set = new ilSkillManagementSettings();
1227 if ($this->object->getSkillService() && $skmg_set->isActivated()) {
1228 $ilToolbar->addSeparator();
1229 $ilToolbar->addButton(
1230 $lng->txt("survey_calc_skills"),
1231 $ilCtrl->getLinkTargetByClass("ilsurveyskilldeterminationgui"),
1232 ""
1233 );
1234 }
1235
1236 $ilToolbar->addSeparator();
1237 $ilToolbar->addButton(
1238 $this->lng->txt('svy_delete_all_user_data'),
1239 $this->ctrl->getLinkTarget($this, 'deleteAllUserData')
1240 );
1241
1242 $this->ctrl->setParameter($this, "appr360", "");
1243
1244 include_once "Modules/Survey/classes/tables/class.ilSurveyAppraiseesTableGUI.php";
1245 $tbl = new ilSurveyAppraiseesTableGUI($this, "listAppraisees");
1246 $tbl->setData($this->object->getAppraiseesData());
1247 $this->tpl->setContent($tbl->getHTML());
1248 }

References $ctrl, $ilCtrl, $lng, $tbl, $toolbar, ilRepositorySearchGUI\fillAutoCompleteToolbar(), and handleWriteAccess().

Referenced by maintenanceObject().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ listParticipantsObject()

ilSurveyParticipantsGUI::listParticipantsObject ( )
protected

Definition at line 1840 of file class.ilSurveyParticipantsGUI.php.

1841 {
1842 $ilToolbar = $this->toolbar;
1843
1844 if (!$this->isAnonymousListActive()) {
1845 $this->ctrl->redirect($this, "maintenance");
1846 }
1847
1848 $this->handleWriteAccess();
1849 $this->setCodesSubtabs();
1850
1851 include_once "Services/UIComponent/Button/classes/class.ilLinkButton.php";
1852 $button = ilLinkButton::getInstance();
1853 $button->setCaption("print");
1854 $button->setOnClick("window.print(); return false;");
1855 $button->setOmitPreventDoubleSubmission(true);
1856 $ilToolbar->addButtonInstance($button);
1857
1858 include_once "Modules/Survey/classes/tables/class.ilSurveyParticipantsTableGUI.php";
1859 $tbl = new ilSurveyParticipantsTableGUI($this, "listParticipants", $this->object);
1860 $this->tpl->setContent($tbl->getHTML());
1861 }
static getInstance()
Factory.

References $tbl, $toolbar, ilLinkButton\getInstance(), handleWriteAccess(), isAnonymousListActive(), and setCodesSubtabs().

+ Here is the call graph for this function:

◆ mailCodesObject()

ilSurveyParticipantsGUI::mailCodesObject ( )

Definition at line 939 of file class.ilSurveyParticipantsGUI.php.

940 {
941 $this->handleWriteAccess();
942 $this->setCodesSubtabs();
943
944 $mailData['m_subject'] = (array_key_exists('m_subject', $_POST)) ? $_POST['m_subject'] : sprintf($this->lng->txt('default_codes_mail_subject'), $this->object->getTitle());
945 $mailData['m_message'] = (array_key_exists('m_message', $_POST)) ? $_POST['m_message'] : $this->lng->txt('default_codes_mail_message');
946 $mailData['m_notsent'] = (array_key_exists('m_notsent', $_POST)) ? $_POST['m_notsent'] : '1';
947
948 include_once("./Modules/Survey/classes/forms/FormMailCodesGUI.php");
949 $form_gui = new FormMailCodesGUI($this);
950 $form_gui->setValuesByArray($mailData);
951 $this->tpl->setVariable("ADM_CONTENT", $form_gui->getHTML());
952 }

References $_POST, handleWriteAccess(), and setCodesSubtabs().

+ Here is the call graph for this function:

◆ mailRatersActionObject()

ilSurveyParticipantsGUI::mailRatersActionObject ( )

Definition at line 1668 of file class.ilSurveyParticipantsGUI.php.

1669 {
1671
1672 $appr_id = $this->handleRatersAccess();
1673 $this->ctrl->setParameter($this, "appr_id", $appr_id);
1674
1675 $rec_ids = explode(";", $_POST["rtr_id"]);
1676 if (!sizeof($rec_ids)) {
1677 $this->ctrl->redirect($this, "editRaters");
1678 }
1679
1680 $form = $this->initMailRatersForm($appr_id, $rec_ids);
1681 if ($form->checkInput()) {
1682 $txt_u = $form->getInput("message_u");
1683 $txt_a = $form->getInput("message_a");
1684 $subj = $form->getInput("subject");
1685
1686 // #12743
1687 $sender_id = (trim($ilUser->getEmail()))
1688 ? $ilUser->getId()
1689 : ANONYMOUS_USER_ID;
1690
1691 include_once "./Services/Mail/classes/class.ilMail.php";
1692
1693 $all_data = $this->object->getRatersData($appr_id);
1694 foreach ($rec_ids as $rec_id) {
1695 if (isset($all_data[$rec_id])) {
1696 $user = $all_data[$rec_id];
1697
1698 // anonymous
1699 if (substr($rec_id, 0, 1) == "a") {
1700 $mytxt = $txt_a;
1701 $url = $user["href"];
1702 $rcp = $user["email"];
1703 }
1704 // reg
1705 else {
1706 $mytxt = $txt_u;
1707 $user["code"] = $this->lng->txt("survey_code_mail_on_demand");
1708 $url = ilLink::_getStaticLink($this->object->getRefId());
1709 $rcp = $user["login"]; // #15141
1710 }
1711
1712 $mytxt = str_replace("[lastname]", $user["lastname"], $mytxt);
1713 $mytxt = str_replace("[firstname]", $user["firstname"], $mytxt);
1714 $mytxt = str_replace("[url]", $url, $mytxt);
1715 $mytxt = str_replace("[code]", $user["code"], $mytxt);
1716
1717 $mail = new ilMail($sender_id);
1718 $mail->sendMail(
1719 $rcp, // to
1720 "", // cc
1721 "", // bcc
1722 $subj, // subject
1723 $mytxt, // message
1724 array(), // attachments
1725 array('normal') // type
1726 );
1727
1728 $this->object->set360RaterSent(
1729 $appr_id,
1730 (substr($rec_id, 0, 1) == "a") ? 0 : (int) substr($rec_id, 1),
1731 (substr($rec_id, 0, 1) == "u") ? 0 : (int) substr($rec_id, 1)
1732 );
1733 }
1734 }
1735
1736 ilUtil::sendSuccess($this->lng->txt("mail_sent"), true);
1737 $this->ctrl->redirect($this, "editRaters");
1738 }
1739
1740 $form->setValuesByPost();
1741 $this->mailRatersObject($form);
1742 }
mailRatersObject(ilPropertyFormGUI $a_form=null)
initMailRatersForm($appr_id, array $rec_ids)

References $_POST, $form, $ilUser, $url, $user, ilLink\_getStaticLink(), handleRatersAccess(), initMailRatersForm(), and mailRatersObject().

+ Here is the call graph for this function:

◆ mailRatersObject()

ilSurveyParticipantsGUI::mailRatersObject ( ilPropertyFormGUI  $a_form = null)

Definition at line 1643 of file class.ilSurveyParticipantsGUI.php.

1644 {
1645 $ilTabs = $this->tabs;
1646
1647 if (!$a_form) {
1648 $appr_id = $this->handleRatersAccess();
1649 $this->ctrl->setParameter($this, "appr_id", $appr_id);
1650
1651 if (!sizeof($_POST["rtr_id"])) {
1652 ilUtil::sendFailure($this->lng->txt("select_one"), true);
1653 $this->ctrl->redirect($this, "editRaters");
1654 }
1655
1656 $a_form = $this->initMailRatersForm($appr_id, $_POST["rtr_id"]);
1657 }
1658
1659 $ilTabs->clearTargets();
1660 $ilTabs->setBackTarget(
1661 $this->lng->txt("btn_back"),
1662 $this->ctrl->getLinkTarget($this, "editRaters")
1663 );
1664
1665 $this->tpl->setContent($a_form->getHTML());
1666 }

References $_POST, $tabs, handleRatersAccess(), initMailRatersForm(), and ilUtil\sendFailure().

Referenced by mailRatersActionObject().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ maintenanceObject()

ilSurveyParticipantsGUI::maintenanceObject ( )

Participants maintenance.

Definition at line 204 of file class.ilSurveyParticipantsGUI.php.

205 {
206 $ilToolbar = $this->toolbar;
207
208 if ($this->object->get360Mode()) {
209 return $this->listAppraiseesObject();
210 }
211
212 //Btn Determine Competence Levels
213 if ($this->object->getMode() == ilObjSurvey::MODE_SELF_EVAL) {
214 include_once("./Services/Skill/classes/class.ilSkillManagementSettings.php");
215 $skmg_set = new ilSkillManagementSettings();
216 if ($this->object->getSkillService() && $skmg_set->isActivated()) {
217 $ilToolbar->addButton(
218 $this->lng->txt("survey_calc_skills"),
219 $this->ctrl->getLinkTargetByClass("ilsurveyskilldeterminationgui"),
220 ""
221 );
222 }
223 }
224
225 $this->handleWriteAccess();
226 $this->setCodesSubtabs();
227
228 $ilToolbar->addButton(
229 $this->lng->txt('svy_delete_all_user_data'),
230 $this->ctrl->getLinkTarget($this, 'deleteAllUserData')
231 );
232
233 include_once "./Modules/Survey/classes/tables/class.ilSurveyMaintenanceTableGUI.php";
234 $table_gui = new ilSurveyMaintenanceTableGUI($this, 'maintenance');
235
236 //$total =& $this->object->getSurveyParticipants();
238 $data = array();
239 foreach ($total as $user_data) {
240 $finished = false;
241 if ((bool) $user_data["finished"]) {
242 $finished = $user_data["finished_tstamp"];
243 }
244 $wt = $this->object->getWorkingtimeForParticipant($user_data["active_id"]);
245 $last_access = $this->object->getLastAccess($user_data["active_id"]);
246 array_push($data, array(
247 'id' => $user_data["active_id"],
248 'name' => $user_data["sortname"],
249 'login' => $user_data["login"],
250 'last_access' => $last_access,
251 'workingtime' => $wt,
252 'finished' => $finished
253 ));
254 }
255 $table_gui->setData($data);
256 $this->tpl->setVariable('ADM_CONTENT', $table_gui->getHTML());
257 }

References $data, $toolbar, $total, filterSurveyParticipantsByAccess(), handleWriteAccess(), listAppraiseesObject(), ilObjSurvey\MODE_SELF_EVAL, and setCodesSubtabs().

+ Here is the call graph for this function:

◆ removeUTF8Bom()

ilSurveyParticipantsGUI::removeUTF8Bom (   $a_text)
protected

Definition at line 1049 of file class.ilSurveyParticipantsGUI.php.

1050 {
1051 $bom = pack('H*', 'EFBBBF');
1052 return preg_replace('/^' . $bom . '/', '', $a_text);
1053 }

Referenced by importExternalRecipientsFromFileObject().

+ Here is the caller graph for this function:

◆ saveInvitationStatusObject()

ilSurveyParticipantsGUI::saveInvitationStatusObject ( )

Saves the status of the invitation tab.

Definition at line 389 of file class.ilSurveyParticipantsGUI.php.

390 {
391 $mode = $_POST['invitation'];
392 switch ($mode) {
393 case 0:
394 $this->object->setInvitation(ilObjSurvey::INVITATION_OFF);
395 break;
396 case 1:
397 $this->object->setInvitationAndMode(ilObjSurvey::INVITATION_ON, ilObjSurvey::MODE_UNLIMITED);
398 break;
399 case 2:
400 $this->object->setInvitationAndMode(ilObjSurvey::INVITATION_ON, ilObjSurvey::MODE_PREDEFINED_USERS);
401 break;
402 }
403 $this->object->saveToDb();
404 ilUtil::sendSuccess($this->lng->txt('msg_obj_modified'), true);
405 $this->ctrl->redirect($this, "invite");
406 }
const MODE_PREDEFINED_USERS

References $_POST, ilObjSurvey\INVITATION_OFF, ilObjSurvey\INVITATION_ON, ilObjSurvey\MODE_PREDEFINED_USERS, and ilObjSurvey\MODE_UNLIMITED.

◆ sendCodesMailObject()

ilSurveyParticipantsGUI::sendCodesMailObject ( )

Definition at line 954 of file class.ilSurveyParticipantsGUI.php.

955 {
957
958 $this->handleWriteAccess();
959 $this->setCodesSubtabs();
960
961 include_once("./Modules/Survey/classes/forms/FormMailCodesGUI.php");
962 $form_gui = new FormMailCodesGUI($this);
963 if ($form_gui->checkInput()) {
964 $url_exists = strpos($_POST['m_message'], '[url]') !== false;
965 if (!$url_exists) {
966 ilUtil::sendFailure($this->lng->txt('please_enter_mail_url'));
967 $form_gui->setValuesByPost();
968 } else {
969 if ($_POST['savemessage'] == 1) {
971 $title = (strlen($_POST['savemessagetitle'])) ? $_POST['savemessagetitle'] : ilStr::substr($_POST['m_message'], 0, 40) . '...';
972 $this->object->saveUserSettings($ilUser->getId(), 'savemessage', $title, $_POST['m_message']);
973 }
974
975 $lang = $ilUser->getPref("survey_code_language");
976 if (!$lang) {
977 $lang = $this->lng->getDefaultLanguage();
978 }
979 $this->object->sendCodes($_POST['m_notsent'], $_POST['m_subject'], nl2br($_POST['m_message']), $lang);
980 ilUtil::sendSuccess($this->lng->txt('mail_sent'), true);
981 $this->ctrl->redirect($this, 'mailCodes');
982 }
983 } else {
984 $form_gui->setValuesByPost();
985 }
986 $this->tpl->setVariable("ADM_CONTENT", $form_gui->getHTML());
987 }

References $_POST, $ilUser, $lang, $title, $user, handleWriteAccess(), ilUtil\sendFailure(), and setCodesSubtabs().

+ Here is the call graph for this function:

◆ setCodeLanguageObject()

ilSurveyParticipantsGUI::setCodeLanguageObject ( )

Change survey language for direct access URL's.

Definition at line 583 of file class.ilSurveyParticipantsGUI.php.

584 {
585 if (strcmp($_POST["lang"], "-1") != 0) {
587 $ilUser->writePref("survey_code_language", $_POST["lang"]);
588 }
589 ilUtil::sendSuccess($this->lng->txt('language_changed'), true);
590 $this->ctrl->redirect($this, 'codes');
591 }

References $_POST, $ilUser, and $user.

◆ setCodesSubtabs()

ilSurveyParticipantsGUI::setCodesSubtabs ( )

Set the tabs for the access codes section.

@access private

Definition at line 283 of file class.ilSurveyParticipantsGUI.php.

284 {
285 $ilTabs = $this->tabs;
286
287 // not used in 360° mode
288
289 // maintenance
290 $ilTabs->addSubTabTarget(
291 "sub_tab_dashboard",
292 $this->ctrl->getLinkTarget($this, 'maintenance'),
293 array("maintenance", "deleteAllUserData"),
294 ""
295 );
296
297 if ($this->isAnonymousListActive()) {
298 $ilTabs->addSubTabTarget(
299 "svy_anonymous_participants_svy",
300 $this->ctrl->getLinkTarget($this, 'listParticipants'),
301 array("listParticipants"),
302 ""
303 );
304 }
305
306 if (!$this->object->isAccessibleWithoutCode()) {
307 $ilTabs->addSubTabTarget(
308 "codes",
309 $this->ctrl->getLinkTarget($this, 'codes'),
310 array("codes", "editCodes", "createSurveyCodes", "setCodeLanguage", "deleteCodes", "exportCodes",
311 "importExternalMailRecipientsFromFileForm", "importExternalMailRecipientsFromTextForm"),
312 ""
313 );
314 }
315
316 $hidden_tabs = array();
317 $template = $this->object->getTemplate();
318 if ($template) {
319 include_once "Services/Administration/classes/class.ilSettingsTemplate.php";
321 $hidden_tabs = $template->getHiddenTabs();
322 }
323
324 // #12277 - invite
325 if (!in_array("invitation", $hidden_tabs)) {
326 if ($this->access->checkAccess('write', '', $this->object->getRefId())) {
327 $ilTabs->addSubTabTarget(
328 "invitation",
329 $this->ctrl->getLinkTarget($this, 'invite'),
330 array("invite", "saveInvitationStatus",
331 "inviteUserGroup", "disinviteUserGroup"),
332 ""
333 );
334 }
335 }
336
337 $data = $this->object->getExternalCodeRecipients();
338 if (count($data)) {
339 $ilTabs->addSubTabTarget(
340 "mail_survey_codes",
341 $this->ctrl->getLinkTarget($this, "mailCodes"),
342 array("mailCodes", "sendCodesMail", "insertSavedMessage", "deleteSavedMessage"),
343 ""
344 );
345 }
346 }
Settings template application class.
$template

References $data, $tabs, $template, and isAnonymousListActive().

Referenced by codesObject(), deleteSavedMessageObject(), editCodesObject(), importAccessCodesObject(), importExternalMailRecipientsFromFileFormObject(), importExternalMailRecipientsFromTextFormObject(), insertSavedMessageObject(), inviteObject(), listParticipantsObject(), mailCodesObject(), maintenanceObject(), and sendCodesMailObject().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ updateCodesObject()

ilSurveyParticipantsGUI::updateCodesObject ( )

Definition at line 692 of file class.ilSurveyParticipantsGUI.php.

693 {
694 if (!is_array($_POST["chb_code"])) {
695 $this->ctrl->redirect($this, 'codes');
696 }
697
698 $errors = array();
699 $error_message = "";
700 foreach ($_POST["chb_code"] as $id) {
701 if (!$this->object->updateCode(
702 $id,
703 $_POST["chb_mail"][$id],
704 $_POST["chb_lname"][$id],
705 $_POST["chb_fname"][$id],
706 $_POST["chb_sent"][$id]
707 )) {
708 array_push($errors, array($_POST["chb_mail"][$id], $_POST["chb_lname"][$id], $_POST["chb_fname"][$id]));
709 };
710 }
711 if (empty($errors)) {
712 ilUtil::sendSuccess($this->lng->txt('settings_saved'), true);
713 } else {
714 foreach ($errors as $error) {
715 $error_message .= sprintf($this->lng->txt("error_save_code"), $error[0], $error[1], $error[2]);
716 }
717 ilUtil::sendFailure($error_message, true);
718 }
719
720 $this->ctrl->redirect($this, 'codes');
721 }
$errors
Definition: index.php:6

References $_POST, $errors, $id, and ilUtil\sendFailure().

+ Here is the call graph for this function:

Field Documentation

◆ $access

◆ $ctrl

ilSurveyParticipantsGUI::$ctrl
protected

Definition at line 19 of file class.ilSurveyParticipantsGUI.php.

Referenced by executeCommand(), and listAppraiseesObject().

◆ $has_write

ilSurveyParticipantsGUI::$has_write
protected

◆ $lng

ilSurveyParticipantsGUI::$lng
protected

◆ $log

ilSurveyParticipantsGUI::$log
protected

◆ $object

ilSurveyParticipantsGUI::$object
protected

Definition at line 62 of file class.ilSurveyParticipantsGUI.php.

Referenced by getObject().

◆ $parent_gui

ilSurveyParticipantsGUI::$parent_gui
protected

Definition at line 61 of file class.ilSurveyParticipantsGUI.php.

◆ $rbacsystem

ilSurveyParticipantsGUI::$rbacsystem
protected

Definition at line 49 of file class.ilSurveyParticipantsGUI.php.

Referenced by inviteObject().

◆ $ref_id

ilSurveyParticipantsGUI::$ref_id
protected

Definition at line 63 of file class.ilSurveyParticipantsGUI.php.

◆ $tabs

◆ $toolbar

ilSurveyParticipantsGUI::$toolbar
protected

◆ $tpl

ilSurveyParticipantsGUI::$tpl
protected

◆ $user


The documentation for this class was generated from the following file: