mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-12-28 09:38:53 +01:00
make projects linkable to calendar events
This commit is contained in:
parent
7cf2d5ddaf
commit
6cba1832b9
@ -554,6 +554,7 @@
|
|||||||
|
|
||||||
function read_entry($id,$ignore_acl=False)
|
function read_entry($id,$ignore_acl=False)
|
||||||
{
|
{
|
||||||
|
$bolink = createObject('infolog.bolink');
|
||||||
if (is_array($id) && count($id) == 1)
|
if (is_array($id) && count($id) == 1)
|
||||||
{
|
{
|
||||||
list(,$id) = each($id);
|
list(,$id) = each($id);
|
||||||
@ -561,6 +562,19 @@
|
|||||||
if($ignore_acl || $this->check_perms(PHPGW_ACL_READ,$id))
|
if($ignore_acl || $this->check_perms(PHPGW_ACL_READ,$id))
|
||||||
{
|
{
|
||||||
$event = $this->so->read_entry($id);
|
$event = $this->so->read_entry($id);
|
||||||
|
$linkIDs = $bolink->get_links('calendar', $id);
|
||||||
|
if(is_array($linkIDs))
|
||||||
|
{
|
||||||
|
foreach($linkIDs as $linkData)
|
||||||
|
{
|
||||||
|
//$event['projectID'] = 8;
|
||||||
|
if($linkData['app'] == 'projects')
|
||||||
|
{
|
||||||
|
$event['projectID'] = $linkData['id'];
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
if(!isset($event['participants'][$this->owner]) && $this->user_is_a_member($event,$this->owner))
|
if(!isset($event['participants'][$this->owner]) && $this->user_is_a_member($event,$this->owner))
|
||||||
{
|
{
|
||||||
$this->so->add_attribute('participants','U',(int)$this->owner);
|
$this->so->add_attribute('participants','U',(int)$this->owner);
|
||||||
@ -1103,6 +1117,15 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
$date = sprintf("%04d%02d%02d",$event['start']['year'],$event['start']['month'],$event['start']['mday']);
|
$date = sprintf("%04d%02d%02d",$event['start']['year'],$event['start']['month'],$event['start']['mday']);
|
||||||
|
if(isset($l_cal['project']))
|
||||||
|
{
|
||||||
|
$bolink = createObject('infolog.bolink');
|
||||||
|
$bolink->unlink(0,'calendar',$event['id']);
|
||||||
|
if($l_cal['project'] != 'no_project')
|
||||||
|
{
|
||||||
|
$bolink->link('calendar',$event['id'],'projects',$l_cal['project']);
|
||||||
|
}
|
||||||
|
}
|
||||||
if($send_to_ui)
|
if($send_to_ui)
|
||||||
{
|
{
|
||||||
$this->read_sessiondata();
|
$this->read_sessiondata();
|
||||||
@ -2006,6 +2029,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!$eyear && !$emonth && !$eday)
|
if(!$eyear && !$emonth && !$eday)
|
||||||
{
|
{
|
||||||
$edate = mktime(23,59,59,$smonth + 1,$sday + 1,$syear);
|
$edate = mktime(23,59,59,$smonth + 1,$sday + 1,$syear);
|
||||||
@ -2114,7 +2138,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->repeating_events = Array();
|
$this->repeating_events = Array();
|
||||||
if($c_cached_ids_repeating)
|
if($c_cached_ids_repeating)
|
||||||
{
|
{
|
||||||
@ -2144,6 +2168,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$retval = Array();
|
$retval = Array();
|
||||||
for($j=date('Ymd',mktime(0,0,0,$smonth,$sday,$syear)),$k=0;$j<=date('Ymd',mktime(0,0,0,$emonth,$eday,$eyear));$k++,$j=date('Ymd',mktime(0,0,0,$smonth,$sday + $k,$syear)))
|
for($j=date('Ymd',mktime(0,0,0,$smonth,$sday,$syear)),$k=0;$j<=date('Ymd',mktime(0,0,0,$emonth,$eday,$eyear));$k++,$j=date('Ymd',mktime(0,0,0,$smonth,$sday + $k,$syear)))
|
||||||
{
|
{
|
||||||
@ -2965,6 +2990,8 @@
|
|||||||
*/
|
*/
|
||||||
function event2array($event)
|
function event2array($event)
|
||||||
{
|
{
|
||||||
|
$ownerApps = $GLOBALS['phpgw']->acl->get_user_applications($event['owner']);
|
||||||
|
|
||||||
$var['title'] = Array(
|
$var['title'] = Array(
|
||||||
'field' => lang('Title'),
|
'field' => lang('Title'),
|
||||||
'data' => $event['title']
|
'data' => $event['title']
|
||||||
@ -3037,6 +3064,16 @@
|
|||||||
'data' => $event['public'] ? lang('Public') : lang('Private')
|
'data' => $event['public'] ? lang('Public') : lang('Private')
|
||||||
);
|
);
|
||||||
|
|
||||||
|
if($ownerApps['projects'] && $event['projectID'])
|
||||||
|
{
|
||||||
|
$boprojects = createObject('projects.boprojects');
|
||||||
|
$projectData = $boprojects->read_single_project($event['projectID']);
|
||||||
|
$var['project'] = Array
|
||||||
|
(
|
||||||
|
'field' => lang('Project'),
|
||||||
|
'data' => $projectData['title'].' ['.$projectData['number'].']'
|
||||||
|
);
|
||||||
|
}
|
||||||
if(@isset($event['groups'][0]))
|
if(@isset($event['groups'][0]))
|
||||||
{
|
{
|
||||||
$cal_grps = '';
|
$cal_grps = '';
|
||||||
@ -3120,6 +3157,10 @@
|
|||||||
$this->fields = &$this->custom_fields->fields;
|
$this->fields = &$this->custom_fields->fields;
|
||||||
$this->stock_fields = &$this->custom_fields->stock_fields;
|
$this->stock_fields = &$this->custom_fields->stock_fields;
|
||||||
}
|
}
|
||||||
|
// projects
|
||||||
|
if($ownerApps['projects'])
|
||||||
|
$this->fields['project']['disabled'] = false;
|
||||||
|
|
||||||
foreach($this->fields as $field => $data)
|
foreach($this->fields as $field => $data)
|
||||||
{
|
{
|
||||||
if (!$data['disabled'])
|
if (!$data['disabled'])
|
||||||
|
@ -22,6 +22,10 @@
|
|||||||
'description' => 'Description',
|
'description' => 'Description',
|
||||||
'category' => 'Category',
|
'category' => 'Category',
|
||||||
'location' => 'Location',
|
'location' => 'Location',
|
||||||
|
'project' => array(
|
||||||
|
'label' => 'Project',
|
||||||
|
'disabled' => true,
|
||||||
|
),
|
||||||
'startdate' => 'Start Date/Time',
|
'startdate' => 'Start Date/Time',
|
||||||
'enddate' => 'End Date/Time',
|
'enddate' => 'End Date/Time',
|
||||||
'priority' => 'Priority',
|
'priority' => 'Priority',
|
||||||
|
@ -451,7 +451,7 @@
|
|||||||
|
|
||||||
function store_event()
|
function store_event()
|
||||||
{
|
{
|
||||||
return $this->save_event(&$this->event);
|
return $this->save_event($this->event);
|
||||||
}
|
}
|
||||||
|
|
||||||
function delete_event($event_id)
|
function delete_event($event_id)
|
||||||
|
@ -541,7 +541,7 @@
|
|||||||
|
|
||||||
$var = Array(
|
$var = Array(
|
||||||
'printer_friendly' => $printer,
|
'printer_friendly' => $printer,
|
||||||
'bg_text' => $this->theme['bg_text'],
|
'bg_text' => $this->theme['bg_text'],
|
||||||
'small_calendar_prev' => $minical_prev,
|
'small_calendar_prev' => $minical_prev,
|
||||||
'prev_week_link' => $prev_week_link,
|
'prev_week_link' => $prev_week_link,
|
||||||
'small_calendar_this' => $minical_this,
|
'small_calendar_this' => $minical_this,
|
||||||
@ -2088,7 +2088,7 @@
|
|||||||
)
|
)
|
||||||
);
|
);
|
||||||
$this->bo->remove_doubles_in_cache($this->planner_firstday,$this->planner_lastday);
|
$this->bo->remove_doubles_in_cache($this->planner_firstday,$this->planner_lastday);
|
||||||
|
|
||||||
// process all events within observed interval
|
// process all events within observed interval
|
||||||
//
|
//
|
||||||
for($v=$this->planner_firstday;$v<=$this->planner_lastday;$v++)
|
for($v=$this->planner_firstday;$v<=$this->planner_lastday;$v++)
|
||||||
@ -3795,7 +3795,9 @@
|
|||||||
$GLOBALS['phpgw_info']['flags']['noappfooter'] = True;
|
$GLOBALS['phpgw_info']['flags']['noappfooter'] = True;
|
||||||
$GLOBALS['phpgw_info']['flags']['app_header'] = $event['id'] ? lang('Calendar - Edit') : lang('Calendar - Add');
|
$GLOBALS['phpgw_info']['flags']['app_header'] = $event['id'] ? lang('Calendar - Edit') : lang('Calendar - Add');
|
||||||
$GLOBALS['phpgw']->common->phpgw_header();
|
$GLOBALS['phpgw']->common->phpgw_header();
|
||||||
|
|
||||||
|
$ownerApps = $GLOBALS['phpgw']->acl->get_user_applications($event['owner']);
|
||||||
|
|
||||||
$p = &$GLOBALS['phpgw']->template;
|
$p = &$GLOBALS['phpgw']->template;
|
||||||
$p->set_file(
|
$p->set_file(
|
||||||
Array(
|
Array(
|
||||||
@ -3865,6 +3867,37 @@
|
|||||||
'data' => '<input name="cal[location]" size="45" maxlength="255" value="'.$event['location'].'">'
|
'data' => '<input name="cal[location]" size="45" maxlength="255" value="'.$event['location'].'">'
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// Project
|
||||||
|
if($ownerApps['projects'])
|
||||||
|
{
|
||||||
|
$boprojects = createObject('projects.boprojects');
|
||||||
|
$projects = $boprojects->list_projects( array('limit'=>FALSE) );
|
||||||
|
$projectOptions = $boprojects->select_project_list
|
||||||
|
(
|
||||||
|
array
|
||||||
|
(
|
||||||
|
'action' => 'all',
|
||||||
|
'status' => 'active',
|
||||||
|
'selected' => $event['projectID']
|
||||||
|
)
|
||||||
|
);
|
||||||
|
if(is_array($projects))
|
||||||
|
{
|
||||||
|
$projectData = '<select name="cal[project]">';
|
||||||
|
if(!isset($event['projectID']))
|
||||||
|
$projectData .= '<option value="no_project" selected="selected"></option>';
|
||||||
|
else
|
||||||
|
$projectData .= '<option value="no_project"></option>';
|
||||||
|
|
||||||
|
$projectData .= $projectOptions;
|
||||||
|
$projectData .= '</select>';
|
||||||
|
}
|
||||||
|
$var['project'] = Array(
|
||||||
|
'field' => lang('Project'),
|
||||||
|
'data' => $projectData
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
// Date
|
// Date
|
||||||
|
|
||||||
$start = $this->bo->maketime($event['start']) - $GLOBALS['phpgw']->datetime->tz_offset;
|
$start = $this->bo->maketime($event['start']) - $GLOBALS['phpgw']->datetime->tz_offset;
|
||||||
@ -4147,6 +4180,12 @@
|
|||||||
$this->fields = &$this->custom_fields->fields;
|
$this->fields = &$this->custom_fields->fields;
|
||||||
$this->stock_fields = &$this->custom_fields->stock_fields;
|
$this->stock_fields = &$this->custom_fields->stock_fields;
|
||||||
}
|
}
|
||||||
|
$ownerApps = $GLOBALS['phpgw']->acl->get_user_applications($event['owner']);
|
||||||
|
if($ownerApps['projects'])
|
||||||
|
{
|
||||||
|
// enable project app
|
||||||
|
$this->fields['project']['disabled'] = false;
|
||||||
|
}
|
||||||
$preserved = False;
|
$preserved = False;
|
||||||
foreach($this->fields as $field => $data)
|
foreach($this->fields as $field => $data)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user