24include_once 
'./Services/Calendar/classes/class.ilCalendarRecurrence.php';
 
   25include_once 
'./Services/Booking/classes/class.ilBookingEntry.php';
 
   26include_once 
'./Services/Calendar/classes/ConsultationHours/class.ilConsultationHourAppointments.php';
 
   66                        $this->user_id = 
$ilUser->getId();
 
   82                $ilHelp->setScreenIdComponent(
"cal");
 
   84                switch($this->ctrl->getNextClass())
 
   86                        case "ilpublicuserprofilegui":                          
 
   87                                include_once(
'./Services/User/classes/class.ilPublicUserProfileGUI.php');
 
   90                                $ret = $ilCtrl->forwardCommand($profile);
 
   94                        case 'ilrepositorysearchgui':
 
   96                                include_once(
'./Services/Search/classes/class.ilRepositorySearchGUI.php');
 
  101                                        $rep_search->setCallback(
 
  103                                                'assignUsersToAppointments',
 
  106                                        $ilCtrl->setParameter($this,
'assignM',1);
 
  107                                        $ilCtrl->setReturn($this,
'appointmentList');
 
  108                                        $ilTabs->activateSubTab(
'cal_ch_app_list');
 
  112                                        $rep_search->setCallback(
 
  114                                                'assignUsersToGroup',
 
  117                                        $ilCtrl->saveParameter($this,
'grp_id');
 
  118                                        $ilCtrl->setReturn($this,
'groupList');
 
  119                                        $ilTabs->activateSubTab(
'cal_ch_app_grp');
 
  123                                        $rep_search->setCallback(
 
  125                                                'assignUsersToAppointment',
 
  128                                        $ilCtrl->saveParameter($this,
'apps');
 
  129                                        $ilCtrl->setReturn($this,
'appointmentList');
 
  130                                        $ilTabs->activateSubTab(
'cal_ch_app_list');
 
  132                                $ilCtrl->forwardCommand($rep_search);
 
  136                                $tpl->setTitle($this->lng->txt(
"cal_ch_form_header")); 
 
  139                                if($ilUser->getId() != $this->user_id)
 
  141                                        $ilCtrl->setParameter($this, 
'user_id', $this->user_id);
 
  144                                $cmd = $this->ctrl->getCmd(
'appointmentList');
 
  170                        $GLOBALS[
'ilCtrl']->redirect($this,
'appointmentList');
 
  173                $ilCtrl->setCmdClass(
'ilrepositorysearchgui');
 
  191                        include_once 
'./Services/User/classes/class.ilObjUser.php';
 
  194                ilUtil::sendInfo($this->lng->txt(
'cal_ch_user_assignment_failed_info').
'<br />'.implode(
'<br />', $users),
true);
 
  206                $unassigned_users = array();
 
  209                        $unassigned_users = array_unique(array_merge($unassigned_users,$this->
assignUsersToAppointment($users,$app,
false)));
 
  213                $ilCtrl->redirect($this,
'appointmentList');
 
  235                include_once 
'./Services/Booking/classes/class.ilBookingEntry.php';
 
  238                $assigned_users = array();
 
  239                foreach($users as $user)
 
  241                        if(
$booking->getCurrentNumberOfBookings($app) >= 
$booking->getNumberOfBookings())
 
  247                                include_once 
'./Services/Calendar/classes/ConsultationHours/class.ilConsultationHourUtils.php';
 
  249                                $assigned_users[] = $user;
 
  253                $unassigned_users = array_diff($users, $assigned_users);
 
  258                        $ilCtrl->redirect($this,
'appointmentList');
 
  262                        return $unassigned_users;
 
  282                include_once 
'./Services/Calendar/classes/ConsultationHours/class.ilConsultationHourAppointments.php';
 
  283                include_once 
'./Services/Booking/classes/class.ilBookingEntry.php';
 
  290                $assigned_users = array();
 
  291                foreach($apps as $app)
 
  294                        foreach($users as $user)
 
  296                                if(
$booking->getCurrentNumberOfBookings($app) >= 
$booking->getNumberOfBookings())
 
  302                                        include_once 
'./Services/Calendar/classes/ConsultationHours/class.ilConsultationHourUtils.php';
 
  304                                        $assigned_users[] = $user;
 
  310                $ilCtrl->redirect($this,
'bookingList');
 
  320                global $ilToolbar, $ilTabs, 
$tpl;
 
  322                $ilToolbar->setFormAction($this->ctrl->getFormAction($this));
 
  323                $ilToolbar->addButton($this->lng->txt(
'cal_ch_add_grp'),$this->ctrl->getLinkTarget($this,
'addGroup'));
 
  326                $ilTabs->activateSubTab(
'cal_ch_app_grp');
 
  328                include_once 
'./Services/Calendar/classes/ConsultationHours/class.ilConsultationHourGroupTableGUI.php';
 
  329                include_once 
'./Services/Calendar/classes/ConsultationHours/class.ilConsultationHourGroups.php';
 
  333                $tpl->setContent($gtbl->getHTML());
 
  343                global $ilTabs, 
$tpl;
 
  346                $ilTabs->activateSubTab(
'cal_ch_app_grp');
 
  352                $tpl->setContent($form->getHTML());
 
  361                if($form->checkInput())
 
  363                        include_once 
'./Services/Calendar/classes/ConsultationHours/class.ilConsultationHourGroup.php';
 
  365                        $group->setTitle($form->getInput(
'title'));
 
  366                        $group->setMaxAssignments($form->getInput(
'multiple'));
 
  371                        $GLOBALS[
'ilCtrl']->redirect($this,
'groupList');
 
  389                $ilTabs->activateSubTab(
'cal_ch_app_grp');
 
  395                $tpl->setContent($form->getHTML());
 
  411                if($form->checkInput())
 
  413                        include_once 
'./Services/Calendar/classes/ConsultationHours/class.ilConsultationHourGroup.php';
 
  415                        $group->setTitle($form->getInput(
'title'));
 
  416                        $group->setMaxAssignments($form->getInput(
'multiple'));
 
  421                        $GLOBALS[
'ilCtrl']->redirect($this,
'groupList');
 
  438                $groups = array((
int) 
$_REQUEST[
'grp_id']);
 
  441                $ilTabs->activateSubTab(
'cal_ch_app_grp');
 
  444                include_once 
'./Services/Utilities/classes/class.ilConfirmationGUI.php';
 
  446                $confirm->setFormAction(
$ilCtrl->getFormAction($this));
 
  447                $confirm->setHeaderText(
$GLOBALS[
'lng']->txt(
'cal_ch_grp_delete_sure'));
 
  448                $confirm->setConfirm(
$GLOBALS[
'lng']->txt(
'delete'), 
'deleteGroup');
 
  449                $confirm->setCancel(
$GLOBALS[
'lng']->txt(
'cancel'), 
'groupList');
 
  451                foreach($groups as $grp_id)
 
  453                        include_once 
'./Services/Calendar/classes/ConsultationHours/class.ilConsultationHourGroup.php';
 
  456                        $confirm->addItem(
'groups[]', $grp_id, $group->getTitle());
 
  458                $tpl->setContent($confirm->getHTML());
 
  468                foreach((array) 
$_REQUEST[
'groups'] as $grp_id)
 
  470                        include_once 
'./Services/Calendar/classes/ConsultationHours/class.ilConsultationHourGroup.php';
 
  475                $ilCtrl->redirect($this,
'groupList');
 
  483                include_once 
'./Services/Calendar/classes/ConsultationHours/class.ilConsultationHourGroup.php';
 
  486                include_once 
'Services/Form/classes/class.ilPropertyFormGUI.php';
 
  488                $form->setFormAction(
$GLOBALS[
'ilCtrl']->getFormAction($this));
 
  492                        $form->setTitle(
$GLOBALS[
'lng']->txt(
'cal_ch_grp_update_tbl'));
 
  493                        $form->addCommandButton(
'updateGroup', 
$GLOBALS[
'lng']->txt(
'save'));
 
  494                        $form->addCommandButton(
'groupList', 
$GLOBALS[
'lng']->txt(
'cancel'));
 
  498                        $form->setTitle(
$GLOBALS[
'lng']->txt(
'cal_ch_grp_add_tbl'));
 
  499                        $form->addCommandButton(
'saveGroup', 
$GLOBALS[
'lng']->txt(
'save'));
 
  500                        $form->addCommandButton(
'appointmentList', 
$GLOBALS[
'lng']->txt(
'cancel'));
 
  504                $title->setMaxLength(128);
 
  506                $title->setRequired(
true);
 
  507                $title->setValue($group->getTitle());
 
  508                $form->addItem($title);
 
  511                $multiple->setRequired(
true);
 
  512                $multiple->setMinValue(1);
 
  513                $multiple->setSize(1);
 
  514                $multiple->setMaxLength(2);
 
  515                $multiple->setInfo(
$GLOBALS[
'lng']->txt(
'cal_ch_grp_multiple_info'));
 
  516                $multiple->setValue($group->getMaxAssignments());
 
  517                $form->addItem($multiple);
 
  527                global $ilToolbar, $ilTabs, 
$tpl;
 
  530                $ilTabs->activateSubTab(
'cal_ch_app_bookings');
 
  532                include_once 
'./Services/Calendar/classes/ConsultationHours/class.ilConsultationHourBookingTableGUI.php';
 
  535                $tpl->setContent($btable->getHTML());
 
  551                global $ilTabs, 
$tpl;
 
  554                $ilTabs->activateSubTab(
'cal_ch_app_bookings');
 
  556                include_once(
'./Services/Utilities/classes/class.ilConfirmationGUI.php');
 
  559                $confirm->setFormAction($this->ctrl->getFormAction($this));
 
  561                if($a_send_notification)
 
  564                        $confirm->setHeaderText($this->lng->txt(
'cal_ch_cancel_booking_sure'));
 
  565                        $confirm->setConfirm($this->lng->txt(
'cal_ch_reject_booking'), 
'rejectBooking');
 
  570                        $confirm->setHeaderText($this->lng->txt(
'cal_ch_delete_booking_sure'));
 
  571                        $confirm->setConfirm($this->lng->txt(
'cal_ch_delete_booking'), 
'deleteBooking');
 
  574                $confirm->setCancel($this->lng->txt(
'cancel'),
'bookingList');
 
  576                include_once 
'Services/Calendar/classes/class.ilCalendarEntry.php';
 
  577                foreach((array) 
$_REQUEST[
'bookuser'] as $bookuser)
 
  579                        $ids = explode(
'_',$bookuser);
 
  581                        include_once 
'./Services/Calendar/classes/class.ilCalendarEntry.php';
 
  582                        include_once 
'./Services/User/classes/class.ilUserUtil.php';
 
  597                $tpl->setContent($confirm->getHTML());
 
  616                foreach((array) 
$_REQUEST[
'bookuser'] as $bookuser)
 
  618                        $ids = explode(
'_',$bookuser);
 
  620                        include_once 
'./Services/Calendar/classes/ConsultationHours/class.ilConsultationHourUtils.php';
 
  623                if($a_send_notification)
 
  631                $ilCtrl->redirect($this,
'bookingList');
 
  641                global $ilToolbar, $ilHelp, $ilTabs;
 
  643                $ilHelp->setScreenId(
"consultation_hours");
 
  645                $ilToolbar->setFormAction($this->ctrl->getFormAction($this));
 
  646                $ilToolbar->addButton($this->lng->txt(
'cal_ch_add_sequence'),$this->ctrl->getLinkTarget($this,
'createSequence'));
 
  649                $ilTabs->activateSubTab(
'cal_ch_app_list');
 
  651                include_once 
'./Services/Calendar/classes/ConsultationHours/class.ilConsultationHoursTableGUI.php';
 
  654                $this->tpl->setContent($tbl->getHTML());
 
  666                $this->form->getItemByPostVar(
'bo')->setValue($this->booking->getNumberOfBookings());   
 
  667                $this->form->getItemByPostVar(
'ap')->setValue(1);
 
  668                $this->form->getItemByPostVar(
'du')->setMinutes(15);
 
  669                $this->form->getItemByPostVar(
'st')->setDate(
 
  672                $this->tpl->setContent($this->form->getHTML());
 
  682                include_once 
'./Services/Form/classes/class.ilPropertyFormGUI.php';
 
  684                include_once(
'./Services/YUI/classes/class.ilYuiUtil.php');
 
  688                $this->form->setFormAction($this->ctrl->getFormAction($this));
 
  693                                $this->form->setTitle($this->lng->txt(
'cal_ch_add_sequence'));
 
  694                                $this->form->addCommandButton(
'saveSequence', $this->lng->txt(
'save'));
 
  695                                $this->form->addCommandButton(
'appointmentList', $this->lng->txt(
'cancel'));
 
  707                                $this->form->setTitle($this->lng->txt(
'cal_ch_multi_edit_sequence'));
 
  708                                $this->form->addCommandButton(
'updateMulti', $this->lng->txt(
'save'));
 
  709                                $this->form->addCommandButton(
'appointmentList', $this->lng->txt(
'cancel'));
 
  714                include_once 
'./Services/Calendar/classes/ConsultationHours/class.ilConsultationHourGroups.php';
 
  717                        $group = 
new ilSelectInputGUI($this->lng->txt(
'cal_ch_grp_selection'),
'grp');
 
  719                        $group->setRequired(
false);
 
  720                        $this->form->addItem($group);
 
  726                $ti->setMaxLength(128);
 
  727                $ti->setRequired(
true);
 
  728                $this->form->addItem($ti);
 
  730                if($a_mode != self::MODE_MULTI)
 
  733                        include_once 
'./Services/Form/classes/class.ilDateTimeInputGUI.php';
 
  735                        $dur->setShowTime(
true);
 
  736                        $dur->setMinuteStepSize(5);
 
  737                        $this->form->addItem($dur);
 
  741                        $du->setShowMinutes(
true);
 
  742                        $du->setShowHours(
true);
 
  743                        $this->form->addItem($du);
 
  746                        $nu = 
new ilNumberInputGUI($this->lng->txt(
'cal_ch_num_appointments'),
'ap');
 
  747                        $nu->setInfo($this->lng->txt(
'cal_ch_num_appointments_info'));
 
  749                        $nu->setMaxLength(2);
 
  750                        $nu->setRequired(
true);
 
  752                        $this->form->addItem($nu);
 
  755                        include_once(
'./Services/Calendar/classes/Form/class.ilRecurrenceInputGUI.php');
 
  757                        $rec->setEnabledSubForms(
 
  764                        $this->form->addItem($rec);
 
  770                $nu->setMaxLength(2);
 
  772                $nu->setRequired(
true);
 
  773                $this->form->addItem($nu);
 
  777                $dead->setInfo($this->lng->txt(
'cal_ch_deadline_info'));
 
  778                $dead->setShowMinutes(
false);
 
  779                $dead->setShowHours(
true);
 
  780                $dead->setShowDays(
true);
 
  781                $this->form->addItem($dead);
 
  786                $lo->setMaxLength(128);
 
  787                $this->form->addItem($lo);
 
  793                $this->form->addItem($de);
 
  796                $tgt = 
new ilTextInputGUI($this->lng->txt(
'cal_ch_target_object'),
'tgt');
 
  797                $tgt->setInfo($this->lng->txt(
'cal_ch_target_object_info'));
 
  799                $tgt->setMaxLength(128);
 
  800                $this->form->addItem($tgt);
 
  809                global $ilObjDataCache;
 
  813                if($this->form->checkInput())
 
  815                        $this->form->setValuesByPost();
 
  819                        $booking->setNumberOfBookings($this->form->getInput(
'bo'));
 
  821                        $deadline = $this->form->getInput(
'dead');
 
  822                        $deadline = $deadline[
'dd'] * 24 + $deadline[
'hh'];
 
  823                        $booking->setDeadlineHours($deadline);
 
  826                        include_once 
'./Services/Calendar/classes/ConsultationHours/class.ilConsultationHourGroups.php';
 
  829                                $booking->setBookingGroup((
int) $this->form->getInput(
'grp'));
 
  832                        $tgt = explode(
',',$this->form->getInput(
'tgt'));
 
  834                        foreach((array) $tgt as 
$ref_id)
 
  840                                $obj_id = $ilObjDataCache->lookupObjId(
$ref_id);
 
  842                                $valid_types = array(
'crs',
'grp');
 
  843                                if(!$obj_id or !in_array($type, $valid_types))
 
  846                                        $this->tpl->setContent($this->form->getHTML());
 
  850                                $obj_ids[] = $obj_id;
 
  852                        $booking->setTargetObjIds($obj_ids);
 
  858                        $this->ctrl->redirect($this,
'appointmentList');
 
  862                        $this->form->setValuesByPost();
 
  863                        $this->tpl->setContent($this->form->getHTML());
 
  874                include_once 
'./Services/Calendar/classes/class.ilDateList.php';
 
  876                $start = clone $this->form->getItemByPostVar(
'st')->getDate();
 
  877                for($i = 0; $i < $this->form->getItemByPostVar(
'ap')->getValue(); $i++)
 
  879                        $concurrent_dates->add(clone $start);
 
  881                        $start->increment(
ilDateTime::MINUTE,$this->form->getItemByPostVar(
'du')->getMinutes());
 
  882                        $start->increment(
ilDateTime::HOUR,$this->form->getItemByPostVar(
'du')->getHours());
 
  883                        #$start = new ilDateTime(,IL_CAL_UNIX); 
  886                include_once 
'./Services/Calendar/classes/class.ilCalendarUtil.php';
 
  890                include_once 
'./Services/Calendar/classes/class.ilCalendarCategoryAssignments.php';
 
  891                include_once 
'./Services/Calendar/classes/class.ilCalendarEntry.php';
 
  892                include_once 
'./Services/Calendar/classes/class.ilCalendarRecurrenceCalculator.php';
 
  893                include_once 
'./Services/Booking/classes/class.ilBookingPeriod.php';
 
  894                foreach($concurrent_dates as $dt)
 
  897                        $end->increment(
ilDateTime::MINUTE,$this->form->getItemByPostVar(
'du')->getMinutes());
 
  898                        $end->increment(
ilDateTime::HOUR,$this->form->getItemByPostVar(
'du')->getHours());
 
  902                                $this->form->getItemByPostVar(
'frequence')->getRecurrence()
 
  907                        $limit->increment(ilDAteTime::YEAR,1);
 
  909                        $date_list = $calc->calculateDateList($dt,$limit);
 
  911                        foreach($date_list as $app_start)
 
  913                                $app_end = clone $app_start;
 
  914                                $app_end->increment(
ilDateTime::MINUTE,$this->form->getItemByPostVar(
'du')->getMinutes());
 
  915                                $app_end->increment(
ilDateTime::HOUR,$this->form->getItemByPostVar(
'du')->getHours());
 
  919                                $entry->setContextId(
$booking->getId());
 
  920                                $entry->setTitle($this->form->getInput(
'ti'));
 
  921                                $entry->setSubtitle(
"#consultationhour#"); 
 
  922                                $entry->setDescription($this->form->getInput(
'de'));
 
  923                                $entry->setLocation($this->form->getInput(
'lo'));
 
  924                                $entry->setStart($app_start);
 
  925                                $entry->setEnd($app_end);
 
  931                                $cat_assign->addAssignment($def_cat->getCategoryID());
 
  944                $ilCtrl->setParameter($this, 
'user_id', 
'');
 
  945                $ilTabs->addTab(
'consultation_hours_'.
$ilUser->getId(), $this->lng->txt(
'cal_ch_ch'), $this->ctrl->getLinkTarget($this,
'appointmentList'));
 
  950                        $ilTabs->addTab(
'consultation_hours_'.
$user_id, $this->lng->txt(
'cal_ch_ch').
': '.$login, $this->ctrl->getLinkTarget($this,
'appointmentList'));                 
 
  952                $ilCtrl->setParameter($this, 
'user_id', 
'');
 
  954                $ilTabs->addTab(
'ch_settings', $this->lng->txt(
'settings'), $this->ctrl->getLinkTarget($this,
'settings'));
 
  956                $ilTabs->activateTab(
'consultation_hours_'.$this->
getUserId());
 
  969                $ilTabs->addSubTab(
'cal_ch_app_list',$this->lng->txt(
'cal_ch_app_list'),
$ilCtrl->getLinkTarget($this,
'appointmentList'));
 
  970                $ilTabs->addSubTab(
'cal_ch_app_grp',$this->lng->txt(
'cal_ch_app_grp'),
$ilCtrl->getLinkTarget($this,
'groupList'));
 
  971                $ilTabs->addSubTab(
'cal_ch_app_bookings',$this->lng->txt(
'cal_ch_app_bookings'),
$ilCtrl->getLinkTarget($this,
'bookingList'));
 
  995                $hidden->setValue(implode(
';', 
$_REQUEST[
'apps']));
 
  996                $this->form->addItem($hidden);
 
  998                include_once 
'Services/Calendar/classes/class.ilCalendarEntry.php';
 
 1000                $first = array_shift(
$_REQUEST[
'apps']);
 
 1003                $this->form->getItemByPostVar(
'ti')->setValue($entry->getTitle());
 
 1004                $this->form->getItemByPostVar(
'lo')->setValue($entry->getLocation());
 
 1005                $this->form->getItemByPostVar(
'de')->setValue($entry->getDescription());
 
 1007                include_once 
'Services/Booking/classes/class.ilBookingEntry.php';
 
 1010                $this->form->getItemByPostVar(
'bo')->setValue(
$booking->getNumberOfBookings());
 
 1013                foreach(
$booking->getTargetObjIds() as $obj_id)
 
 1016                        $ref_ids[] = end($refs);
 
 1018                $this->form->getItemByPostVar(
'tgt')->setValue(implode(
',',$ref_ids));
 
 1020                $deadline = 
$booking->getDeadlineHours();
 
 1021                $this->form->getItemByPostVar(
'dead')->setDays(floor($deadline/24));
 
 1022                $this->form->getItemByPostVar(
'dead')->setHours($deadline%24);
 
 1026                        $this->form->getItemByPostVar(
'grp')->setValue(
$booking->getBookingGroup());
 
 1029                $this->tpl->setContent($this->form->getHTML());
 
 1038                global $ilObjDataCache;
 
 1042                if($this->form->checkInput())
 
 1044                        $this->form->setValuesByPost();
 
 1045                        $apps = explode(
';', 
$_POST[
'apps']);
 
 1047                        include_once 
'Services/Booking/classes/class.ilBookingEntry.php';
 
 1048                        include_once 
'Services/Calendar/classes/class.ilCalendarEntry.php';
 
 1053                        $first = array_shift($first);
 
 1055                        #if($this->form->getInput('bo') < $entry->getNumberOfBookings()) 
 1065                        $booking->setNumberOfBookings($this->form->getInput(
'bo'));
 
 1067                        $deadline = $this->form->getInput(
'dead');
 
 1068                        $deadline = $deadline[
'dd']*24+$deadline[
'hh'];
 
 1069                        $booking->setDeadlineHours($deadline);
 
 1071                        $tgt = explode(
',',$this->form->getInput(
'tgt'));
 
 1073                        foreach((array) $tgt as 
$ref_id)
 
 1079                                $obj_id = $ilObjDataCache->lookupObjId(
$ref_id);
 
 1081                                $valid_types = array(
'crs',
'grp');
 
 1082                                if(!$obj_id or !in_array($type, $valid_types))
 
 1088                                $obj_ids[] = $obj_id;
 
 1090                        $booking->setTargetObjIds($obj_ids);
 
 1092                        include_once 
'./Services/Calendar/classes/ConsultationHours/class.ilConsultationHourGroups.php';
 
 1095                                $booking->setBookingGroup($this->form->getInput(
'grp'));
 
 1101                        $title = $this->form->getInput(
'ti');
 
 1102                        $location = $this->form->getInput(
'lo');
 
 1103                        $description = $this->form->getInput(
'de');
 
 1105                        foreach($apps as $item_id)
 
 1108                                $entry->setContextId(
$booking->getId());
 
 1109                                $entry->setTitle($title);
 
 1111                                $entry->setDescription($description);
 
 1118                        $this->ctrl->redirect($this,
'appointmentList');
 
 1120                $this->tpl->setContent($this->form->getHTML());
 
 1136                include_once(
'./Services/Utilities/classes/class.ilConfirmationGUI.php');
 
 1139                $this->ctrl->saveParameter($this,array(
'seed',
'app_id',
'dt'));
 
 1142                $confirm->setFormAction($this->ctrl->getFormAction($this));
 
 1143                $confirm->setHeaderText($this->lng->txt(
'cal_delete_app_sure'));
 
 1144                $confirm->setCancel($this->lng->txt(
'cancel'),
'cancel');
 
 1146                include_once 
'Services/Calendar/classes/class.ilCalendarEntry.php';
 
 1148                $bookings_available = array();
 
 1149                foreach((array) 
$_REQUEST[
'apps'] as $entry_id)
 
 1154                        include_once 
'./Services/Booking/classes/class.ilBookingEntry.php';
 
 1161                if($bookings_available)
 
 1163                        ilUtil::sendInfo($this->lng->txt(
'cal_ch_delete_app_booking_info').
'<br />'.implode(
'<br />',$bookings_available));
 
 1166                $confirm->setConfirm($this->lng->txt(
'delete'),
'delete');
 
 1167                $confirm->setCancel($this->lng->txt(
'cancel'),
'appointmentList');
 
 1169                $tpl->setContent($confirm->getHTML());
 
 1175        public function delete()
 
 1177                if(!isset(
$_POST[
'apps']))
 
 1183                include_once 
'Services/Calendar/classes/class.ilCalendarEntry.php';
 
 1184                include_once 
'Services/Calendar/classes/class.ilCalendarCategoryAssignments.php';
 
 1185                foreach(
$_POST[
'apps'] as $entry_id)
 
 1193                                        include_once 
'./Services/Calendar/classes/ConsultationHours/class.ilConsultationHourUtils.php';
 
 1198                        include_once 
'./Services/Calendar/classes/class.ilCalendarEntry.php';
 
 1208                $this->ctrl->redirect($this, 
'appointmentList');
 
 1218                $ilTabs->clearTargets();
 
 1222                include_once 
'Services/User/classes/class.ilPublicUserProfileGUI.php';
 
 1225                $tpl->setContent(
$ilCtrl->getHTML($profile));
 
 1238                        $url = $this->ctrl->getLinkTargetByClass(
'ilCalendarMonthGUI');
 
 1241                else if(isset(
$_GET[
'panel']))
 
 1243                        $url = $this->ctrl->getLinkTargetByClass(
'ilCalendarPresentationGUI');
 
 1248                        $url = $this->ctrl->getLinkTarget($this, 
'appointmentList');
 
 1258                global 
$tpl, $ilTabs, $ilHelp;
 
 1260                $ilHelp->setScreenId(
"consultation_hours_settings");
 
 1261                $ilTabs->activateTab(
'ch_settings');
 
 1264                $tpl->setContent($form->getHTML());
 
 1275                include_once 
'./Services/Form/classes/class.ilPropertyFormGUI.php';
 
 1278                $form->setFormAction($this->ctrl->getFormAction($this));
 
 1280                $mng = 
new ilTextInputGUI($this->lng->txt(
'cal_ch_manager'), 
'mng');
 
 1281                $mng->setInfo($this->lng->txt(
'cal_ch_manager_info'));
 
 1282                $form->addItem($mng);
 
 1286                $form->setTitle($this->lng->txt(
'settings'));
 
 1287                $form->addCommandButton(
'updateSettings', $this->lng->txt(
'save'));
 
 1300                if($form->checkInput())
 
 1302                        $mng = $form->getInput(
'mng');
 
 1306                                $ilCtrl->redirect($this, 
'settings');
 
 1310                                $ilTabs->activateTab(
'ch_settings');
 
 1313                                $field = $form->getItemByPostVar(
'mng');
 
 1314                                $field->setValue($mng);
 
 1315                                $tpl->setContent($form->getHTML());
 
const IL_CAL_TRANSLATION_SYSTEM
const IL_CAL_FREQ_MONTHLY
static lookupBookingsOfUser($a_app_ids, $a_usr_id, ilDateTime $start=null)
Lookup bookings if user.
static getInstanceByCalendarEntryId($a_id)
Get instance by calendar entry.
static removeObsoleteEntries()
Remove unused booking entries.
static lookupBookingsForAppointment($a_app_id)
Lookup booked users for appointment @global type $ilDB.
Booking period Used for calculation of recurring events.
static _deleteByAppointmentId($a_app_id)
Delete appointment assignment.
Model for a calendar entry.
Calculates an ilDateList for a given calendar entry and recurrence rule.
static initDefaultCalendarByType($a_type_id, $a_usr_id, $a_title, $a_create=false)
Init the default calendar for given type and user.
Confirmation screen class.
static getAppointmentIdsByGroup($a_user_id, $a_ch_group_id, ilDateTime $start=null)
Get appointment ids by consultation hour group.
static getManager($a_as_name=false)
Get consultation hour manager for current user.
static getManagedUsers()
Get all managed consultation hours users for current users.
static setManager($a_user_name)
Set consultation hour manager for current user.
static getAppointmentIds($a_user_id, $a_context_id=NULL, $a_start=NULL, $a_type=NULL, $a_check_owner=true)
Get all appointment ids.
static getGroupsOfUser($a_user_id)
Get a all groups of an user.
static getCountGroupsOfUser($a_user_id)
Get number of consultation hour groups @global type $ilDB.
static getGroupSelectOptions($a_user_id)
Get group selection options.
static cancelBooking($a_usr_id, $a_app_id, $a_send_notification=true)
Cancel a booking.
static bookAppointment($a_usr_id, $a_app_id)
Book an appointment.
Consultation hours editor.
editGroup(ilPropertyFormGUI $form=null)
Edit group @global type $ilCtrl.
deleteGroup()
Delete groups.
confirmDelete()
confirm delete for multiple entries
updateGroup()
Update group @global type $ilCtrl @global type $tpl @global type $ilTabs.
rejectBooking($a_send_notification=true)
appointmentList()
Show settings of consultation hours.
groupList()
Show consultation hour group @global type $ilToolbar.
edit()
Edit multiple sequence items.
initFormSequence($a_mode)
Init form.
confirmRejectBooking($a_send_notification=true)
Show delete booking confirmation.
addGroup(ilPropertyFormGUI $form=null)
Show add group form @global type $ilToolbar @global type $ilTabs.
showProfile()
show public profile of given user
sendInfoAboutUnassignedUsers($unassigned)
Send info message about unassigned users.
createSequence()
Create new sequence.
updateSettings()
save settings
deleteBooking()
Delete booking.
initSettingsForm()
build settings form
searchUsersForAppointments()
start searching for users
assignUsersToAppointments(array $users)
Assign users to multiple appointments.
bookingList()
Show list of bookings.
assignUsersToGroup(array $usr_ids)
updateMulti()
Update multiple sequence items.
settings()
display settings gui
confirmDeleteBooking()
Show delete booking confirmation.
assignUsersToAppointment(array $users, $a_app=0, $a_redirect=true)
Assign users to an appointment.
initGroupForm($a_group_id=0)
Init new/update group form.
saveSequence()
Save new sequence.
setSubTabs()
Set sub tabs @global type $ilTabs @global type $ilCtrl.
saveGroup()
Save new group.
executeCommand()
Execute command.
__construct()
Constructor.
createAppointments(ilBookingEntry $booking)
Create calendar appointments.
confirmDeleteGroup()
Confirm delete @global type $ilCtrl @global type $ilTabs.
getProfileBackUrl()
Build context-sensitive profile back url.
Consultation hours administration.
static formatDate(ilDateTime $date)
Format a date @access public.
@classDescription Date and time handling
_lookupFullname($a_user_id)
Lookup Full Name.
static _getAllReferences($a_id)
get all reference ids of object
static _lookupType($a_id, $a_reference=false)
lookup object type
GUI class for public user profile presentation.
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)
Default behaviour is:
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
static initDomEvent()
Init YUI DomEvent.
const IL_CAL_FREQ_DAILY
Model of calendar entry recurrcences.
if($_REQUEST['ilias_path']) define('ILIAS_HTTP_PATH' $_REQUEST['ilias_path']
if(!is_array($argv)) $options