phpgroupware-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Phpgroupware-cvs] calendar/inc class.uicalendar.inc.php,1.119


From: skwashd
Subject: [Phpgroupware-cvs] calendar/inc class.uicalendar.inc.php,1.119
Date: Thu, 8 Dec 2005 07:24:00 +0100

Update of calendar/inc

Modified Files:
     Branch: MAIN
            class.uicalendar.inc.php lines: +66 -52

Log Message:
fix planner view and matrix selection, also switched to jscal for matrix date

====================================================
Index: calendar/inc/class.uicalendar.inc.php
diff -u calendar/inc/class.uicalendar.inc.php:1.118 
calendar/inc/class.uicalendar.inc.php:1.119
--- calendar/inc/class.uicalendar.inc.php:1.118 Tue Dec  6 10:42:26 2005
+++ calendar/inc/class.uicalendar.inc.php       Thu Dec  8 06:24:18 2005
@@ -1345,27 +1345,21 @@

                function set_planner_group_members()
                {
-                       $type = 
$GLOBALS['phpgw']->accounts->get_type($this->bo->owner);
-
-                       if ($type == 'g') // display schedule of all group 
members
+                       $this->planner_group_members = array();
+                       if (is_array($this->bo->g_owner) && 
count($this->bo->g_owner) ) // display schedule of all group members
                        {
-                               $members = array();
-                               $ids = 
$GLOBALS['phpgw']->acl->get_ids_for_location($this->bo->owner, 1, 
'phpgw_group');
-                               while (list(,$id) = each($ids))
+                               foreach ( $this->bo->g_owner as $id)
                                {
                                        if 
($this->bo->check_perms(PHPGW_ACL_READ,0,$id))
                                        {
-                                               
$members[$GLOBALS['phpgw']->common->grab_owner_name($id)] = $id;
+                                               
$this->planner_group_members[$this->bo->contacts->get_name_of_person_id($id)] = 
$id;
                                        }
                                }
-                               ksort($members);
-                               $this->planner_group_members = $members;
+                               ksort($this->planner_group_members);
                        }
                        else
                        {
-                               $this->planner_group_members = array(
-                                       
$GLOBALS['phpgw']->common->grab_owner_name($this->bo->owner) => $this->bo->owner
-                               );
+                               
$this->planner_group_members[$this->bo->contacts->get_name_of_person_id($this->bo->owner)]
 = $this->bo->owner;
                        }
                }

@@ -1392,6 +1386,7 @@
                        //
                        if (! 
$this->bo->prefs['calendar']['planner_intervals_per_day'])
                        {
+                               
$GLOBALS['phpgw']->preferences->read_repository();
                                
$GLOBALS['phpgw']->preferences->add('calendar','planner_intervals_per_day',3);
                                
$GLOBALS['phpgw']->preferences->save_repository();
                                
$this->bo->prefs['calendar']['planner_intervals_per_day'] = 3;
@@ -1455,11 +1450,11 @@
                                        && 
!$this->bo->check_perms(PHPGW_ACL_ADD)
                                        || 
!$this->bo->check_perms(PHPGW_ACL_ADD,0,$this->bo->save_owner))
                                {
-                                       $add_owner = array('owner' => 
$this->contacts->is_contact($GLOBALS['phpgw_info']['user']['account_id']));
+                                       $add_owner = array('owner' => 
$this->bo->contacts->is_contact($GLOBALS['phpgw_info']['user']['account_id']));
                                }
                                else
                                {
-                                       $add_owner = array('owner' => 
$this->bo->save_onwer);
+                                       $add_owner = array('owner' => 
$this->bo->save_owner);
                                }

                                for ($d=1; $d<=$days; $d++)
@@ -1915,6 +1910,7 @@
                        $datetime = 
mktime(0,0,0,$this->bo->month,$this->bo->day,$this->bo->year) - 
$GLOBALS['phpgw']->datetime->tz_offset;

                        $sb = CreateObject('phpgwapi.sbox');
+                       $jscal = CreateObject('phpgwapi.jscalendar');

                        unset($GLOBALS['phpgw_info']['flags']['noheader']);
                        unset($GLOBALS['phpgw_info']['flags']['nonavbar']);
