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"];
 
   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;
 
   92        if (!$this->has_write) {
 
   93            include_once 
"Modules/Survey/exceptions/class.ilSurveyException.php";
 
  103        $cmd = 
$ilCtrl->getCmd(
"maintenance");
 
  104        $next_class = $this->ctrl->getNextClass($this);
 
  106        switch ($next_class) {
 
  107            case 'ilrepositorysearchgui':
 
  108                include_once(
'./Services/Search/classes/class.ilRepositorySearchGUI.php');
 
  111                if (!$_REQUEST[
"appr360"] && !$_REQUEST[
"rate360"]) {
 
  112                    $ilTabs->clearTargets();
 
  113                    $ilTabs->setBackTarget(
 
  114                        $this->lng->txt(
"btn_back"),
 
  115                        $this->ctrl->getLinkTarget($this, 
"invite")
 
  118                    $rep_search->setCallback(
 
  120                        'inviteUserGroupObject',
 
  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")
 
  136                    $this->ctrl->setParameter($this, 
"rate360", 1);
 
  137                    $this->ctrl->saveParameter($this, 
"appr_id");
 
  139                    $rep_search->setCallback(
 
  147                    $this->ctrl->setReturn($this, 
'editRaters');
 
  148                    $this->ctrl->forwardCommand($rep_search);
 
  150                    $ilTabs->activateTab(
"survey_360_appraisees");
 
  151                    $this->ctrl->setParameter($this, 
"appr360", 1);
 
  153                    $rep_search->setCallback(
 
  161                    $this->ctrl->setReturn($this, 
'listAppraisees');
 
  162                    $this->ctrl->forwardCommand($rep_search);
 
  175        $all_participants = $this->
object->getSurveyParticipants($a_finished_ids);
 
  176        $participant_ids = [];
 
  177        foreach ($all_participants as $participant) {
 
  178            $participant_ids[] = $participant[
'usr_id'];
 
  182        $filtered_participant_ids = $this->access->filterUserIdsByRbacOrPositionOfCurrentUser(
 
  185            $this->object->getRefId(),
 
  189        foreach ($all_participants as $username => $user_data) {
 
  190            if (!$user_data[
'usr_id']) {
 
  191                $participants[$username] = $user_data;
 
  193            if (in_array($user_data[
'usr_id'], $filtered_participant_ids)) {
 
  194                $participants[$username] = $user_data;
 
  197        return $participants;
 
  208        if ($this->object->get360Mode()) {
 
  214            include_once(
"./Services/Skill/classes/class.ilSkillManagementSettings.php");
 
  216            if ($this->object->getSkillService() && $skmg_set->isActivated()) {
 
  217                $ilToolbar->addButton(
 
  218                    $this->lng->txt(
"survey_calc_skills"),
 
  219                    $this->ctrl->getLinkTargetByClass(
"ilsurveyskilldeterminationgui"),
 
  228        $ilToolbar->addButton(
 
  229            $this->lng->txt(
'svy_delete_all_user_data'),
 
  230            $this->ctrl->getLinkTarget($this, 
'deleteAllUserData')
 
  233        include_once 
"./Modules/Survey/classes/tables/class.ilSurveyMaintenanceTableGUI.php";
 
  239        foreach (
$total as $user_data) {
 
  241            if ((
bool) $user_data[
"finished"]) {
 
  242                $finished = $user_data[
"finished_tstamp"];
 
  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
 
  255        $table_gui->setData(
$data);
 
  256        $this->tpl->setVariable(
'ADM_CONTENT', $table_gui->getHTML());
 
  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) {
 
  290        $ilTabs->addSubTabTarget(
 
  292            $this->ctrl->getLinkTarget($this, 
'maintenance'),
 
  293            array(
"maintenance", 
"deleteAllUserData"),
 
  298            $ilTabs->addSubTabTarget(
 
  299                "svy_anonymous_participants_svy",
 
  300                $this->ctrl->getLinkTarget($this, 
'listParticipants'),
 
  301                array(
"listParticipants"),
 
  306        if (!$this->object->isAccessibleWithoutCode()) {
 
  307            $ilTabs->addSubTabTarget(
 
  309                $this->ctrl->getLinkTarget($this, 
'codes'),
 
  310                array(
"codes", 
"editCodes", 
"createSurveyCodes", 
"setCodeLanguage", 
"deleteCodes", 
"exportCodes",
 
  311                    "importExternalMailRecipientsFromFileForm", 
"importExternalMailRecipientsFromTextForm"),
 
  316        $hidden_tabs = array();
 
  317        $template = $this->
object->getTemplate();
 
  319            include_once 
"Services/Administration/classes/class.ilSettingsTemplate.php";
 
  321            $hidden_tabs = 
$template->getHiddenTabs();
 
  325        if (!in_array(
"invitation", $hidden_tabs)) {
 
  326            if ($this->access->checkAccess(
'write', 
'', $this->object->getRefId())) {
 
  327                $ilTabs->addSubTabTarget(
 
  329                    $this->ctrl->getLinkTarget($this, 
'invite'),
 
  330                    array(
"invite", 
"saveInvitationStatus",
 
  331                 "inviteUserGroup", 
"disinviteUserGroup"),
 
  337        $data = $this->
object->getExternalCodeRecipients();
 
  339            $ilTabs->addSubTabTarget(
 
  341                $this->ctrl->getLinkTarget($this, 
"mailCodes"),
 
  342                array(
"mailCodes", 
"sendCodesMail", 
"insertSavedMessage", 
"deleteSavedMessage"),
 
  354        if (is_array(
$_POST[
"user_select"])) {
 
  355            foreach (
$_POST[
"user_select"] as $user_id) {
 
  356                $this->
object->disinviteUser($user_id);
 
  359        ilUtil::sendSuccess($this->lng->txt(
'msg_users_disinvited'), 
true);
 
  360        $this->ctrl->redirect($this, 
"invite");
 
  370        if (is_array($a_user_ids)) {
 
  371            foreach ($a_user_ids as $user_id) {
 
  372                $this->
object->inviteUser($user_id);
 
  380            ilUtil::sendSuccess(sprintf($this->lng->txt(
'users_invited'), $invited), 
true);
 
  383        $this->ctrl->redirect($this, 
"invite");
 
  391        $mode = 
$_POST[
'invitation'];
 
  403        $this->
object->saveToDb();
 
  404        ilUtil::sendSuccess($this->lng->txt(
'msg_obj_modified'), 
true);
 
  405        $this->ctrl->redirect($this, 
"invite");
 
  421        include_once(
"./Services/Form/classes/class.ilPropertyFormGUI.php");
 
  423        $form->setFormAction($this->ctrl->getFormAction($this));
 
  424        $form->setTableWidth(
"500");
 
  425        $form->setId(
"invite");
 
  429        $header->setTitle($this->lng->txt(
"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, 
''));
 
  440        $invitation->addOption(
new ilRadioOption($this->lng->txt(
"predefined_users"), 2, 
''));
 
  442        if ($this->object->getInvitation()) {
 
  443            $inv = $this->
object->getInvitationMode() + 1;
 
  445        $invitation->setValue($inv);
 
  446        $form->addItem($invitation);
 
  448        $form->addCommandButton(
"saveInvitationStatus", $this->lng->txt(
"save"));
 
  450        $this->tpl->addBlockFile(
"ADM_CONTENT", 
"adm_content", 
"tpl.il_svy_svy_invite.html", 
"Modules/Survey");
 
  451        $this->tpl->setVariable(
"INVITATION_TABLE", 
$form->getHTML());
 
  453        if ($this->object->getInvitation() && $this->object->getInvitationMode() == 1) {
 
  455            include_once 
'./Services/Search/classes/class.ilRepositorySearchGUI.php';
 
  460                    'auto_complete_name' => 
$lng->txt(
'user'),
 
  461                    'submit_name' => 
$lng->txt(
'svy_invite_action')
 
  465            $ilToolbar->addSpacer();
 
  467            $ilToolbar->addButton(
 
  468                $this->lng->txt(
"svy_search_users"),
 
  469                $this->ctrl->getLinkTargetByClass(
'ilRepositorySearchGUI', 
'')
 
  472            $this->tpl->setVariable(
"ADM_CONTENT", 
$form->getHTML());
 
  474            $invited_users = $this->
object->getUserData($this->object->getInvitedUsers());
 
  475            include_once 
"./Modules/Survey/classes/tables/class.ilSurveyInvitedUsersTableGUI.php";
 
  477            $table_gui->setData($invited_users);
 
  478            $this->tpl->setVariable(
'TBL_INVITED_USERS', $table_gui->getHTML());
 
  487        include_once 
"Services/Utilities/classes/class.ilConfirmationGUI.php";
 
  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());
 
  501        if ($this->access->checkAccess(
'write', 
'', $this->object->getRefId())) {
 
  502            $this->
object->deleteAllUserData();
 
  505            foreach ($participants as $something => $participant_data) {
 
  506                $this->
object->removeSelectedSurveyResults([$participant_data[
'active_id']]);
 
  513        if ($this->object->get360Mode()) {
 
  514            $this->
object->openAllAppraisees();
 
  517        ilUtil::sendSuccess($this->lng->txt(
"svy_all_user_data_deleted"), 
true);
 
  518        $this->ctrl->redirect($this, 
"maintenance");
 
  526        $this->ctrl->redirect($this, 
"maintenance");
 
  534        $this->
object->removeSelectedSurveyResults(
$_POST[
"chbUser"]);
 
  535        ilUtil::sendSuccess($this->lng->txt(
"svy_selected_user_data_deleted"), 
true);
 
  536        $this->ctrl->redirect($this, 
"maintenance");
 
  545        $this->ctrl->redirect($this, 
"maintenance");
 
  555        if (!is_array(
$_POST[
"chbUser"]) || count(
$_POST[
"chbUser"]) == 0) {
 
  557            $this->ctrl->redirect($this, 
"maintenance");
 
  561        include_once 
"./Modules/Survey/classes/tables/class.ilSurveyMaintenanceTableGUI.php";
 
  563        $total = &$this->
object->getSurveyParticipants();
 
  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
 
  576        $table_gui->setData(
$data);
 
  577        $this->tpl->setVariable(
'ADM_CONTENT', $table_gui->getHTML());
 
  585        if (strcmp(
$_POST[
"lang"], 
"-1") != 0) {
 
  589        ilUtil::sendSuccess($this->lng->txt(
'language_changed'), 
true);
 
  590        $this->ctrl->redirect($this, 
'codes');
 
  604        if ($this->object->isAccessibleWithoutCode()) {
 
  608        $default_lang = 
$ilUser->getPref(
"survey_code_language");
 
  611        $ilToolbar->setFormAction($this->ctrl->getFormAction($this));
 
  613        include_once(
"./Services/Form/classes/class.ilTextInputGUI.php");
 
  617        $ilToolbar->addInputItem(
$si, 
true);
 
  619        include_once 
"Services/UIComponent/Button/classes/class.ilSubmitButton.php";
 
  622        $button->setCaption(
"create");
 
  623        $button->setCommand(
"createSurveyCodes");
 
  624        $ilToolbar->addButtonInstance($button);
 
  626        $ilToolbar->addSeparator();
 
  629        $button->setCaption(
"import_from_file");
 
  630        $button->setCommand(
"importExternalMailRecipientsFromFileForm");
 
  631        $ilToolbar->addButtonInstance($button);
 
  634        $button->setCaption(
"import_from_text");
 
  635        $button->setCommand(
"importExternalMailRecipientsFromTextForm");
 
  636        $ilToolbar->addButtonInstance($button);
 
  638        $ilToolbar->addSeparator();
 
  641        $button->setCaption(
"svy_import_codes");
 
  642        $button->setCommand(
"importAccessCodes");
 
  643        $ilToolbar->addButtonInstance($button);
 
  645        $ilToolbar->addSeparator();
 
  647        $languages = $this->lng->getInstalledLanguages();
 
  649        $this->lng->loadLanguageModule(
"meta");
 
  653        include_once(
"./Services/Form/classes/class.ilSelectInputGUI.php");
 
  656        $si->setValue($default_lang);
 
  657        $ilToolbar->addInputItem(
$si, 
true);
 
  660        $button->setCaption(
"set");
 
  661        $button->setCommand(
"setCodeLanguage");
 
  662        $ilToolbar->addButtonInstance($button);
 
  664        include_once 
"./Modules/Survey/classes/tables/class.ilSurveyCodesTableGUI.php";
 
  666        $survey_codes = $this->
object->getSurveyCodesTableData(
null, $default_lang);
 
  667        $table_gui->setData($survey_codes);
 
  668        $this->tpl->setContent($table_gui->getHTML());
 
  673        if (isset(
$_GET[
"new_ids"])) {
 
  674            $ids = explode(
";", 
$_GET[
"new_ids"]);
 
  676            $ids = (array) 
$_POST[
"chb_code"];
 
  680            $this->ctrl->redirect($this, 
'codes');
 
  686        include_once 
"./Modules/Survey/classes/tables/class.ilSurveyCodesEditTableGUI.php";
 
  688        $table_gui->setData($this->object->getSurveyCodesTableData($ids));
 
  689        $this->tpl->setContent($table_gui->getHTML());
 
  694        if (!is_array(
$_POST[
"chb_code"])) {
 
  695            $this->ctrl->redirect($this, 
'codes');
 
  701            if (!$this->object->updateCode(
 
  712            ilUtil::sendSuccess($this->lng->txt(
'settings_saved'), 
true);
 
  715                $error_message .= sprintf($this->lng->txt(
"error_save_code"), $error[0], $error[1], $error[2]);
 
  720        $this->ctrl->redirect($this, 
'codes');
 
  725        if (is_array(
$_POST[
"chb_code"]) && (count(
$_POST[
"chb_code"]) > 0)) {
 
  726            include_once(
"./Services/Utilities/classes/class.ilConfirmationGUI.php");
 
  728            $cgui->setHeaderText($this->lng->txt(
"survey_code_delete_sure"));
 
  730            $cgui->setFormAction($this->ctrl->getFormAction($this));
 
  731            $cgui->setCancel($this->lng->txt(
"cancel"), 
"codes");
 
  732            $cgui->setConfirm($this->lng->txt(
"confirm"), 
"deleteCodes");
 
  734            $data = $this->
object->getSurveyCodesTableData(
$_POST[
"chb_code"]);
 
  736            foreach (
$data as $item) {
 
  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;
 
  747                $cgui->addItem(
"chb_code[]", $item[
"code"], 
$title);
 
  750            $this->tpl->setContent($cgui->getHTML());
 
  753            $this->ctrl->redirect($this, 
'codes');
 
  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);
 
  766            ilUtil::sendSuccess($this->lng->txt(
'codes_deleted'), 
true);
 
  770        $this->ctrl->redirect($this, 
'codes');
 
  778        if (is_array(
$_POST[
"chb_code"]) && (count(
$_POST[
"chb_code"]) > 0)) {
 
  779            $export = $this->
object->getSurveyCodesForExport(
null, 
$_POST[
"chb_code"]);
 
  783            $this->ctrl->redirect($this, 
'codes');
 
  792        $export = $this->
object->getSurveyCodesForExport();
 
  804        include_once(
"./Services/Form/classes/class.ilPropertyFormGUI.php");
 
  806        $form_import_file->setFormAction($this->ctrl->getFormAction($this));
 
  807        $form_import_file->setTableWidth(
"100%");
 
  808        $form_import_file->setId(
"codes_import_file");
 
  811        $headerfile->setTitle($this->lng->txt(
"svy_import_codes"));
 
  812        $form_import_file->addItem($headerfile);
 
  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")
 
  819        $export_file->setSuffixes(array(
"csv"));
 
  820        $export_file->setRequired(
true);
 
  821        $form_import_file->addItem($export_file);
 
  823        $form_import_file->addCommandButton(
"importAccessCodesAction", $this->lng->txt(
"import"));
 
  824        $form_import_file->addCommandButton(
"codes", $this->lng->txt(
"cancel"));
 
  826        $this->tpl->setContent($form_import_file->getHTML());
 
  834        if (trim($_FILES[
'codes'][
'tmp_name'])) {
 
  836            foreach ($this->object->getSurveyCodesTableData() as $item) {
 
  837                $existing[$item[
"code"]] = $item[
"id"];
 
  840            include_once 
"./Services/Utilities/classes/class.ilCSVReader.php";
 
  842            $reader->open($_FILES[
'codes'][
'tmp_name']);
 
  843            foreach (
$reader->getDataArrayFromCSVFile() as 
$row) {
 
  845                if (
sizeof(
$row) == 8 && is_numeric(
$row[5])) {
 
  850                    if (!array_key_exists(
$code, $existing)) {
 
  852                        if (strlen($created) == 10) {
 
  861                            ,
"lastname" => $last_name
 
  862                            ,
"firstname" => $first_name
 
  864                        $this->
object->importSurveyCode(
$code, $created, $user_data);
 
  869            ilUtil::sendSuccess($this->lng->txt(
'codes_created'), 
true);
 
  872        $this->ctrl->redirect($this, 
'codes');
 
  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');
 
  887            $this->ctrl->redirect($this, 
'codes');
 
  896        include_once(
"./Modules/Survey/classes/forms/FormMailCodesGUI.php");
 
  898        $form_gui->setValuesByPost();
 
  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'));
 
  908        } 
catch (Exception $e) {
 
  910            $ilLog->write(
'Error: ' + $e->getMessage());
 
  912        $this->tpl->setVariable(
"ADM_CONTENT", $form_gui->getHTML());
 
  920        include_once(
"./Modules/Survey/classes/forms/FormMailCodesGUI.php");
 
  922        $form_gui->setValuesByPost();
 
  924            if ($form_gui->getSavedMessages()->getValue() > 0) {
 
  925                $this->
object->deleteUserSettings($form_gui->getSavedMessages()->getValue());
 
  927                $form_gui->setValuesByPost();
 
  928                ilUtil::sendSuccess($this->lng->txt(
'msg_message_deleted'));
 
  932        } 
catch (Exception $e) {
 
  934            $ilLog->write(
'Error: ' + $e->getMessage());
 
  936        $this->tpl->setVariable(
"ADM_CONTENT", $form_gui->getHTML());
 
  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';
 
  948        include_once(
"./Modules/Survey/classes/forms/FormMailCodesGUI.php");
 
  950        $form_gui->setValuesByArray($mailData);
 
  951        $this->tpl->setVariable(
"ADM_CONTENT", $form_gui->getHTML());
 
  961        include_once(
"./Modules/Survey/classes/forms/FormMailCodesGUI.php");
 
  963        if ($form_gui->checkInput()) {
 
  964            $url_exists = strpos(
$_POST[
'm_message'], 
'[url]') !== 
false;
 
  967                $form_gui->setValuesByPost();
 
  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']);
 
  977                    $lang = $this->lng->getDefaultLanguage();
 
  980                ilUtil::sendSuccess($this->lng->txt(
'mail_sent'), 
true);
 
  981                $this->ctrl->redirect($this, 
'mailCodes');
 
  984            $form_gui->setValuesByPost();
 
  986        $this->tpl->setVariable(
"ADM_CONTENT", $form_gui->getHTML());
 
  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)) {
 
  997                $this->ctrl->redirect($this, 
'importExternalMailRecipientsFromTextForm');
 
  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);
 
 1007            $founddata = array();
 
 1008            foreach (
$data as $datarow) {
 
 1009                $row = preg_split(
"/;/", $datarow);
 
 1010                if (count(
$row) == count($fields)) {
 
 1012                    foreach ($fields as $idx => $fieldname) {
 
 1013                        if (count($existingcolumns)) {
 
 1014                            if (array_key_exists($idx, $existingcolumns)) {
 
 1015                                $dataset[$fieldname] = 
$row[$idx];
 
 1018                            $dataset[$fieldname] = 
$row[$idx];
 
 1021                    if (strlen($dataset[
'email'])) {
 
 1022                        array_push($founddata, $dataset);
 
 1026            $this->
object->createSurveyCodesForExternalData($founddata);
 
 1027            ilUtil::sendSuccess($this->lng->txt(
'external_recipients_imported'), 
true);
 
 1028            $this->ctrl->redirect($this, 
'codes');
 
 1031        $this->ctrl->redirect($this, 
'importExternalMailRecipientsFromTextForm');
 
 1035    protected function _convertCharset($a_string, $a_from_charset = 
"", $a_to_charset = 
"UTF-8")
 
 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);
 
 1042            if (strtoupper($a_from_charset) != $a_to_charset) {
 
 1043                return @mb_convert_encoding($a_string, $a_to_charset, $a_from_charset);
 
 1051        $bom = pack(
'H*', 
'EFBBBF');
 
 1052        return preg_replace(
'/^' . $bom . 
'/', 
'', $a_text);
 
 1057        if (trim($_FILES[
'externalmails'][
'tmp_name'])) {
 
 1058            include_once 
"./Services/Utilities/classes/class.ilCSVReader.php";
 
 1060            $reader->open($_FILES[
'externalmails'][
'tmp_name']);
 
 1062            $fields = array_shift(
$data);
 
 1063            foreach ($fields as $idx => $field) {
 
 1066            if (!in_array(
'email', $fields)) {
 
 1069                $this->ctrl->redirect($this, 
'codes');
 
 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);
 
 1080            include_once 
"Services/Utilities/classes/class.ilStr.php";
 
 1082            $founddata = array();
 
 1084                if (count(
$row) == count($fields)) {
 
 1086                    foreach ($fields as $idx => $fieldname) {
 
 1090                        if (count($existingcolumns)) {
 
 1091                            if (array_key_exists($idx, $existingcolumns)) {
 
 1092                                $dataset[$fieldname] = 
$row[$idx];
 
 1095                            $dataset[$fieldname] = 
$row[$idx];
 
 1098                    if (strlen($dataset[
'email'])) {
 
 1099                        array_push($founddata, $dataset);
 
 1105            if (
sizeof($founddata)) {
 
 1106                $this->
object->createSurveyCodesForExternalData($founddata);
 
 1107                ilUtil::sendSuccess($this->lng->txt(
'external_recipients_imported'), 
true);
 
 1111        $this->ctrl->redirect($this, 
'codes');
 
 1121        include_once(
"./Services/Form/classes/class.ilPropertyFormGUI.php");
 
 1123        $form_import_file->setFormAction($this->ctrl->getFormAction($this));
 
 1124        $form_import_file->setTableWidth(
"100%");
 
 1125        $form_import_file->setId(
"codes_import_file");
 
 1128        $headerfile->setTitle($this->lng->txt(
"import_from_file"));
 
 1129        $form_import_file->addItem($headerfile);
 
 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"));
 
 1138        if ($ilAccess->checkAccess(
"write", 
"", 
$_GET[
"ref_id"])) {
 
 1139            $form_import_file->addCommandButton(
"codes", $this->lng->txt(
"cancel"));
 
 1142        $this->tpl->setContent($form_import_file->getHTML());
 
 1152        include_once(
"./Services/Form/classes/class.ilPropertyFormGUI.php");
 
 1154        $form_import_text->setFormAction($this->ctrl->getFormAction($this));
 
 1155        $form_import_text->setTableWidth(
"100%");
 
 1156        $form_import_text->setId(
"codes_import_text");
 
 1159        $headertext->setTitle($this->lng->txt(
"import_from_text"));
 
 1160        $form_import_text->addItem($headertext);
 
 1163        if (array_key_exists(
'externaltext', 
$_SESSION) && strlen(
$_SESSION[
'externaltext'])) {
 
 1164            $inp->setValue(
$_SESSION[
'externaltext']);
 
 1167            $inp->setValue(
"email;firstname;lastname\n" . $this->lng->txt(
'mail_import_example2') . 
"\n" . $this->lng->txt(
'mail_import_example3') . 
"\n");
 
 1169        $inp->setRequired(
true);
 
 1172        $inp->setInfo($this->lng->txt(
'externaltext_info'));
 
 1173        $form_import_text->addItem($inp);
 
 1176        if ($ilAccess->checkAccess(
"write", 
"", 
$_GET[
"ref_id"])) {
 
 1177            $form_import_text->addCommandButton(
"importExternalRecipientsFromText", $this->lng->txt(
"import"));
 
 1179        if ($ilAccess->checkAccess(
"write", 
"", 
$_GET[
"ref_id"])) {
 
 1180            $form_import_text->addCommandButton(
"codes", $this->lng->txt(
"cancel"));
 
 1183        $this->tpl->setContent($form_import_text->getHTML());
 
 1210        $this->ctrl->setParameter($this, 
"appr360", 1);
 
 1212        include_once 
'./Services/Search/classes/class.ilRepositorySearchGUI.php';
 
 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
 
 1225        include_once(
"./Services/Skill/classes/class.ilSkillManagementSettings.php");
 
 1227        if ($this->object->getSkillService() && $skmg_set->isActivated()) {
 
 1228            $ilToolbar->addSeparator();
 
 1229            $ilToolbar->addButton(
 
 1230                $lng->txt(
"survey_calc_skills"),
 
 1231                $ilCtrl->getLinkTargetByClass(
"ilsurveyskilldeterminationgui"),
 
 1236        $ilToolbar->addSeparator();
 
 1237        $ilToolbar->addButton(
 
 1238            $this->lng->txt(
'svy_delete_all_user_data'),
 
 1239            $this->ctrl->getLinkTarget($this, 
'deleteAllUserData')
 
 1242        $this->ctrl->setParameter($this, 
"appr360", 
"");
 
 1244        include_once 
"Modules/Survey/classes/tables/class.ilSurveyAppraiseesTableGUI.php";
 
 1246        $tbl->setData($this->object->getAppraiseesData());
 
 1247        $this->tpl->setContent(
$tbl->getHTML());
 
 1252        if (
sizeof($a_user_ids)) {
 
 1254            foreach (array_unique($a_user_ids) as $user_id) {
 
 1255                $this->
object->addAppraisee($user_id);
 
 1258            ilUtil::sendSuccess($this->lng->txt(
"settings_saved"), 
true);
 
 1260        $this->ctrl->redirect($this, 
"listAppraisees");
 
 1267        if (!
sizeof(
$_POST[
"appr_id"])) {
 
 1269            $this->ctrl->redirect($this, 
"listAppraisees");
 
 1272        $ilTabs->clearTargets();
 
 1273        $ilTabs->setBackTarget(
 
 1274            $this->lng->txt(
"btn_back"),
 
 1275            $this->ctrl->getLinkTarget($this, 
"listAppraisees")
 
 1278        include_once(
"./Services/Utilities/classes/class.ilConfirmationGUI.php");
 
 1280        $cgui->setHeaderText($this->lng->txt(
"survey_360_sure_delete_appraises"));
 
 1282        $cgui->setFormAction($this->ctrl->getFormAction($this, 
"deleteAppraisees"));
 
 1283        $cgui->setCancel($this->lng->txt(
"cancel"), 
"listAppraisees");
 
 1284        $cgui->setConfirm($this->lng->txt(
"confirm"), 
"deleteAppraisees");
 
 1286        $data = $this->
object->getAppraiseesData();
 
 1289        include_once 
"Services/User/classes/class.ilUserUtil.php";
 
 1299            $this->ctrl->redirect($this, 
"listAppraisees");
 
 1302        $this->tpl->setContent($cgui->getHTML());
 
 1307        if (
sizeof(
$_POST[
"appr_id"])) {
 
 1308            $data = $this->
object->getAppraiseesData();
 
 1313                    $this->
object->deleteAppraisee($id);
 
 1317            ilUtil::sendSuccess($this->lng->txt(
"settings_saved"), 
true);
 
 1320        $this->ctrl->redirect($this, 
"listAppraisees");
 
 1328        if ($ilAccess->checkAccess(
"write", 
"", $this->ref_id)) {
 
 1329            $appr_id = $_REQUEST[
"appr_id"];
 
 1331                $this->ctrl->redirect($this, 
"listAppraisees");
 
 1334        } elseif ($this->object->get360Mode() &&
 
 1335            $this->object->get360SelfRaters() &&
 
 1336            $this->object->isAppraisee(
$ilUser->getId()) &&
 
 1337            !$this->object->isAppraiseeClosed(
$ilUser->getId())) {
 
 1340        $this->ctrl->redirect($this->parent_gui, 
"infoScreen");
 
 1351        $has_write = $ilAccess->checkAccess(
"write", 
"", $this->ref_id);
 
 1353            $ilTabs->clearTargets();
 
 1354            $ilTabs->setBackTarget(
 
 1355                $this->lng->txt(
"btn_back"),
 
 1356                $this->ctrl->getLinkTarget($this, 
"listAppraisees")
 
 1360        $this->ctrl->setParameter($this, 
"appr_id", $appr_id);
 
 1361        $this->ctrl->setParameter($this, 
"rate360", 1);
 
 1363        include_once 
'./Services/Search/classes/class.ilRepositorySearchGUI.php';
 
 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
 
 1375        $this->ctrl->setParameter($this, 
"rate360", 
"");
 
 1377        $ilToolbar->addSeparator();
 
 1379        $ilToolbar->addButton(
 
 1380            $this->lng->txt(
"survey_360_add_external_rater"),
 
 1381            $this->ctrl->getLinkTarget($this, 
"addExternalRaterForm")
 
 1385        require_once 
"Services/Link/classes/class.ilLink.php";
 
 1388        include_once 
"Modules/Survey/classes/tables/class.ilSurveyAppraiseesTableGUI.php";
 
 1390        $tbl->setData($this->object->getRatersData($appr_id));
 
 1391        $this->tpl->setContent(
$tbl->getHTML());
 
 1400        $this->ctrl->setParameter($this, 
"appr_id", $appr_id);
 
 1402        $has_write = $ilAccess->checkAccess(
"write", 
"", $this->ref_id);
 
 1404            $ilTabs->clearTargets();
 
 1405            $ilTabs->setBackTarget(
 
 1406                $this->lng->txt(
"btn_back"),
 
 1407                $this->ctrl->getLinkTarget($this, 
"editRaters")
 
 1415        $this->tpl->setContent($a_form->getHTML());
 
 1420        include_once 
"Services/User/classes/class.ilUserUtil.php";
 
 1421        include_once(
"./Services/Form/classes/class.ilPropertyFormGUI.php");
 
 1423        $form->setFormAction($this->ctrl->getFormAction($this, 
"addExternalRater"));
 
 1424        $form->setTitle($this->lng->txt(
"survey_360_add_external_rater") .
 
 1427        $email = 
new ilEmailInputGUI($this->lng->txt(
"email"), 
"email");
 
 1428        $email->setRequired(
true);
 
 1431        $lname = 
new ilTextInputGUI($this->lng->txt(
"lastname"), 
"lname");
 
 1432        $lname->setSize(30);
 
 1433        $form->addItem($lname);
 
 1435        $fname = 
new ilTextInputGUI($this->lng->txt(
"firstname"), 
"fname");
 
 1436        $fname->setSize(30);
 
 1437        $form->addItem($fname);
 
 1439        $form->addCommandButton(
"addExternalRater", $this->lng->txt(
"save"));
 
 1440        $form->addCommandButton(
"editRaters", $this->lng->txt(
"cancel"));
 
 1447        $appr_id = $_REQUEST[
"appr_id"];
 
 1449            $this->ctrl->redirect($this, 
"listAppraisees");
 
 1452        $this->ctrl->setParameter($this, 
"appr_id", $appr_id);
 
 1455        if (
$form->checkInput()) {
 
 1457                "email" => 
$form->getInput(
"email"),
 
 1458                "lastname" => 
$form->getInput(
"lname"),
 
 1459                "firstname" => 
$form->getInput(
"fname")
 
 1461            $anonymous_id = $this->
object->createSurveyCodesForExternalData(array(
$data));
 
 1462            $anonymous_id = array_pop($anonymous_id);
 
 1464            $this->
object->addRater($appr_id, 0, $anonymous_id);
 
 1466            ilUtil::sendSuccess($this->lng->txt(
"settings_saved"), 
true);
 
 1467            $this->ctrl->setParameter($this, 
"appr_id", $appr_id);
 
 1468            $this->ctrl->redirect($this, 
"editRaters");
 
 1471        $form->setValuesByPost();
 
 1482        if (
sizeof($a_user_ids)) {
 
 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);
 
 1498        $this->ctrl->setParameter($this, 
"appr_id", $appr_id);
 
 1499        $this->ctrl->redirect($this, 
"editRaters");
 
 1507        $this->ctrl->setParameter($this, 
"appr_id", $appr_id);
 
 1508        if (!
sizeof(
$_POST[
"rtr_id"])) {
 
 1510            $this->ctrl->redirect($this, 
"editRaters");
 
 1513        $ilTabs->clearTargets();
 
 1514        $ilTabs->setBackTarget(
 
 1515            $this->lng->txt(
"btn_back"),
 
 1516            $this->ctrl->getLinkTarget($this, 
"editRaters")
 
 1519        include_once 
"Services/User/classes/class.ilUserUtil.php";
 
 1520        include_once(
"./Services/Utilities/classes/class.ilConfirmationGUI.php");
 
 1522        $cgui->setHeaderText(sprintf(
 
 1523            $this->lng->txt(
"survey_360_sure_delete_raters"),
 
 1527        $cgui->setFormAction($this->ctrl->getFormAction($this, 
"deleteRaters"));
 
 1528        $cgui->setCancel($this->lng->txt(
"cancel"), 
"editRaters");
 
 1529        $cgui->setConfirm($this->lng->txt(
"confirm"), 
"deleteRaters");
 
 1531        $data = $this->
object->getRatersData($appr_id);
 
 1535                $cgui->addItem(
"rtr_id[]", 
$id, 
$data[
$id][
"lastname"] . 
", " .
 
 1540        $this->tpl->setContent($cgui->getHTML());
 
 1546        $this->ctrl->setParameter($this, 
"appr_id", $appr_id);
 
 1548        if (
sizeof(
$_POST[
"rtr_id"])) {
 
 1549            $data = $this->
object->getRatersData($appr_id);
 
 1553                    if (substr(
$id, 0, 1) == 
"u") {
 
 1554                        $this->
object->deleteRater($appr_id, substr(
$id, 1));
 
 1556                        $this->
object->deleteRater($appr_id, 0, substr(
$id, 1));
 
 1561            ilUtil::sendSuccess($this->lng->txt(
"settings_saved"), 
true);
 
 1564        $this->ctrl->redirect($this, 
"editRaters");
 
 1571        if ($this->object->get360SelfAppraisee() &&
 
 1572            !$this->object->isAppraisee(
$ilUser->getId())) {
 
 1573            $this->
object->addAppraisee(
$ilUser->getId());
 
 1576        $this->ctrl->redirect($this->parent_gui, 
"infoScreen");
 
 1581        include_once(
"./Services/Form/classes/class.ilPropertyFormGUI.php");
 
 1583        $form->setFormAction($this->ctrl->getFormAction($this, 
"mailRatersAction"));
 
 1584        $form->setTitle($this->lng->txt(
'compose'));
 
 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"] . 
")";
 
 1597        $rec->setHTML(implode(
"<br />", $rec_data));
 
 1598        $form->addItem($rec);
 
 1600        $subject = 
new ilTextInputGUI($this->lng->txt(
'subject'), 
'subject');
 
 1601        $subject->setSize(50);
 
 1602        $subject->setRequired(
true);
 
 1603        $form->addItem($subject);
 
 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 . 
']');
 
 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);
 
 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);
 
 1630        $recf->setValue(implode(
";", $rec_ids));
 
 1631        $form->addItem($recf);
 
 1633        $form->addCommandButton(
"mailRatersAction", $this->lng->txt(
"send"));
 
 1634        $form->addCommandButton(
"editRaters", $this->lng->txt(
"cancel"));
 
 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'));
 
 1649            $this->ctrl->setParameter($this, 
"appr_id", $appr_id);
 
 1651            if (!
sizeof(
$_POST[
"rtr_id"])) {
 
 1653                $this->ctrl->redirect($this, 
"editRaters");
 
 1659        $ilTabs->clearTargets();
 
 1660        $ilTabs->setBackTarget(
 
 1661            $this->lng->txt(
"btn_back"),
 
 1662            $this->ctrl->getLinkTarget($this, 
"editRaters")
 
 1665        $this->tpl->setContent($a_form->getHTML());
 
 1673        $this->ctrl->setParameter($this, 
"appr_id", $appr_id);
 
 1675        $rec_ids = explode(
";", 
$_POST[
"rtr_id"]);
 
 1676        if (!
sizeof($rec_ids)) {
 
 1677            $this->ctrl->redirect($this, 
"editRaters");
 
 1681        if (
$form->checkInput()) {
 
 1682            $txt_u = 
$form->getInput(
"message_u");
 
 1683            $txt_a = 
$form->getInput(
"message_a");
 
 1684            $subj = 
$form->getInput(
"subject");
 
 1687            $sender_id = (trim(
$ilUser->getEmail()))
 
 1689                : ANONYMOUS_USER_ID;
 
 1691            include_once 
"./Services/Mail/classes/class.ilMail.php";
 
 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];
 
 1699                    if (substr($rec_id, 0, 1) == 
"a") {
 
 1702                        $rcp = 
$user[
"email"];
 
 1707                        $user[
"code"] = $this->lng->txt(
"survey_code_mail_on_demand");
 
 1709                        $rcp = 
$user[
"login"]; 
 
 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);
 
 1717                    $mail = 
new ilMail($sender_id);
 
 1728                    $this->
object->set360RaterSent(
 
 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)
 
 1736            ilUtil::sendSuccess($this->lng->txt(
"mail_sent"), 
true);
 
 1737            $this->ctrl->redirect($this, 
"editRaters");
 
 1740        $form->setValuesByPost();
 
 1750        $ilTabs->clearTargets();
 
 1751        $ilTabs->setBackTarget(
 
 1752            $this->lng->txt(
"menuback"),
 
 1753            $this->ctrl->getLinkTarget($this->parent_gui, 
"infoScreen")
 
 1756        if (!$this->object->isAppraisee(
$ilUser->getId())) {
 
 1757            $this->ctrl->redirect($this->parent_gui, 
"infoScreen");
 
 1760        include_once(
"./Services/Utilities/classes/class.ilConfirmationGUI.php");
 
 1762        $cgui->setHeaderText($this->lng->txt(
"survey_360_sure_appraisee_close"));
 
 1764        $cgui->setFormAction($this->ctrl->getFormAction($this, 
"appraiseeClose"));
 
 1765        $cgui->setCancel($this->lng->txt(
"cancel"), 
"confirmAppraiseeCloseCancel");
 
 1766        $cgui->setConfirm($this->lng->txt(
"confirm"), 
"appraiseeClose");
 
 1768        $tpl->setContent($cgui->getHTML());
 
 1773        $this->ctrl->redirect($this->parent_gui, 
"infoScreen");
 
 1780        if (!$this->object->isAppraisee(
$ilUser->getId())) {
 
 1781            $this->ctrl->redirect($this->parent_gui, 
"infoScreen");
 
 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");
 
 1795        $appr_ids = 
$_POST[
"appr_id"];
 
 1797        if (!
sizeof($appr_ids)) {
 
 1799            $this->ctrl->redirect($this, 
"listAppraisees");
 
 1802        include_once(
"./Services/Utilities/classes/class.ilConfirmationGUI.php");
 
 1804        $cgui->setHeaderText($this->lng->txt(
"survey_360_sure_appraisee_close_admin"));
 
 1806        $cgui->setFormAction($this->ctrl->getFormAction($this, 
"adminAppraiseesClose"));
 
 1807        $cgui->setCancel($this->lng->txt(
"cancel"), 
"listAppraisees");
 
 1808        $cgui->setConfirm($this->lng->txt(
"confirm"), 
"adminAppraiseesClose");
 
 1810        include_once 
"Services/User/classes/class.ilUserUtil.php";
 
 1811        foreach ($appr_ids as $appr_id) {
 
 1815        $tpl->setContent($cgui->getHTML());
 
 1822        $appr_ids = 
$_POST[
"appr_id"];
 
 1824        if (!
sizeof($appr_ids)) {
 
 1826            $this->ctrl->redirect($this, 
"listAppraisees");
 
 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);
 
 1836        ilUtil::sendSuccess($this->lng->txt(
"survey_360_appraisee_close_action_success_admin"), 
true);
 
 1837        $this->ctrl->redirect($this, 
"listAppraisees");
 
 1845            $this->ctrl->redirect($this, 
"maintenance");
 
 1851        include_once 
"Services/UIComponent/Button/classes/class.ilLinkButton.php";
 
 1853        $button->setCaption(
"print");
 
 1854        $button->setOnClick(
"window.print(); return false;");
 
 1855        $button->setOmitPreventDoubleSubmission(
true);
 
 1856        $ilToolbar->addButtonInstance($button);
 
 1858        include_once 
"Modules/Survey/classes/tables/class.ilSurveyParticipantsTableGUI.php";
 
 1860        $this->tpl->setContent(
$tbl->getHTML());
 
An exception for terminatinating execution or to throw for unit testing.
Confirmation screen class.
@classDescription Date and time handling
static _getStaticLink( $a_ref_id, $a_type='', $a_fallback_goto=true, $append="")
Get static link.
const MODE_PREDEFINED_USERS
This class represents an option in a radio group.
static fillAutoCompleteToolbar($parent_object, ilToolbarGUI $toolbar=null, $a_options=array(), $a_sticky=false)
fill toolbar with
Settings template application class.
Skill management settings.
Class ilSurveyParticipantsGUI.
exportCodesObject()
Exports a list of survey codes.
cancelDeleteAllUserDataObject()
Cancels delete of all user data in maintenance.
mailRatersObject(ilPropertyFormGUI $a_form=null)
importExternalRecipientsFromFileObject()
filterSurveyParticipantsByAccess($a_finished_ids=null)
saveInvitationStatusObject()
Saves the status of the invitation tab.
deleteSavedMessageObject()
deleteCodesConfirmObject()
confirmAppraiseeCloseObject()
deleteAllUserDataObject()
Creates a confirmation form for delete all user data.
addAppraisee($a_user_ids)
setCodesSubtabs()
Set the tabs for the access codes section.
maintenanceObject()
Participants maintenance.
importExternalMailRecipientsFromFileFormObject()
addExternalRaterFormObject(ilPropertyFormGUI $a_form=null)
importExternalMailRecipientsFromTextFormObject()
__construct(ilObjSurveyGUI $a_parent_gui, $a_has_write_access)
confirmAppraiseeCloseCancelObject()
inviteObject()
Creates the output for user/group invitation to a survey.
insertSavedMessageObject()
importAccessCodesActionObject()
Import codes from export codes file.
codesObject()
Display the survey access codes tab.
confirmDeleteAllUserDataObject()
Deletes all user data of the survey after confirmation.
createSurveyCodesObject()
Create access codes for the survey.
_convertCharset($a_string, $a_from_charset="", $a_to_charset="UTF-8")
exportAllCodesObject()
Exports all survey codes.
initMailRatersForm($appr_id, array $rec_ids)
deleteCodesObject()
Delete a list of survey codes.
confirmDeleteAppraiseesObject()
disinviteUserGroupObject()
Disinvite users or groups from a survey.
deleteSingleUserResultsObject()
Asks for a confirmation to delete selected user data of the test object.
setCodeLanguageObject()
Change survey language for direct access URL's.
importAccessCodesObject()
Import codes from export codes file (upload form)
confirmAdminAppraiseesCloseObject()
adminAppraiseesCloseObject()
cancelDeleteSelectedUserDataObject()
Cancels the deletion of all user data for the test object.
initExternalRaterForm($appr_id)
confirmDeleteRatersObject()
inviteUserGroupObject($a_user_ids=array())
Invite users or groups to a survey.
confirmDeleteSelectedUserDataObject()
Deletes all user data for the test object.
importExternalRecipientsFromTextObject()
This class represents a text area property in a property form.
This class represents a text property in a property form.
static getNamePresentation( $a_user_id, $a_user_image=false, $a_profile_link=false, $a_profile_back_link="", $a_force_first_lastname=false, $a_omit_login=false, $a_sortable=true, $a_return_data_array=false, $a_ctrl_path="ilpublicuserprofilegui")
Default behaviour is:
static sendQuestion($a_info="", $a_keep=false)
Send Question to Screen.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
static deliverData($a_data, $a_filename, $mime="application/octet-stream", $charset="")
deliver data for download via browser.
static getASCIIFilename($a_filename)
convert utf8 to ascii filename
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
if(!array_key_exists('StateId', $_REQUEST)) $id
for($i=1; $i<=count($kw_cases_sel); $i+=1) $lang
if(isset($_POST['submit'])) $form