ILIAS  release_5-3 Revision v5.3.23-19-g915713cf615
class.ilConsultationHourBookingTableGUI.php
Go to the documentation of this file.
1 <?php
2 
3 /* Copyright (c) 1998-2009 ILIAS open source, Extended GPL, see docs/LICENSE */
4 
5 include_once './Services/Calendar/classes/ConsultationHours/class.ilConsultationHourGroup.php';
6 include_once './Services/Table/classes/class.ilTable2GUI.php';
7 
14 {
15  private $user_id = 0;
16 
17  private $today = null;
18 
25  public function __construct($a_parent_obj, $a_parent_cmd, $a_user_id)
26  {
27  $this->user_id = $a_user_id;
28  $this->setId('chboo_' . $this->user_id);
29  parent::__construct($a_parent_obj, $a_parent_cmd);
30 
31  $this->initTable();
32 
33 
34  $this->today = new ilDateTime(time(), IL_CAL_UNIX);
35  }
36 
40  protected function initTable()
41  {
42  $this->setRowTemplate('tpl.ch_booking_row.html', 'Services/Calendar');
43 
44  $this->setTitle($GLOBALS['lng']->txt('cal_ch_bookings_tbl'));
45  $this->setFormAction($GLOBALS['ilCtrl']->getFormAction($this->getParentObject(), $this->getParentCmd()));
46 
47  $this->addColumn('', '', '1px');
48  $this->addColumn($GLOBALS['lng']->txt('cal_start'), 'start');
49  $this->addColumn($GLOBALS['lng']->txt('name'), 'name');
50  $this->addColumn($GLOBALS['lng']->txt('cal_ch_booking_message_tbl'), 'comment');
51  $this->addColumn($GLOBALS['lng']->txt('title'), 'title');
52  $this->addColumn($GLOBALS['lng']->txt('actions'), '');
53 
54  $this->enable('sort');
55  $this->enable('header');
56  $this->enable('num_info');
57 
58  $this->setDefaultOrderField('start');
59  $this->setSelectAllCheckbox('bookuser');
60  $this->setShowRowsSelector(true);
61  $this->addMultiCommand('confirmRejectBooking', $this->lng->txt('cal_ch_reject_booking'));
62  $this->addMultiCommand('confirmDeleteBooking', $this->lng->txt('cal_ch_delete_booking'));
63  }
64 
69  public function fillRow($row)
70  {
71  global $ilCtrl;
72 
73  $this->tpl->setVariable('START', $row['start_str']);
74  $this->tpl->setVariable('NAME', $row['name']);
75  $this->tpl->setVariable('COMMENT', $row['comment']);
76  $this->tpl->setVariable('TITLE', $row['title']);
77  $this->tpl->setVariable('VAL_ID', $row['id']);
78 
79  include_once './Services/UIComponent/AdvancedSelectionList/classes/class.ilAdvancedSelectionListGUI.php';
81  $list->setId('act_chboo_' . $row['id']);
82  $list->setListTitle($this->lng->txt('actions'));
83 
84  $ilCtrl->setParameter($this->getParentObject(), 'bookuser', $row['id']);
85 
86  $start = new ilDateTime($row['start'], IL_CAL_UNIX);
87  if (ilDateTime::_after($start, $this->today, IL_CAL_DAY)) {
88  $list->addItem(
89  $this->lng->txt('cal_ch_reject_booking'),
90  '',
91  $ilCtrl->getLinkTarget($this->getParentObject(), 'confirmRejectBooking')
92  );
93  }
94  $list->addItem(
95  $this->lng->txt('cal_ch_delete_booking'),
96  '',
97  $ilCtrl->getLinkTarget($this->getParentObject(), 'confirmDeleteBooking')
98  );
99  $this->tpl->setVariable('ACTIONS', $list->getHTML());
100  }
101 
102 
107  public function parse(array $appointments)
108  {
109  global $ilCtrl;
110 
111  $rows = array();
112  $counter = 0;
113  foreach ($appointments as $app) {
114  include_once './Services/Calendar/classes/class.ilCalendarEntry.php';
115  $cal_entry = new ilCalendarEntry($app);
116 
117  include_once './Services/Booking/classes/class.ilBookingEntry.php';
119  include_once './Services/User/classes/class.ilUserUtil.php';
121  $user_id,
122  true,
123  true,
124  $ilCtrl->getLinkTarget($this->getParentObject(), $this->getParentCmd()),
125  true,
126  true
127  );
128 
130  if (strlen(trim($message))) {
131  $rows[$counter]['comment'] = ('"' . $message . '"');
132  }
133  $rows[$counter]['title'] = $cal_entry->getTitle();
134  $rows[$counter]['start'] = $cal_entry->getStart()->get(IL_CAL_UNIX);
135  $rows[$counter]['start_str'] = ilDatePresentation::formatDate($cal_entry->getStart());
136  $rows[$counter]['id'] = $app . '_' . $user_id;
137  ++$counter;
138  }
139  }
140  $this->setData($rows);
141  }
142 }
Model for a calendar entry.
if(isset($_REQUEST['delete'])) $list
Definition: registry.php:41
setDefaultOrderField($a_defaultorderfield)
Set Default order field.
static _after(ilDateTime $start, ilDateTime $end, $a_compare_field='', $a_tz='')
compare two dates and check start is after end This method does not consider tz offsets.
static formatDate(ilDateTime $date, $a_skip_day=false, $a_include_wd=false)
Format a date public.
$GLOBALS['loaded']
Global hash that tracks already loaded includes.
const IL_CAL_UNIX
getParentCmd()
Get parent command.
static lookupBookingMessage($a_entry_id, $a_usr_id)
getParentObject()
Get parent object.
setId($a_val)
Set id.
global $ilCtrl
Definition: ilias.php:18
setTitle($a_title, $a_icon=0, $a_icon_alt=0)
Set title and title icon.
$counter
const IL_CAL_DAY
catch(Exception $e) $message
static lookupBookingsForAppointment($a_app_id)
Lookup booked users for appointment type $ilDB.
Class ilTable2GUI.
addMultiCommand($a_cmd, $a_text)
Add Command button.
enable($a_module_name)
enables particular modules of table
Date and time handling
getFormAction()
Get Form action parameter.
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:
__construct($a_parent_obj, $a_parent_cmd, $a_user_id)
Constructor.
setRowTemplate($a_template, $a_template_dir="")
Set row template.
Create styles array
The data for the language used.
$rows
Definition: xhr_table.php:10
User interface class for advanced drop-down selection lists.
setFormAction($a_form_action, $a_multipart=false)
Set Form action parameter.
addColumn( $a_text, $a_sort_field="", $a_width="", $a_is_checkbox_action_column=false, $a_class="", $a_tooltip="", $a_tooltip_with_html=false)
Add a column to the header.
setShowRowsSelector($a_value)
Toggle rows-per-page selector.
Add data(end) time
Method that wraps PHPs time in order to allow simulations with the workflow.
setSelectAllCheckbox($a_select_all_checkbox)
Set the name of the checkbox that should be toggled with a select all button.