phpgroupware-cvs
[Top][All Lists]
Advanced

[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,1.66.2.55.2.1
Date: Sat, 12 Apr 2003 15:09:01 -0400

Update of /cvsroot/phpgroupware/calendar/inc
In directory subversions:/tmp/cvs-serv12701/inc

Modified Files:
      Tag: Version-0_9_16-branch
        class.uicalendar.inc.php 
Log Message:
fixed dayview for conflicts with events starting before prefs[day_start_time]


Index: class.uicalendar.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/calendar/inc/class.uicalendar.inc.php,v
retrieving revision 1.66.2.55
retrieving revision 1.66.2.55.2.1
diff -C2 -r1.66.2.55 -r1.66.2.55.2.1
*** class.uicalendar.inc.php    9 Mar 2003 19:29:13 -0000       1.66.2.55
--- class.uicalendar.inc.php    12 Apr 2003 19:08:59 -0000      1.66.2.55.2.1
***************
*** 1809,1813 ****
  
                function planner_pad_rows()
!          {
                        $rows = &$this->planner_rows;
  
--- 1809,1813 ----
  
                function planner_pad_rows()
!               {
                        $rows = &$this->planner_rows;
  
***************
*** 1853,1857 ****
  
                function planner_print_rows()
!          {
                        $bgcolor = 'bgcolor="'.$this->theme['th_bg'].'"';
                        $intervals_per_day = 
$this->bo->prefs['calendar']['planner_intervals_per_day'];
--- 1853,1857 ----
  
                function planner_print_rows()
!               {
                        $bgcolor = 'bgcolor="'.$this->theme['th_bg'].'"';
                        $intervals_per_day = 
$this->bo->prefs['calendar']['planner_intervals_per_day'];
***************
*** 1872,1876 ****
                                )+$this->planner_rows,
                                'width="100%" 
cols="'.(1+$this->planner_days_in_end_month*$intervals_per_day).'"');
!          }
  
                function planner_process_interval()
--- 1872,1876 ----
                                )+$this->planner_rows,
                                'width="100%" 
cols="'.(1+$this->planner_days_in_end_month*$intervals_per_day).'"');
!               }
  
                function planner_process_interval()
***************
*** 3326,3329 ****
--- 3326,3338 ----
                }
  