@@ -1938,14 +1934,11 @@
                        ));

 // Date
-                       $var[] = Array(
-                               'field' =>      lang('Date'),
-                               'data'  =>      
$GLOBALS['phpgw']->common->dateformatorder(
-                                       
$sb->getYears('year',intval($GLOBALS['phpgw']->common->show_date($datetime,'Y')),intval($GLOBALS['phpgw']->common->show_date($datetime,'Y'))),
-                                       
$sb->getMonthText('month',intval($GLOBALS['phpgw']->common->show_date($datetime,'n'))),
-                                       
$sb->getDays('day',intval($GLOBALS['phpgw']->common->show_date($datetime,'d')))
-                               )
-                       );
+                       $var[] = array
+                               (
+                                       'field' => lang('Date'),
+                                       'data'  => $jscal->input('date_select', 
$datetime)
+                               );

 // View type
                        $var[] = Array(
@@ -1957,29 +1950,42 @@
                        );

 // Participants
-                       $accounts = 
$GLOBALS['phpgw']->acl->get_ids_for_location('run',1,'calendar');
-                       $users = Array();
-                       for($i=0;$i<count($accounts);$i++)
+                       $accounts = 
$GLOBALS['phpgw']->acl->get_ids_for_location('run', 1, 'calendar');
+                       if ( !is_array($accounts) )
                        {
-                               $user = $accounts[$i];
-                               if(!isset($users[$user]))
+                               $accounts = array();
+                       }
+                       $users = array();
+                       foreach ( $accounts as $user )
+                       {
+                               if ( 
$GLOBALS['phpgw']->accounts->get_type($user) == 'g' )
                                {
-                                       $users[$user] = 
$GLOBALS['phpgw']->common->grab_owner_name($user);
-                                       
if($GLOBALS['phpgw']->accounts->get_type($user) == 'g')
+                                       if ( !isset($users["g_{$user}"]) )
                                        {
+                                               $users["g_{$user}"] = 
$GLOBALS['phpgw']->common->grab_owner_name($user);
                                                $group_members = 
$GLOBALS['phpgw']->acl->get_ids_for_location($user,1,'phpgw_group');
-                                               if($group_members != False)
+                                               if ( is_array($group_members) 
&& count($group_members) )
                                                {
-                                                       
for($j=0;$j<count($group_members);$j++)
+                                                       foreach ( 
$group_members as $member )
                                                        {
-                                                               
if(!isset($users[$group_members[$j]]))
+                                                               $person_id = 
intval($this->bo->contacts->is_contact($member));
+                                                               if ( $person_id 
> 0  && !isset($users[$person_id]) )
                                                                {
-                                                                       
$users[$group_members[$j]] = 
$GLOBALS['phpgw']->common->grab_owner_name($group_members[$j]);
+                                                                       
$users[$person_id] = $this->bo->contacts->get_name_of_person_id($person_id);
                                                                }
                                                        }
                                                }
                                        }
                                }
+                               else
+                               {
+                                       $person_id = 
intval($this->bo->contacts->is_contact($user));
+                                       if ( $person_id > 0 && 
!isset($users[$person_id]) )
+                                       {
+                                               $users[$person_id] = 
$this->bo->contacts->get_name_of_person_id($person_id);
+                                       }
+                               }
+                               echo '<br />';
                        }

                        $num_users = count($users);
@@ -1996,21 +2002,24 @@
                        {
                                $size = $num_users;
                        }
-                       $str = '';
+                       $groups = $usrs = '';
                        @asort($users);
-                       @reset($users);
-                       while ($user = each($users))
+                       foreach ( $users as $user_id => $user )
                        {
-                               
if(($GLOBALS['phpgw']->accounts->exists($user[0]) && 
$this->bo->check_perms(PHPGW_ACL_READ,0,$user[0])) || 
$GLOBALS['phpgw']->accounts->get_type($user[0]) == 'g')
+                               if( strpos($user_id, 'g') !== false )
                                {
-                                       $prefix = 
$GLOBALS['phpgw']->accounts->get_type($user[0]) == 'g' ? 'g_' : '';
-                                       $str .= '    <option 
value="'.$prefix.$user[0].'">('.$GLOBALS['phpgw']->accounts->get_type($user[0]).')
 '.$user[1].'</option>'."\n";
+                                       $groups .= "\t<option 
value=\"$user_id\">$user [g]</option>\n";
+                               }
+                               else if( $this->bo->check_perms(PHPGW_ACL_READ, 
0, $user_id) )
+                               {
+                                       $usrs .= "\t<option 
value=\"$user_id\">$user</option>\n";
                                }
                        }
