[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Phpgroupware-cvs] CVS: calendar/inc class.uicalendar.inc.php,1.66.2.55
From: |
Ralf Becker <address@hidden> |
Subject: |
[Phpgroupware-cvs] CVS: calendar/inc class.uicalendar.inc.php,1.66.2.55.2.12,1.66.2.55.2.13 |
Date: |
Fri, 30 May 2003 08:55:11 -0400 |
Update of /cvsroot/phpgroupware/calendar/inc
In directory subversions:/tmp/cvs-serv32682
Modified Files:
Tag: Version-0_9_16-branch
class.uicalendar.inc.php
Log Message:
fix for bug #3731
Index: class.uicalendar.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/calendar/inc/class.uicalendar.inc.php,v
retrieving revision 1.66.2.55.2.12
retrieving revision 1.66.2.55.2.13
diff -C2 -r1.66.2.55.2.12 -r1.66.2.55.2.13
*** class.uicalendar.inc.php 29 May 2003 10:36:38 -0000 1.66.2.55.2.12
--- class.uicalendar.inc.php 30 May 2003 12:55:08 -0000 1.66.2.55.2.13
***************
*** 2493,2497 ****
. ' .event-off { background:
'.$this->theme['row_off'].'; color: '.$this->theme['bg_text'].'; font: 100
80%/110% '.$this->theme['font'].'; vertical-align: middle }'."\n"
. ' .event-holiday { background:
'.$this->theme['bg04'].'; color: '.$this->theme['bg_text'].'; font: 100
80%/110% '.$this->theme['font'].'; vertical-align: middle }'."\n"
! . ' .time { background:
'.$this->theme['navbar_bg'].'; color: '.$this->theme['bg_text'].'; font:
65%/100% '.$this->theme['font'].'; width: '.$time_width.'%; border: 1px
'.$this->theme['navbar_text'].'; vertical-align: middle }'."\n"
. ' .tablecell { width: 80px; height: 80px }';
}
--- 2493,2497 ----
. ' .event-off { background:
'.$this->theme['row_off'].'; color: '.$this->theme['bg_text'].'; font: 100
80%/110% '.$this->theme['font'].'; vertical-align: middle }'."\n"
. ' .event-holiday { background:
'.$this->theme['bg04'].'; color: '.$this->theme['bg_text'].'; font: 100
80%/110% '.$this->theme['font'].'; vertical-align: middle }'."\n"
! . ' .time { background:
'.$this->theme['navbar_bg'].'; color: '.$this->theme['bg_text'].'; font:
80%/110% '.$this->theme['font'].'; width: '.$time_width.'%; border: 1px
'.$this->theme['navbar_text'].'; vertical-align: middle }'."\n"
. ' .tablecell { width: 80px; height: 80px }';
}
***************
*** 2515,2520 ****
{
$str = '';
- // $is_private =
$this->bo->is_private($event,$event['owner']);
- // $editable = ((!$this->bo->printer_friendly) &&
(($is_private && $this->bo->check_perms(PHPGW_ACL_PRIVATE,$event['owner'])) ||
!$is_private));
$is_private = !$event['public'] &&
!$this->bo->check_perms(PHPGW_ACL_READ,$event);
$editable = !$this->bo->printer_friendly &&
$this->bo->check_perms(PHPGW_ACL_READ,$event);
--- 2515,2518 ----
***************
*** 2563,2567 ****
$text .=
$this->bo->display_status($event['users_status']);
}
- // $text = '<font size="-2"
face="'.$this->theme['font'].'"><nobr>'.$time.'</nobr>
'.$this->bo->get_short_field($event,$is_private,'title').$text.'</font>'.$GLOBALS['phpgw']->browser->br;
$text = '<font size="-2"
face="'.$this->theme['font'].'"><nobr> '.$time.' </nobr>
'.$this->bo->get_short_field($event,$is_private,'title').$text.':
<I>'.$this->bo->get_short_field($event,$is_private,'description').'</I></font>'.$GLOBALS['phpgw']->browser->br;
--- 2561,2564 ----
***************
*** 3166,3169 ****
--- 3163,3183 ----
}
+ function slot_num($time,$set_day_start=0,$set_day_end=0)
+ {
+ static $day_start, $day_end, $interval=0;
+
+ if ($set_day_start) $day_start = $set_day_start;
+ if ($set_day_end) $day_end = $set_day_end;
+ if (!$interval) $interval =
60*$this->bo->prefs['calendar']['interval'];
+
+ if ($time > $day_end)
+ {
+ $time = $day_end;
+ }
+ $slot = intval(($time - $day_start) / $interval);
+
+ return $slot < 0 ? 0 : 1+$slot;
+ }
+
function print_day($params)
{
***************
*** 3199,3235 ****
$p->set_block('day_cal','day_event_holiday','day_event_holiday');
$p->set_block('day_cal','day_time','day_time');
!
! if (! $this->bo->prefs['calendar']['workdaystarts'] &&
! ! $this->bo->prefs['calendar']['workdayends'])
! {
!
$GLOBALS['phpgw']->preferences->add('calendar','workdaystarts',8);
!
$GLOBALS['phpgw']->preferences->add('calendar','workdayends',16);
!
$GLOBALS['phpgw']->preferences->save_repository();
! $this->bo->prefs['calendar']['workdaystarts'] =
8;
! $this->bo->prefs['calendar']['workdayends'] =
16;
! }
!
! if(!isset($this->bo->prefs['calendar']['interval']))
! {
!
$GLOBALS['phpgw']->preferences->add('calendar','interval',60);
!
$GLOBALS['phpgw']->preferences->save_repository();
! $this->bo->prefs['calendar']['interval'] = 60;
! }
!
! print_debug('Interval set
to',intval($this->bo->prefs['calendar']['interval']));
!
! for ($i=0;$i<24;$i++)
! {
! for($j=0;$j<(60 /
intval($this->bo->prefs['calendar']['interval']));$j++)
! {
! $rowspan_arr[$i][$j] = 0;
! $time[$ind][$j] = '';
! }
! }
!
$date_to_eval =
sprintf("%04d%02d%02d",$params['year'],$params['month'],$params['day']);
- $time = Array();
-
$daily =
$this->set_week_array($GLOBALS['phpgw']->datetime->get_weekday_start($params['year'],$params['month'],$params['day']),$this->theme['row_on'],True);
print_debug('Date to Eval',$date_to_eval);
--- 3213,3219 ----
$p->set_block('day_cal','day_event_holiday','day_event_holiday');
$p->set_block('day_cal','day_time','day_time');
!
$date_to_eval =
sprintf("%04d%02d%02d",$params['year'],$params['month'],$params['day']);
$daily =
$this->set_week_array($GLOBALS['phpgw']->datetime->get_weekday_start($params['year'],$params['month'],$params['day']),$this->theme['row_on'],True);
print_debug('Date to Eval',$date_to_eval);
***************
*** 3238,3247 ****
$day_start =
mktime(intval($this->bo->prefs['calendar']['workdaystarts']),-intval($this->bo->prefs['calendar']['interval']),0,$params['month'],$params['day'],$params['year']);
$day_end =
mktime(intval($this->bo->prefs['calendar']['workdayends']),0,1,$params['month'],$params['day'],$params['year']);
- $last_starttime = $starttime = 0;
- $last_endtime = $endtime = 0;
$events =
$this->bo->cached_events[$date_to_eval];
print_debug('Date',$date_to_eval);
print_debug('Count',count($events));
! $last_ind = -1;
foreach($events as $event)
{
--- 3222,3229 ----
$day_start =
mktime(intval($this->bo->prefs['calendar']['workdaystarts']),-intval($this->bo->prefs['calendar']['interval']),0,$params['month'],$params['day'],$params['year']);
$day_end =
mktime(intval($this->bo->prefs['calendar']['workdayends']),0,1,$params['month'],$params['day'],$params['year']);
$events =
$this->bo->cached_events[$date_to_eval];
print_debug('Date',$date_to_eval);
print_debug('Count',count($events));
! $last_slot_end = -1;
foreach($events as $event)
{
***************
*** 3256,3341 ****
$starttime =
$this->bo->maketime($event['start']);
$endtime =
$this->bo->maketime($event['end']);
!
! $interval_start = 0;
! if ($starttime < $day_start)
! {
! $ind = 0;
! }
! elseif ($starttime >= $day_end)
! {
! $ind = 99;
! }
! else
! {
! $ind =
intval($event['start']['hour']);
! $interval_start =
intval($event['start']['min'] /
intval($this->bo->prefs['calendar']['interval']));
! print_debug('Start Time
Minutes',$event['start']['min']);
!
print_debug('Interval',$interval_start);
! }
! if(($ind <
intval($this->bo->prefs['calendar']['workdaystarts'])) || ($ind >
intval($this->bo->prefs['calendar']['workdayends'])))
! {
! $ind = $ind <
intval($this->bo->prefs['calendar']['workdaystarts']) ? 0 : 99;
! $interval_start = 0;
! }
!
! print_debug('IND before',$ind);
! if($ind <= date('H',$last_endtime-1) &&
$last_ind >= 0) // -1 to allow events to end on a full hour, without blocking
the next hour-slot
! {
! $ind = $last_ind;
! $interval_start =
$last_interval_start;
! }
! print_debug('IND after',$ind);
!
! $time[$ind][$interval_start] .=
$this->link_to_entry($event,$params['month'],$params['day'],$params['year']);
! print_debug('IND',$ind);
!
print_debug('TIME',$time[$ind][$interval_start]);
!
! if ($starttime < $day_start)
! {
! $starttime = $day_start;
! }
! if ($endtime > $day_end)
{
! $endtime = $day_end;
}
! if ($starttime != $endtime)
! {
! $rowspan =
$rowspan_arr[$ind][$interval_start];
! if($rowspan == 0 ||
$last_endtime <= $starttime)
! {
! $rowspan =
intval(round(($endtime - $starttime) / (60 *
intval($this->bo->prefs['calendar']['interval']))));
! }
! elseif($last_endtime < $endtime
&& $last_starttime)
! {
! $rowspan =
intval(round(($endtime - $last_starttime) / (60 *
intval($this->bo->prefs['calendar']['interval']))));
! }
! $mins = (int)((($endtime -
$starttime) / 60) % 60);
! if($mins != 0 && $mins <=
intval(60 / intval($this->bo->prefs['calendar']['interval'])) ||
! $mins == 0 &&
date('i',$endtime) > intval($this->bo->prefs['calendar']['interval']))
! {
! $rowspan += 1;
! }
! print_debug('Rowspan being set
to',$rowspan);
! if ($rowspan >
$rowspan_arr[$ind][$interval_start])
! {
!
$rowspan_arr[$ind][$interval_start] = $rowspan;
! }
! }
! $last_ind = $ind;
! $last_interval_start = $interval_start;
! $last_starttime = $starttime;
! $last_endtime = $endtime;
print_debug('Time',$GLOBALS['phpgw']->common->show_date($this->bo->maketime($events[$i]['start'])
- $GLOBALS['phpgw']->datetime->tz_offset).' -
'.$GLOBALS['phpgw']->common->show_date($this->bo->maketime($events[$i]['end'])
- $GLOBALS['phpgw']->datetime->tz_offset));
! print_debug('Start',$ind);
! print_debug('Interval
#',$interval_start);
}
}
-
- // squish events that use the same cell into the same
cell.
- // For example, an event from 8:00-9:15 and another
from 9:30-9:45 both
- // want to show up in the 8:00-9:59 cell.
$holiday_names = $daily[$date_to_eval]['holidays'];
if(!$holiday_names)
--- 3238,3263 ----
$starttime =
$this->bo->maketime($event['start']);
$endtime =
$this->bo->maketime($event['end']);
! $slot =
$this->slot_num($starttime,$day_start,$day_end);
! $slot_end =
$this->slot_num($endtime-1); // -1 to no occupy eg. the 18.00 slot for a
17-18h date
! if ($slot <= $last_slot_end)
{
! $slot = $last_slot;
! $slot_end =
max($last_slot_end,$slot_end);
}
! $rows[$slot] .=
$this->link_to_entry($event,$params['month'],$params['day'],$params['year']);
! print_debug('slot',$slot);
! print_debug('row',$rows[$slot]);
! $row_span[$slot] = 1 + $slot_end -
$slot;
!
! $last_slot = $slot;
! $last_slot_end = $slot_end;
print_debug('Time',$GLOBALS['phpgw']->common->show_date($this->bo->maketime($events[$i]['start'])
- $GLOBALS['phpgw']->datetime->tz_offset).' -
'.$GLOBALS['phpgw']->common->show_date($this->bo->maketime($events[$i]['end'])
- $GLOBALS['phpgw']->datetime->tz_offset));
! print_debug('Slot',$slot);
}
+ //echo "rows=<pre>"; print_r($rows); echo
"<br>row_span="; print_r($row_span); echo "</pre>\n";
}
$holiday_names = $daily[$date_to_eval]['holidays'];
if(!$holiday_names)
***************
*** 3346,3447 ****
{
$row_to_print = '_holiday';
! while(list($index,$name) = each($holiday_names))
{
! $time[0][0] =
'<center>'.$name.'</center>'.$time[0][0];
}
}
!
$rowspan = 0;
! $i = isset($time[0][0]) ? 0 :
(int)$this->bo->prefs['calendar']['workdaystarts'];
! $i_end = isset($time[99][0]) ? 99 :
(int)$this->bo->prefs['calendar']['workdayends'];
! while ($i <= $i_end)
! {
! $j_end = $i ? 60 /
intval($this->bo->prefs['calendar']['interval']) : 1;
! for($j = 0; $j < $j_end; $j++)
! {
! $dtime =
$this->bo->build_time_for_display(($i * 10000) + (($j
*intval($this->bo->prefs['calendar']['interval'])) * 100));
! $p->set_var('extras','');
! $p->set_var('event',' ');
! if ($rowspan > 1)
! {
! // this might mean there's an
overlap, or it could mean one event
! // ends at 11:15 and another
starts at 11:30.
! if (isset($time[$i][$j]))
! {
!
$p->set_var('event',$time[$i][$j]);
! $row_to_print =
$this->nm_on_off();
!
$p->parse('item','day_event'.$row_to_print,False);
! }
! $rowspan--;
! }
! elseif (!isset($time[$i][$j]))
! {
! $p->set_var('event',' ');
! $row_to_print =
$this->nm_on_off();
!
$p->parse('item','day_event'.$row_to_print,False);
! }
! else
! {
! $rowspan =
intval($rowspan_arr[$i][$j]);
! if ($rowspan > 1)
! {
! $p->set_var('extras','
rowspan="'.$rowspan.'"');
! }
!
$p->set_var('event',$time[$i][$j]);
! $row_to_print =
$this->nm_on_off();
!
$p->parse('item','day_event'.$row_to_print,False);
! }
!
! if (0 < $i && $i < 99)
! {
! $open_link = ' - ';
! $close_link = '';
!
! if(!$this->bo->printer_friendly
&& $this->bo->check_perms(PHPGW_ACL_ADD))
! {
! $new_hour =
intval(substr($dtime,0,strpos($dtime,':')));
! if
($this->bo->prefs['common']['timeformat'] == '12' && $i > 12)
! {
! $new_hour += 12;
! }
!
! $open_link .= '<a
href="'.$this->page('add','&date='.$date_to_eval.'&hour='.$new_hour.'&minute='.substr($dtime,strpos($dtime,':')+1,2)).'">';
!
! $close_link = '</a>';
! }
!
! $var = Array(
! 'open_link' =>
$open_link,
! 'time' =>
(intval(substr($dtime,0,strpos($dtime,':')))<10?'0'.$dtime:$dtime),
! 'close_link' =>
$close_link
! );
! }
! else
! {
! $var = Array(
! 'open_link' => '',
! 'time' =>
' ',
! 'close_link' => ''
! );
! }
! $var['tr_color'] = ''; // dummy to
stop output_template_array to set it
!
$this->output_template_array($p,'item','day_time',$var);
! $p->parse('row','day_row',True);
! $p->set_var('event','');
$p->set_var('item','');
}
! if ($i == 0)
{
! $i =
(int)$this->bo->prefs['calendar']['workdaystarts'];
}
! elseif ($i ==
(int)$this->bo->prefs['calendar']['workdayends'])
{
! $i = 99;
}
! else
{
! ++$i;
}
! } // end for
return $p->fp('out','day');
} // end function
--- 3268,3330 ----
{
$row_to_print = '_holiday';
! foreach($holiday_names as $name)
{
! $rows[0] = '<center>'.$name.'</center>'
. $rows[0];
}
}
! $last_slot = $this->slot_num($day_end);
$rowspan = 0;
! for ($slot = 0; $slot <= $last_slot; ++$slot)
! {
! $p->set_var('extras','');
! if ($rowspan > 1)
! {
$p->set_var('item','');
+ $rowspan--;
}
! elseif (!isset($rows[$slot]))
{
! $p->set_var('event',' ');
! $row_to_print = $this->nm_on_off();
!
$p->parse('item','day_event'.$row_to_print,False);
}
! else
{
! $rowspan = intval($row_span[$slot]);
! if ($rowspan > 1)
! {
! $p->set_var('extras','
rowspan="'.$rowspan.'"');
! }
! $p->set_var('event',$rows[$slot]);
! $row_to_print = $this->nm_on_off();
!
$p->parse('item','day_event'.$row_to_print,False);
}
! $open_link = $close_link = '';
! $time = ' ';
!
! if (0 < $slot && $slot < $last_slot) //
normal time-slot not before or after day_start/end
{
! $time = $day_start + ($slot-1) * 60 *
$this->bo->prefs['calendar']['interval'];
! $hour = date('H',$time);
! $min = date('i',$time);
! $time =
$GLOBALS['phpgw']->common->formattime($hour,$min);
!
! $open_link = ' - ';
! if(!$this->bo->printer_friendly &&
$this->bo->check_perms(PHPGW_ACL_ADD))
! {
! $open_link .= '<a
href="'.$this->page('add',"&date=$date_to_eval&hour=$hour&minute=$min").'">';
! $close_link = '</a>';
! }
}
! $var = Array(
! 'open_link' => $open_link,
! 'time' => $time,
! 'close_link' => $close_link,
! 'tr_color' => '' // dummy to
stop output_template_array to set it
! );
!
$this->output_template_array($p,'item','day_time',$var);
!
! $p->parse('row','day_row',True);
! }
return $p->fp('out','day');
} // end function
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Phpgroupware-cvs] CVS: calendar/inc class.uicalendar.inc.php,1.66.2.55.2.12,1.66.2.55.2.13,
Ralf Becker <address@hidden> <=
- Prev by Date:
[Phpgroupware-cvs] CVS: property/inc class.boadmin_location.inc.php,1.1,1.2 class.soadmin_location.inc.php,1.1,1.2 class.sogab.inc.php,1.5,1.6 class.uiadmin_location.inc.php,1.1,1.2
- Next by Date:
[Phpgroupware-cvs] CVS: calendar/inc class.bocalendar.inc.php,1.71.2.34,1.71.2.35
- Previous by thread:
[Phpgroupware-cvs] CVS: property/inc class.boadmin_location.inc.php,1.1,1.2 class.soadmin_location.inc.php,1.1,1.2 class.sogab.inc.php,1.5,1.6 class.uiadmin_location.inc.php,1.1,1.2
- Next by thread:
[Phpgroupware-cvs] CVS: calendar/inc class.bocalendar.inc.php,1.71.2.34,1.71.2.35
- Index(es):