+               function nm_on_off()
+               {
+                       if($GLOBALS['phpgw']->nextmatchs->alternate_row_color() 
== $this->theme['row_on'])
+                       {
+                               return '_on';
+                       }
+                       return '_off';
+               }
+ 
                function print_day($params)
                {
***************
*** 3397,3439 ****
                        if($daily[$date_to_eval]['appts'])
                        {
!                               $day_start = 
mktime(intval($this->bo->prefs['calendar']['workdaystarts']-1),0,0,$params['month'],$params['day'],$params['year']);
                                $day_end = 
mktime(intval($this->bo->prefs['calendar']['workdayends']),0,1,$params['month'],$params['day'],$params['year']);
!                               $starttime = 0;
!                               $endtime = 0;
                                $events = 
$this->bo->cached_events[$date_to_eval];
-                               $c_events = count($events);
                                print_debug('Date',$date_to_eval);
!                               print_debug('Count',$c_events);
!                               for($i=0;$i<$c_events;$i++)
                                {
!                                       $starttime = 
$this->bo->maketime($events[$i]['start']);
!                                       $endtime = 
$this->bo->maketime($events[$i]['end']);
                                        
!                                       if($events[$i]['recur_type'] == 
MCAL_RECUR_NONE)
                                        {
                                                $ind = 0;
!                                               $interval_start = 0; 
!                                               if ($starttime < $day_start)
!                                               {
!                                                       $ind = 0;
!                                               }
!                                               elseif ($starttime >= $day_end)
!                                               {
!                                                       $ind = 99;
!                                               }
!                                               else
!                                               {
!                                                       $ind = 
intval($events[$i]['start']['hour']);
!                                                       $interval_start = 
intval($events[$i]['start']['min'] / 
intval($this->bo->prefs['calendar']['interval']));
!                                                       print_debug('Start Time 
Minutes',$events[$i]['start']['min']);
!                                                       
print_debug('Interval',$interval_start);
!                                               }
                                        }
                                        else
                                        {
!                                               $ind = 
intval($events[$i]['start']['hour']);
!                                               $interval_start = 
intval($events[$i]['start']['min'] / 
intval($this->bo->prefs['calendar']['interval']));
                                        }
- 
                                        if(($ind < 
intval($this->bo->prefs['calendar']['workdaystarts'])) || ($ind > 
intval($this->bo->prefs['calendar']['workdayends'])))
                                        {
--- 3406,3442 ----
                        if($daily[$date_to_eval]['appts'])
                        {
!                               $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)
                                {
!                                       if ($event['recur_type'])       // 
calculate start- + end-datetime for recuring events
!                                       {
!                                               
$this->bo->set_recur_date($event,$date_to_eval);
!                                       }
!                                       $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'])))
                                        {
***************
*** 3442,3456 ****
                                        }
  
!                                       if((($ind <> 99) && ($ind <> 0)) && 
(($starttime <> 0) && ($endtime <> 0)))
                                        {
!                                               print_debug('IND before',$ind);
!                                               if($ind <= 
date('H',$last_endtime-1) && $last_ind)      // -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($events[$i],$params['month'],$params['day'],$params['year']);
  
                                        print_debug('IND',$ind);
--- 3445,3457 ----
                                        }
  
!                                       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);
***************
*** 3465,3469 ****
                                                $endtime = $day_end;
                                        }
!                                       if ($starttime <> $endtime)
                                        {
                                                $rowspan = 
$rowspan_arr[$ind][$interval_start];
--- 3466,3470 ----
                                                $endtime = $day_end;
                                        }
!                                       if ($starttime != $endtime)
                                        {
                                                $rowspan = 
$rowspan_arr[$ind][$interval_start];
***************
*** 3478,3482 ****
                                                $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;
--- 3479,3484 ----
                                                $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;
***************
*** 3491,3498 ****
                                        $last_ind = $ind;
                                        $last_interval_start = $interval_start;
!                                       if ($rowspan <= 1 || !$last_starttime)
!                                       {
!                                               $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));
--- 3493,3497 ----
                                        $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));
***************
*** 3508,3519 ****
                        if(!$holiday_names)
                        {
!                               
if($GLOBALS['phpgw']->nextmatchs->alternate_row_color() == 
$this->theme['row_on'])
!                               {
!                                       $row_to_print = '_on';
!                               }
!                               else
!                               {
!                                       $row_to_print = '_off';
!                               }
                        }
                        else
--- 3507,3511 ----
                        if(!$holiday_names)
                        {
!                               $row_to_print = $this->nm_on_off();
                        }
                        else
***************
*** 3526,3553 ****
                        }
  
!                       $rowspan = intval($rowspan_arr[0][0]);
!                       // events before workdaystart
!                       if (isset($time[0][0]))
                        {
!                               $var = array('event' => $time[0][0]);
!                               if ($rowspan > 1)
!                               {
!                                       $var['extras'] = ' 
rowspan="'.$rowspan.'"';
!                               }
!                               
$this->output_template_array($p,'item','day_event'.$row_to_print,$var);
! 
!                               $var = Array(
!                                       'open_link'     => '',
!                                       'time'          => '&nbsp;',
!                                       'close_link'    => ''
!                               );
!                               
$this->output_template_array($p,'item','day_time',$var);
!                               $p->parse('row','day_row',True);
!                               $p->set_var('item','');
!                       }
!                       // events between workdaystart and -end
!                       for 
($i=(int)$this->bo->prefs['calendar']['workdaystarts'];$i<=(int)$this->bo->prefs['calendar']['workdayends'];$i++)
!                       {
!                               for($j=0;$j<(60 / 
intval($this->bo->prefs['calendar']['interval']));$j++)
                                {
                                        $dtime = 
$this->bo->build_time_for_display(($i * 10000) + (($j 
*intval($this->bo->prefs['calendar']['interval'])) * 100));
--- 3518,3528 ----
                        }
  
!                       $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));
***************
*** 3561,3572 ****
                                                {
                                                        
$p->set_var('event',$time[$i][$j]);
!                                                       
if($GLOBALS['phpgw']->nextmatchs->alternate_row_color() == 
$this->theme['row_on'])
!                                                       {
!                                                               $row_to_print = 
'_on';
!                                                       }
!                                                       else
!                                                       {
!                                                               $row_to_print = 
'_off';
!                                                       }
                                                        
$p->parse('item','day_event'.$row_to_print,False);
                                                }