-                       $var[] = Array(
-                               'field' =>      lang('Participants'),
-                               'data'  =>      "\n".'   <select 
name="participants[]" multiple size="'.$size.'">'."\n".$str.'   </select>'."\n"
-                       );
+                       $var[] = array
+                               (
+                                       'field' => lang('Participants'),
+                                       'data'  => "\n<select 
name=\"participants[]\" multiple size=\"$size\">\n{$groups}{$usrs}\n</select>\n"
+                               );

                        for($i=0;$i<count($var);$i++)
                        {
@@ -2051,38 +2060,43 @@
                                                        {
                                                                
foreach($members as $member)
                                                                {
-                                                                       
if($this->bo->check_perms(PHPGW_ACL_READ, 0, 
$this->bo->contacts->is_contact($member['account_id'])))
+                                                                       
$person_id = $this->bo->contacts->is_contact($member['account_id']);
+                                                                       if ( 
$this->bo->check_perms(PHPGW_ACL_READ, 0, $person_id) )
                                                                        {
-                                                                               
$parts[$this->bo->contacts->is_contact($member['account_id'])] = True;
+                                                                               
$parts[$person_id] = True;
                                                                        }
                                                                }
                                                        }

                                                        break;
                                                default:
-                                                       
if($this->bo->check_perms(PHPGW_ACL_READ, 0, 
$this->bo->contacts->is_contact($participant)))
+                                                       
if($this->bo->check_perms(PHPGW_ACL_READ, 0, 
$this->bo->contacts->is_contact($participant) ) )
                                                        {
-                                                               
$parts[$this->bo->contacts->is_contact($participant)] = 1;
+                                                               
$parts[$participant] = True;
                                                        }
                                                        break;
                                        }
                                }
-                               unset($acct);
                        }
+                       unset($acct);
+
                        $participants = array_keys($parts);     // get id's as 
values and a numeric index

+                       $jscal = CreateObject('phpgwapi.jscalendar', false);
+                       $date_selected = 
$jscal->input2date($_POST['date_select']);
+
                        unset($GLOBALS['phpgw_info']['flags']['noheader']);
                        unset($GLOBALS['phpgw_info']['flags']['nonavbar']);
                        if ($this->always_app_header) 
$GLOBALS['phpgw_info']['flags']['app_header'] = 
$GLOBALS['phpgw_info']['apps']['calendar']['title'].' - '.lang('Matrixview');
                        $GLOBALS['phpgw']->common->phpgw_header();

+
                        switch($_POST['matrixtype'])
                        {
                                case 'free/busy':
-                                       $freetime = 
$GLOBALS['phpgw']->datetime->gmtdate(mktime(0,0,0,$this->bo->month,$this->bo->day,$this->bo->year));
                                        echo '<br />'.$this->timematrix(
                                                Array(
-                                                       'date'          => 
$freetime,
+                                                       'date'          => 
$GLOBALS['phpgw']->datetime->gmtdate($date_selected['raw']),
                                                        'starttime'     => 
$this->bo->splittime('000000',False),
                                                        'endtime'       => 0,
                                                        'participants'  => 
$parts
@@ -2092,7 +2106,7 @@
                                case 'weekly':
                                        echo '<br />'.$this->display_weekly(
                                                Array(
-                                                       'date'          => 
sprintf("%04d%02d%02d",$this->bo->year,$this->bo->month,$this->bo->day),
+                                                       'date'          => 
date('Ymd', $GLOBALS['phpgw']->datetime->gmtdate($date_selected['raw'])),
                                                        'showyear'      => true,
                                                        'owners'        => 
$participants
                                                )






reply via email to

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