';
- echo '
'.get_lang('Category').':
';
+ echo '
'.get_lang('ResourceType').':
';
echo '
';
+ echo '';
$itemlist = Rsys :: get_cat_r_items($categori[0]);
$form = new FormValidator('reservation', 'post', 'm_reservation.php?action=edit&id='.$Reservation_id);
- $choices[] = $form->createElement('radio', 'forever', '', get_lang('NoPeriod'), ($reservation[0][7] == '0000-00-00 00:00:00' && $reservation[0][8] == '0000-00-00 00:00:00' ? 0 : 1), array ('onclick' => 'javascript:timewindow_hide(\'forever_timewindow\')'));
- $choices[] = $form->createElement('radio', 'forever', '', get_lang('FixedPeriod'), ($reservation[0][7] == '0000-00-00 00:00:00' || $reservation[0][8] == '0000-00-00 00:00:00' ? 1 : 0), array ('onclick' => 'javascript:timewindow_show(\'forever_timewindow\')'));
+ $choices[] = $form->createElement('radio', 'forever', '', get_lang('NoPeriod'), '0', array ('onclick' => 'javascript:timewindow_hide(\'forever_timewindow\')'));
+ $choices[] = $form->createElement('radio', 'forever', '', get_lang('FixedPeriod'), '1', array ('onclick' => 'javascript:timewindow_show(\'forever_timewindow\')'));
$form->addElement('select', 'item_id', get_lang('Item'), $itemlist);
$form->add_timewindow('start', 'end', get_lang('StartDate'), get_lang('EndDate'));
@@ -423,15 +465,30 @@ switch ($_GET['action']) {
$form->addElement('hidden', 'id', $Reservation_id);
$form->addElement('hidden', 'timepicker2');
$form->addElement('hidden', 'period', ($reservation[0][7] == '0000-00-00 00:00:00' && $reservation[0][8] == '0000-00-00 00:00:00' ? 0 : 1));
-
+
if ($categori[0] == $tijdelijke_cat)
$defaultvalues['item_id'] = $reservation[0][2];
+
$defaultvalues['auto_accept'] = $reservation[0][3];
$defaultvalues['maxuser'] = $reservation[0][4];
$defaultvalues['start'] = $reservation[0][5];
$defaultvalues['end'] = $reservation[0][6];
- $defaultvalues['subscribe_from'] = $reservation[0][7];
- $defaultvalues['subscribe_until'] = $reservation[0][8];
+
+ $defaultvalues['forever']=($reservation[0][7] == '0000-00-00 00:00:00' && $reservation[0][8] == '0000-00-00 00:00:00' ? 0 : 1);
+
+ $my_start_date = Rsys :: mysql_datetime_to_timestamp($reservation[0][5]);
+
+ if ($defaultvalues['forever']==0) {
+ //here we set the default dates
+ $defaultvalues['subscribe_from'] = $my_start_date - 60*60 ;
+ $defaultvalues['subscribe_until'] = $my_start_date - 60 ;
+ }
+ else {
+ $defaultvalues['subscribe_from'] = $reservation[0][7];
+ $defaultvalues['subscribe_until'] = $reservation[0][8];
+ }
+
+
$defaultvalues['notes'] = $reservation[0][10];
$defaultvalues['timepicker'] = $reservation[0][11];
$defaultvalues['timepicker2'] = $reservation[0][11];
@@ -448,26 +505,26 @@ switch ($_GET['action']) {
$values = $form->exportValues();
//print_r($values);
$auto_accept = true;
- if ($values['forever'] == $values['period']) {
+ if (($values['forever'] == $values['period']) || $values['forever']=='0') {
$values['subscribe_from'] = 0;
$values['subscribe_until'] = 0;
}
$msg_number = Rsys :: edit_reservation($values['id'], $_POST['item_id'], $values['auto_accept'], $values['maxuser'], $values['start'], $values['end'], $values['subscribe_from'], $values['subscribe_until'], $values['notes'], $values['timepicker2']);
switch ($msg_number) {
case 0 :
- Display :: display_normal_message(Rsys :: get_return_msg(get_lang('ReservationPeriodEdited'), "m_reservation.php", $tool_name),false);
+ Display :: display_normal_message(Rsys :: get_return_msg(get_lang('BookingPeriodEdited'), "m_reservation.php", $tool_name),false);
break;
case 1 :
- Display :: display_normal_message(str_replace('#END#', "
".$GLOBALS['end_date']."",str_replace('#START#', "
".$GLOBALS['start_date']."",get_lang('ReservationPeriodDateOverlap'))),false);
+ Display :: display_normal_message(str_replace('#END#', "
".$GLOBALS['end_date']."",str_replace('#START#', "
".$GLOBALS['start_date']."",get_lang('BookingPeriodDateOverlap'))),false);
break;
case 2 :
- Display :: display_normal_message(get_lang('ReservationPeriodSubscribeUntilAfterStart'),false);
+ Display :: display_normal_message(get_lang('BookingPeriodSubscribeUntilAfterStart'),false);
break;
case 3:
Display :: display_normal_message(get_lang('ReservationMaxUsersOverrun'),false);
break;
case 4:
- Display :: display_normal_message(get_lang('ReservationPeriodTimepickerLimitation'),false);
+ Display :: display_normal_message(get_lang('BookingPeriodTimepickerLimitation'),false);
break;
default :
break;
@@ -480,13 +537,18 @@ switch ($_GET['action']) {
case 'delete' :
Rsys :: delete_reservation($_GET["id"]);
ob_start();
- Display :: display_normal_message(Rsys :: get_return_msg(get_lang('ReservationPeriodDeleted'), "m_reservation.php", $tool_name),false);
+ Display :: display_normal_message(Rsys :: get_return_msg(get_lang('BookingPeriodDeleted'), "m_reservation.php", $tool_name),false);
$msg = ob_get_contents();
ob_end_clean();
default :
$NoSearchResults = get_lang('NoReservations');
- $interbreadcrumb[] = array ("url" => "mysubscriptions.php", "name" => get_lang('Booking'));
+ if ($_GET['view']=='calendar') {
+ $interbreadcrumb[] = array ("url" => "reservation.php", "name" => get_lang('Booking'));
+ }
+ else {
+ $interbreadcrumb[] = array ("url" => "mysubscriptions.php", "name" => get_lang('Booking'));
+ }
$interbreadcrumb[] = array ("url" => "m_reservation.php", "name" => get_lang('ManageBookingPeriods'));
Display :: display_header('');
@@ -524,7 +586,7 @@ switch ($_GET['action']) {
$table->set_header(7, get_lang('Notes'), false);
$table->set_header(8, '', false, array ('style' => 'width:65px;'));
$table->set_column_filter(8, 'modify_filter');
- $table->set_form_actions(array ('delete_reservations' => get_lang('DeleteSelectedReservationsPeriod')), 'reservations');
+ $table->set_form_actions(array ('delete_reservations' => get_lang('DeleteSelectedBookingPeriod')), 'reservations');
$table->display();
}
diff --git a/main/reservation/mysubscriptions.php b/main/reservation/mysubscriptions.php
index f0e6c9c8d0..a408c188c5 100644
--- a/main/reservation/mysubscriptions.php
+++ b/main/reservation/mysubscriptions.php
@@ -64,7 +64,7 @@ switch ($_GET['action']) {
api_display_tool_title($tool_name);
echo '
';
-/// echo '
'.get_lang('AddNewReservationPeriod').'';
+/// echo '
'.get_lang('AddNewBookingPeriod').'';
//echo '
'.get_lang('OverviewReservedPeriods').'';
echo '
';
diff --git a/main/reservation/rcalendar.php b/main/reservation/rcalendar.php
index 4444842276..2b7dd5077c 100644
--- a/main/reservation/rcalendar.php
+++ b/main/reservation/rcalendar.php
@@ -3,7 +3,7 @@
==============================================================================
Dokeos - elearning and course management software
- Copyright (c) 2004-2008 Dokeos S.A.
+ Copyright (c) 2004-2008 Dokeos SPRL
Copyright (c) Sebastien Jacobs (www.spiritual-coder.com)
Copyright (c) Kristof Van Steenkiste
@@ -89,23 +89,34 @@ class rCalendar {
* Deze methode retourneert een balkje van een gegeven $width met een bepaalde kleur ($color) met evt. een titel
*
*/
- function get_bar($width, $color, $link = '', $title = '', $id = null) {
- // 1) width herberekenen om afrondingsfouten te beperken
- if($GLOBALS['weekday_pointer']!=$GLOBALS['last_weekday_pointer']){
- $GLOBALS['daytotal']=0;
- $GLOBALS['lasttotal']=0;
- $GLOBALS['last_weekday_pointer']=$GLOBALS['weekday_pointer'];
- }$GLOBALS['daytotal']+=$width;
- $GLOBALS['rounded_total']=round($GLOBALS['daytotal']);
- $width=$GLOBALS['rounded_total']-$GLOBALS['lasttotal'];
- $GLOBALS['lasttotal']=$GLOBALS['rounded_total'];
- // 2) kleur aanpassen indien item op blackout staat
- if($GLOBALS['bblackout']&&$color!='red'&&$color!='orange'&&$color!='grey'){
- $color='black';
- $link='';
- }
- // 3) html code returnen voor gekleurde bar
- return '

';
+ function get_bar($width, $color, $link = '', $title = '', $itemid=null, $cat=null) {
+ // 1) width herberekenen om afrondingsfouten te beperken
+ if($GLOBALS['weekday_pointer']!=$GLOBALS['last_weekday_pointer']) {
+ $GLOBALS['daytotal']=0;
+ $GLOBALS['lasttotal']=0;
+ $GLOBALS['last_weekday_pointer']=$GLOBALS['weekday_pointer'];
+ }
+
+ $GLOBALS['daytotal']+=$width;
+ $GLOBALS['rounded_total']=round($GLOBALS['daytotal']);
+ $width=$GLOBALS['rounded_total']-$GLOBALS['lasttotal'];
+ $GLOBALS['lasttotal']=$GLOBALS['rounded_total'];
+ // 2) kleur aanpassen indien item op blackout staat
+ if($GLOBALS['bblackout'] && $color!='red' && $color!='orange' && $color!='grey') {
+ $color='black';
+ $link='';
+ }
+ $img='';
+ // 3) html code returnen voor gekleurde bar
+ if (!empty($itemid) && !empty($cat)&& !empty($link)) {
+ $link.='&cat='.$cat.'&item='.$itemid;
+ $img = '

';
+ }
+ else {
+ $img = '

';
+ }
+ return $img;
+
}
/*
@@ -114,7 +125,7 @@ class rCalendar {
* - Deze methode ontvangt een item-id & 1 dag als parameter (dag+maand+jaar), de omliggende week (met reservaties etc.) wordt dan opgehaald
* - hoe groter de $day_scale, hoe kleiner de tabel (86400/$day_scale=breedte van 1 dag)
*/
- function get_week_view($day, $month, $year, $itemid, $day_scale = 180) {
+ function get_week_view($day, $month, $year, $itemid, $day_scale = 180,$cat) {
// 1) Item is blackout? >> True of False ... wordt gebruikt in get_bar methode om kleur indien nodig om te zetten
$GLOBALS['bblackout']=Rsys::is_blackout($itemid);
@@ -205,56 +216,60 @@ class rCalendar {
// Subscribe_from is not yet reached
$color = "orange";
$link = null;
- } else {
+ }
+ else {
// Subscription is not allowed
$color = "red";
$link = null;
}
- // ..a2) stel titel in (dat je ziet als je over het balkje zweeft met je muis)
- $title = date('H:i (d/m/Y)', $start).' » '.date('H:i (d/m/Y)', $end);
+ // ..a2) stel titel in (dat je ziet als je over het balkje zweeft met je muis)
+ $title = date('H:i (d/m/Y)', $start).' » '.date('H:i (d/m/Y)', $end);
- // ..a3) controleer of het reservatie-periode-blok de huidige dag overschrijdt
+ // ..a3) controleer of het reservatie-periode-blok de huidige dag overschrijdt
if ($end > $day_start_dates[$weekday_pointer] + $one_day) {
// indien ja, cree�r dan balkjes voor elke volgende dag
$trimmed_chunk_size = $chunk_size - ($end - ($day_start_dates[$weekday_pointer] + $one_day));
- $days[$weekday_pointer] .= $this->get_bar($trimmed_chunk_size / $day_scale, $color, $link, $title);
+ $days[$weekday_pointer] .= $this->get_bar($trimmed_chunk_size / $day_scale, $color, $link, $title, $itemid, $cat);
$new_day = true;
while ($new_day && $weekday_pointer < 7) {
$weekday_pointer ++;
- $GLOBALS['weekday_pointer']++;
+ $GLOBALS['weekday_pointer']++;
$start = $days[$weekday_pointer];
$chunk_size = $end - $start;
if ($end > $day_start_dates[$weekday_pointer] + $one_day) { // If still larger than one day, trim chunk and continue
- $days[$weekday_pointer] .= $this->get_bar($one_day / $day_scale, $color, $link, $title);
+ $days[$weekday_pointer] .= $this->get_bar($one_day / $day_scale, $color, $link, $title, $itemid, $cat);
} else {
$trimmed_chunk_size = $end - $day_start_dates[$weekday_pointer];
- $days[$weekday_pointer] .= $this->get_bar($trimmed_chunk_size / $day_scale, $color, $link, $title);
+ $days[$weekday_pointer] .= $this->get_bar($trimmed_chunk_size / $day_scale, $color, $link, $title, $itemid, $cat);
$new_day = false;
}
}
- } else // indien niet, voeg dan gewoon het balkje toe aan de huidige dag
- $days[$weekday_pointer] .= $this->get_bar($chunk_size / $day_scale, $color, $link, $title);
+ }
+ else // indien niet, voeg dan gewoon het balkje toe aan de huidige dag
+ $days[$weekday_pointer] .= $this->get_bar($chunk_size / $day_scale, $color, $link, $title, $itemid, $cat);
// 6.4.B) Indien het WEL om een timepicker gaat... (max_users telt hier niet)
- }
+ }
else
{
$timepicker_min *= 60;
$timepicker_max *= 60;
$minute_interval = 30;
- $minute_interval *= 60;
- $color = "blue";
- $pickedcolor = "red";
- $tosmallchunkcolor = "yellow";
- $start_pointer = $start;
- $link = "subscribe.php?rid=".$r['id'].'×tart='; // + (start)tijd waarop geklikt werd = volwaardige link
- if(count($s)==0){
+ $minute_interval *= 60;
+ $color = "blue";
+ $pickedcolor = "red";
+ $tosmallchunkcolor = "yellow";
+ $start_pointer = $start;
+
+ $link = "subscribe.php?rid=".$r['id'].'×tart='; // + (start)tijd waarop geklikt werd = volwaardige link
+
+ if(count($s)==0) {
if ($start > time())
{
//controle of dat de time tussen $r['subscribe_from'] en $r['subscribe_until'] ligt
if((Rsys :: mysql_datetime_to_timestamp($r['subscribe_from']) <= time() && Rsys :: mysql_datetime_to_timestamp($r['subscribe_until']) > time()) || ($r['subscribe_from'] == '0000-00-00 00:00:00' && $r['subscribe_until'] == '0000-00-00 00:00:00')) {
- $days[$weekday_pointer] .= $this->get_bar(($end - $start) / $day_scale, $color, $link.$start_pointer, date('H:i', $start).' » '.date('H:i', $end));
+ $days[$weekday_pointer] .= $this->get_bar(($end - $start) / $day_scale, $color, $link.$start_pointer, date('H:i', $start).' » '.date('H:i', $end), $itemid, $cat);
}
else
{
@@ -271,7 +286,7 @@ class rCalendar {
if((Rsys :: mysql_datetime_to_timestamp($r['subscribe_from']) <= time() && Rsys :: mysql_datetime_to_timestamp($r['subscribe_until']) > time()) || ($r['subscribe_from'] == '0000-00-00 00:00:00' && $r['subscribe_until'] == '0000-00-00 00:00:00')) {
if (($end - time()) >= $timepicker_min)
{
- $days[$weekday_pointer] .= $this->get_bar(($end - time()) / $day_scale, $color, $link.$start_pointer, date('H:i', time()).' » '.date('H:i', $end));
+ $days[$weekday_pointer] .= $this->get_bar(($end - time()) / $day_scale, $color, $link.$start_pointer, date('H:i', time()).' » '.date('H:i', $end), $itemid, $cat);
}
else
{
@@ -292,38 +307,30 @@ class rCalendar {
}
else
{
- $i = 0;
-
- foreach ($s as $key => $sub)
- {
+ $i = 0;
+ foreach ($s as $key => $sub) {
$start = Rsys :: mysql_datetime_to_timestamp($sub['start_at']);
$einde = Rsys :: mysql_datetime_to_timestamp($sub['end_at']);
- if (Rsys :: mysql_datetime_to_timestamp($sub['start_at']) - $start_pointer <= 0)
- {
+ if (Rsys :: mysql_datetime_to_timestamp($sub['start_at']) - $start_pointer <= 0) {
//start onmiddelijk met een rood stuk
$start_tijd = date('H:i',$start_pointer);
$eind_tijd = date('H:i',$einde);
$days[$weekday_pointer] .= $this->get_bar(($einde - $start_pointer) / $day_scale, $pickedcolor, null, $start_tijd.' » '.$eind_tijd);
}
- else
- {
-
+ else {
//start met een blauw of oranje stuk
//kijken of dat de start_tijd al buiten de huidige tijd ligt ->
- if ($start_pointer > time())
- {
+ if ($start_pointer > time()) {
$start_tijd = date('H:i',$start_pointer);
$eind_tijd = date('H:i',$start);
- if((Rsys :: mysql_datetime_to_timestamp($r['subscribe_from']) <= time() && Rsys :: mysql_datetime_to_timestamp($r['subscribe_until']) > time()) || ($r['subscribe_from'] == '0000-00-00 00:00:00' && $r['subscribe_until'] == '0000-00-00 00:00:00')) {
+ if((Rsys :: mysql_datetime_to_timestamp($r['subscribe_from']) <= time() && Rsys :: mysql_datetime_to_timestamp($r['subscribe_until']) > time()) || ($r['subscribe_from'] == '0000-00-00 00:00:00' && $r['subscribe_until'] == '0000-00-00 00:00:00')) {
//niet buiten tijd!
//blauw stuk maken indien groter dan timepicker_min anders geel
- if (($start - $start_pointer) >= $timepicker_min)
- {
- $days[$weekday_pointer] .= $this->get_bar(($start - $start_pointer) / $day_scale, $color, $link.$start_pointer, $start_tijd.' » '.$eind_tijd);
+ if (($start - $start_pointer) >= $timepicker_min) {
+ $days[$weekday_pointer] .= $this->get_bar(($start - $start_pointer) / $day_scale, $color, $link.$start_pointer, $start_tijd.' » '.$eind_tijd, $itemid, $cat);
}
- else
- {
+ else {
$days[$weekday_pointer] .= $this->get_bar(($start - $start_pointer) / $day_scale, $tosmallchunkcolor, null, $start_tijd.' » '.$eind_tijd);
}
}
@@ -350,16 +357,16 @@ class rCalendar {
//blauw stuk maken indien groter dan timepicker_min anders geel
if (($start - time()) >= $timepicker_min)
{
- $days[$weekday_pointer] .= $this->get_bar(($start - time()) / $day_scale, $color, $link.time(), date('H:i', time()).' » '.date('H:i', $start));
+ $days[$weekday_pointer] .= $this->get_bar(($start - time()) / $day_scale, $color, $link.time(), date('H:i', time()).' » '.date('H:i', $start), $itemid, $cat);
}
else
{
- $days[$weekday_pointer] .= $this->get_bar(($start - time()) / $day_scale, $tosmallchunkcolor, $null, date('H:i', time()).' » '.date('H:i', $start));
+ $days[$weekday_pointer] .= $this->get_bar(($start - time()) / $day_scale, $tosmallchunkcolor, null, date('H:i', time()).' » '.date('H:i', $start), $itemid, $cat);
}
}
else
{
- $days[$weekday_pointer] .= $this->get_bar(($start - time()) / $day_scale, 'orange', $null, date('H:i', time()).' » '.date('H:i', $start));
+ $days[$weekday_pointer] .= $this->get_bar(($start - time()) / $day_scale, 'orange', null, date('H:i', time()).' » '.date('H:i', $start));
}
}
@@ -394,7 +401,7 @@ class rCalendar {
if (($end - time()) >= $timepicker_min)
{
//blauwe stuk
- $days[$weekday_pointer] .= $this->get_bar(($end - time()) / $day_scale, $color, $link.time(), date('H:i', time()).' » '.date('H:i', $end));
+ $days[$weekday_pointer] .= $this->get_bar(($end - time()) / $day_scale, $color, $link.time(), date('H:i', time()).' » '.date('H:i', $end), $itemid, $cat);
}
else
{
@@ -409,28 +416,25 @@ class rCalendar {
}
else
{
- if((Rsys :: mysql_datetime_to_timestamp($r['subscribe_from']) <= time() && Rsys :: mysql_datetime_to_timestamp($r['subscribe_until']) > time()) || ($r['subscribe_from'] == '0000-00-00 00:00:00' && $r['subscribe_until'] == '0000-00-00 00:00:00')) {
+ if((Rsys :: mysql_datetime_to_timestamp($r['subscribe_from']) <= time() && Rsys :: mysql_datetime_to_timestamp($r['subscribe_until']) > time()) || ($r['subscribe_from'] == '0000-00-00 00:00:00' && $r['subscribe_until'] == '0000-00-00 00:00:00')) {
//blauw stuk maken indien groter dan timepicker_min anders geel
- if (($end - $start_pointer) >= $timepicker_min)
- {
+ if (($end - $start_pointer) >= $timepicker_min) {
//blauwe stuk
- $days[$weekday_pointer] .= $this->get_bar(($end - $start_pointer) / $day_scale, $color, $link.$start_pointer, date('H:i', $start_pointer).' » '.date('H:i', $end));
+ $days[$weekday_pointer] .= $this->get_bar(($end - $start_pointer) / $day_scale, $color, $link.$start_pointer, date('H:i', $start_pointer).' » '.date('H:i', $end), $itemid, $cat);
}
- else
- {
- //gele stuk
- $days[$weekday_pointer] .= $this->get_bar(($end - $start_pointer) / $day_scale, $tosmallchunkcolor, null, date('H:i', $start_pointer).' » '.date('H:i', $end));
- }
- }
- else
- {
- $days[$weekday_pointer] .= $this->get_bar(($end - $start_pointer) / $day_scale, 'orange', null, date('H:i', $start_pointer).' » '.date('H:i', $end));
- }
+ else {
+ //gele stuk
+ $days[$weekday_pointer] .= $this->get_bar(($end - $start_pointer) / $day_scale, $tosmallchunkcolor, null, date('H:i', $start_pointer).' » '.date('H:i', $end));
}
}
+ else {
+ $days[$weekday_pointer] .= $this->get_bar(($end - $start_pointer) / $day_scale, 'orange', null, date('H:i', $start_pointer).' » '.date('H:i', $end));
+ }
}
- }
- }
+ }
+ }
+ }
+ }
// 6.5) Zet de $last_end pointer op de eindtijd van de huidige reservatie periode
diff --git a/main/reservation/reservation.php b/main/reservation/reservation.php
index 2be5310fbe..c42a06c9ec 100644
--- a/main/reservation/reservation.php
+++ b/main/reservation/reservation.php
@@ -54,23 +54,28 @@ if (api_is_platform_admin())
echo '
';
-
+function getBlock($color) {
+ return '

';
+}
$gogogo=false;
// Get resolution of user
-if((empty($_SESSION['swidth'])||empty($_SESSION['sheight']))&&(empty($_GET['swidth'])||empty($_GET['sheight']))){
+if((empty($_SESSION['swidth'])||empty($_SESSION['sheight']))&&(empty($_GET['swidth'])||empty($_GET['sheight']))) {
?>