--- 3536,3540 ----
                                                {
                                                        
$p->set_var('event',$time[$i][$j]);
!                                                       $row_to_print = 
$this->nm_on_off();
                                                        
$p->parse('item','day_event'.$row_to_print,False);
                                                }
***************
*** 3576,3587 ****
                                        {
                                                $p->set_var('event','&nbsp;');
!                                               
if($GLOBALS['phpgw']->nextmatchs->alternate_row_color() == 
$this->theme['row_on'])
!                                               {
!                                                       $row_to_print = '_on';
!                                               }
!                                               else
!                                               {
!                                                       $row_to_print = '_off';
!                                               }
                                                
$p->parse('item','day_event'.$row_to_print,False);
                                        }
--- 3544,3548 ----
                                        {
                                                $p->set_var('event','&nbsp;');
!                                               $row_to_print = 
$this->nm_on_off();
                                                
$p->parse('item','day_event'.$row_to_print,False);
                                        }
***************
*** 3594,3630 ****
                                                }
                                                
$p->set_var('event',$time[$i][$j]);
!                                               
if($GLOBALS['phpgw']->nextmatchs->alternate_row_color() == 
$this->theme['row_on'])
!                                               {
!                                                       $row_to_print = '_on';
!                                               }
!                                               else
!                                               {
!                                                       $row_to_print = '_off';
!                                               }
                                                
$p->parse('item','day_event'.$row_to_print,False);
                                        }
                        
!                                       $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
!                                       );
  
                                        
$this->output_template_array($p,'item','day_time',$var);
                                        $p->parse('row','day_row',True);
--- 3555,3594 ----
                                                }
                                                
$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'          => 
'&nbsp;',
+                                                       'close_link'    => ''
+                                               );
+                                       }
                                        
$this->output_template_array($p,'item','day_time',$var);
                                        $p->parse('row','day_row',True);
***************
*** 3632,3659 ****
                                        $p->set_var('item','');
                                }
!                       }       // end for
!                       // events after workdayend
!                       if (isset($time[99][0]))
!                       {
!                               $var = array('event' => $time[99][0]);
!                               
if($GLOBALS['phpgw']->nextmatchs->alternate_row_color() == 
$this->theme['row_on'])
                                {
!                                       $row_to_print = '_on';
                                }
                                else
                                {
!                                       $row_to_print = '_off';
                                }
!                               
$this->output_template_array($p,'item','day_event'.$row_to_print,$var);
! 
!                               $var = Array(
!                                       'open_link'     => '',
!                                       'time'          => '&nbsp;',
!                                       'close_link'    => ''
!                               );
!                               
$this->output_template_array($p,'item','day_time',$var);
!                               $p->parse('row','day_row',True);
!                               $p->set_var('item','');
!                       }
                        return $p->fp('out','day');
                }       // end function
--- 3596,3612 ----
                                        $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





reply via email to

[Prev in Thread] Current Thread [Next in Thread]