2 if(!defined('sugarEntry') || !sugarEntry) die('Not A Valid Entry Point');
3 /*********************************************************************************
4 * SugarCRM Community Edition is a customer relationship management program developed by
5 * SugarCRM, Inc. Copyright (C) 2004-2011 SugarCRM Inc.
7 * This program is free software; you can redistribute it and/or modify it under
8 * the terms of the GNU Affero General Public License version 3 as published by the
9 * Free Software Foundation with the addition of the following permission added
10 * to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED WORK
11 * IN WHICH THE COPYRIGHT IS OWNED BY SUGARCRM, SUGARCRM DISCLAIMS THE WARRANTY
12 * OF NON INFRINGEMENT OF THIRD PARTY RIGHTS.
14 * This program is distributed in the hope that it will be useful, but WITHOUT
15 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
16 * FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
19 * You should have received a copy of the GNU Affero General Public License along with
20 * this program; if not, see http://www.gnu.org/licenses or write to the Free
21 * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
24 * You can contact SugarCRM, Inc. headquarters at 10050 North Wolfe Road,
25 * SW2-130, Cupertino, CA 95014, USA. or at email address contact@sugarcrm.com.
27 * The interactive user interfaces in modified source and object code versions
28 * of this program must display Appropriate Legal Notices, as required under
29 * Section 5 of the GNU Affero General Public License version 3.
31 * In accordance with Section 7(b) of the GNU Affero General Public License version 3,
32 * these Appropriate Legal Notices must retain the display of the "Powered by
33 * SugarCRM" logo. If the display of the logo is not reasonably feasible for
34 * technical reasons, the Appropriate Legal Notices must display the words
35 * "Powered by SugarCRM".
36 ********************************************************************************/
38 /*********************************************************************************
40 ********************************************************************************/
41 include_once("modules/Calendar/Calendar.php");
42 include_once("modules/Calendar/templates/templates_calendar.php");
44 function template_shared_calendar(&$args) {
48 $date_arr= array("activity_focus"=>$args['activity_focus']);
49 $calendar = new Calendar("day",$date_arr);
50 $calendar->show_tasks = false;
51 $calendar->toggle_appt = false;
52 foreach($args['users'] as $user)
55 if ($user->id != $current_user->id)
58 $calendar->add_activities($user,'vfb');
66 <table width="100%" cellpadding="0" cellspacing="0" border="0"><tr><td><h3><?php echo $mod_strings['LBL_USER_CALENDARS']; ?></h3>
69 <h3><?php template_echo_date_info("day",$calendar->date_time);?></h3>
71 <table cellpadding="0" cellspacing="0" width="100%" border="0" class="list view">
73 <td scope="col" width="25%" ><?php echo $app_strings['LBL_LIST_NAME']; ?></td>
75 $start_slice_idx = $calendar->get_start_slice_idx();
76 $end_slice_idx = $calendar->get_end_slice_idx();
78 $slice_args = array();
79 for($cur_slice_idx=$start_slice_idx;$cur_slice_idx<=$end_slice_idx;$cur_slice_idx++)
81 $slice_args['slice'] = $calendar->slice_hash[$calendar->slices_arr[$cur_slice_idx]];
82 $slice_args['calendar'] = $calendar;
85 <td ><?php template_echo_slice_date($slice_args) ; ?></td>
92 foreach($args['users'] as $curr_user)
97 $row_class = 'oddListRowS1';
100 $row_class = 'evenListRowS1';
104 <tr height="20" class="<?php echo $row_class; ?>">
105 <td scope="row" valign="top"><a href="index.php?action=DetailView&module=Users&record=<?php echo $curr_user->id; ?>" >
106 <?php echo $curr_user->full_name; ?></a></td>
108 // loop through each slice for this user and show free/busy
109 for($cur_slice_idx=$start_slice_idx;$cur_slice_idx<=$end_slice_idx;$cur_slice_idx++)
112 $cur_slice = $calendar->slice_hash[$calendar->slices_arr[$cur_slice_idx]];
114 // if this current activitiy occurs within this time slice
115 if ( Calendar::occurs_within_slice($cur_slice,$calendar->activity_focus))
119 if ( isset($cur_slice->acts_arr[$curr_user->id]) )
121 foreach( $cur_slice->acts_arr[$curr_user->id] as $act)
123 if ($act->sugar_bean->id != $calendar->activity_focus->sugar_bean->id)
131 if (isset($cur_slice->acts_arr[$curr_user->id]) && count($cur_slice->acts_arr[$curr_user->id]) > 1)
135 <td class="listViewCalConflictAppt"> </td>
140 <td class="listViewCalCurrentAppt"> </td>
144 else if ( isset($cur_slice->acts_arr[$curr_user->id]))
147 <td class="listViewCalOtherAppt"> </td>
167 <table width="100%" cellspacing="2" cellpadding="0" border="0">
169 <td width="100%"></td>
170 <td class="listViewCalCurrentApptLgnd"><img src="<?php echo SugarThemeRegistry::current()->getImageURL('blank.gif'); ?>" alt="<?php echo $mod_strings['LBL_SCHEDULED']; ?>" width="15" height="15"> </td>
171 <td> <?php echo $mod_strings['LBL_SCHEDULED']; ?> </td>
172 <td class="listViewCalOtherApptLgnd"><img src="<?php echo SugarThemeRegistry::current()->getImageURL('blank.gif'); ?>" alt="<?php echo $mod_strings['LBL_BUSY']; ?>" width="15" height="15"> </td>
173 <td> <?php echo $mod_strings['LBL_BUSY']; ?> </td>
174 <td class="listViewCalConflictApptLgnd"><img src="<?php echo SugarThemeRegistry::current()->getImageURL('blank.gif'); ?>" alt="<?php echo $mod_strings['LBL_CONFLICT']; ?>" width="15" height="15"> </td>
175 <td> <?php echo $mod_strings['LBL_CONFLICT']; ?></td>