home *** CD-ROM | disk | FTP | other *** search
- <?php
- /*
- Copyright Intermesh 2003
- Author: Merijn Schering <mschering@intermesh.nl>
- Version: 1.0 Release date: 08 July 2003
-
- This program is free software; you can redistribute it and/or modify it
- under the terms of the GNU General Public License as published by the
- Free Software Foundation; either version 2 of the License, or (at your
- option) any later version.
- */
-
-
- if($task == 'start_timer')
- {
- $projects->start_timer($GO_SECURITY->user_id, $_REQUEST['project_id']);
- }
-
- if (isset($_REQUEST['delete_project_id']) && $_REQUEST['delete_project_id'] > 0)
- {
- $project = $projects->get_project($_REQUEST['delete_project_id']);
- if ($GO_SECURITY->has_permission($GO_SECURITY->user_id, $project['acl_write']))
- {
- if($projects->delete_project($_REQUEST['delete_project_id']))
- {
- $GO_SECURITY->delete_acl($project['acl_write']);
- $GO_SECURITY->delete_acl($project['acl_read']);
- }
- }else
- {
- $feedback = '<p class="Error">'.$strAccessDenied.'</p>';
- }
- }
-
-
- $max_rows = isset($_REQUEST['max_rows']) ? $_REQUEST['max_rows'] : $_SESSION['GO_SESSION']['max_rows_list'];
- $first = isset($_REQUEST['first']) ? $_REQUEST['first'] : 0;
-
- //check if we are included from the addressbook and if we have a contact related to us
- $projects_module_url = isset($projects_module_url) ? $projects_module_url : $GO_MODULES->url;
- $contact_id = isset($contact_id) ? $contact_id : 0;
- echo '<a href="'.$projects_module_url.'project.php?contact_id='.$contact_id.'&return_to='.rawurlencode($link_back).'" class="normal">'.$pm_new_project.'</a><br /><br />';
-
-
- if ($timer = $projects->get_timer($GO_SECURITY->user_id))
- {
- echo '<table border="0" class="alert"><tr><td><img src="'.$GO_THEME->images['alert'].'" border="0" /></td>'.
- '<td><a class="normal" href="'.$projects_module_url.'project.php?task=stop_timer&project_id='.$timer['project_id'].'&return_to='.rawurlencode($link_back).'&contact_id='.$contact_id.'">'.$pm_clocked_in.'</a></td></tr></table>';
- }
-
-
- //determine sorting
- $pm_sort_field = isset($_COOKIE['pm_sort_field']) ? $_COOKIE['pm_sort_field'] : 'name';
- $pm_sort_direction = isset($_COOKIE['pm_sort_direction']) ? $_COOKIE['pm_sort_direction'] : 'ASC';
-
- if ($pm_sort_direction == "DESC")
- {
- $sort_arrow = ' <img src="'.$GO_THEME->images['arrow_down'].'" border="0" />';
- $new_sort_direction = "ASC";
- }else
- {
- $sort_arrow = ' <img src="'.$GO_THEME->images['arrow_up'].'" border="0" />';
- $new_sort_direction = "DESC";
- }
-
- $_COOKIE['pm_filter'] = isset($_COOKIE['pm_filter']) ? $_COOKIE['pm_filter'] : '';
- $filter = isset($_REQUEST['filter']) ? $_REQUEST['filter'] : $_COOKIE['pm_filter'];
-
-
- echo '<table border="0" cellspacing="0" cellpadding="1">';
- echo '<tr><td colspan="2"><table border="0"><tr><td>'.$pm_filter.':</td><td colspan="2">';
-
- echo '<input type="hidden" name="first" value="'.$first.'" />';
- echo '<input type="hidden" name="max_rows" value="'.$max_rows.'" />';
- echo '<input type="hidden" name="post_action" value="projects" />';
- echo '<input type="hidden" name="new_sort_field" value="'.$pm_sort_field.'" />';
- echo '<input type="hidden" name="new_sort_direction" value="'.$pm_sort_direction.'" />';
- echo '<input type="hidden" name="delete_project_id" value="0" />';
-
- $dropbox = new dropbox();
-
- $dropbox->add_value('', $cmdShowAll);
- $dropbox->add_value(STATUS_OFFER, $pm_status_values[STATUS_OFFER]);
- $dropbox->add_value(STATUS_ONGOING, $pm_status_values[STATUS_ONGOING]);
- $dropbox->add_value(STATUS_WAITING, $pm_status_values[STATUS_WAITING]);
- $dropbox->add_value(STATUS_DONE, $pm_status_values[STATUS_DONE]);
- $dropbox->add_value(STATUS_BILLED, $pm_status_values[STATUS_BILLED]);
-
- $dropbox->print_dropbox('filter', $filter, 'onchange="javascript:document.forms[0].submit()"');
-
-
- $count = $projects->get_authorized_projects($GO_SECURITY->user_id, $pm_sort_field, $pm_sort_direction, $first, $max_rows, $filter, $contact_id);
- echo '</td></tr></table></td><td colspan="99" class="small" align="right">'.$count.' '.$pm_projects_count.'</td></tr>';
-
- $contacts_module = $GO_MODULES->get_module('addressbook');
- $has_contacts_module = ($contacts_module && ($GO_SECURITY->has_permission($GO_SECURITY->user_id, $contacts_module['acl_read']) || $GO_SECURITY->has_permission($GO_SECURITY->user_id, $contacts_module['acl_write'])));
-
- echo '<tr height="20">';
-
- echo '<td class="TableHead2" width="16"></td>';
-
- echo '<td class="TableHead2" width="100" nowrap><a class="TableHead2" href="javascript:_sort(\'name\',\''.$new_sort_direction.'\');">'.$strName.'</a>';
- if ($pm_sort_field == 'name')
- {
- echo $sort_arrow;
- }
- echo '</td>';
-
- echo '<td class="TableHead2" width="100" nowrap><a class="TableHead2" href="javascript:_sort(\'start_date\',\''.$new_sort_direction.'\');">'.$pm_start_date.'</a>';
- if ($pm_sort_field == 'start_date')
- {
- echo $sort_arrow;
- }
- echo '</td>';
-
- echo '<td class="TableHead2" width="100" nowrap><a class="TableHead2" href="javascript:_sort(\'end_date\',\''.$new_sort_direction.'\');">'.$pm_end_date.'</a>';
- if ($pm_sort_field == 'end_date')
- {
- echo $sort_arrow;
- }
- echo '</td>';
-
- echo '<td class="TableHead2" width="100" nowrap><a class="TableHead2" href="javascript:_sort(\'status\',\''.$new_sort_direction.'\');">'.$pm_status.'</a>';
- if ($pm_sort_field == 'status')
- {
- echo $sort_arrow;
- }
- echo '</td>';
-
- echo '<td class="TableHead2" nowrap><a class="TableHead2" href="javascript:_sort(\'probability\',\''.$new_sort_direction.'\');">'.$pm_probability.'</a>';
- if ($pm_sort_field == 'probability')
- {
- echo $sort_arrow;
- }
- echo '</td>';
-
- if ($has_contacts_module && $contact_id == 0)
- {
- echo '<td class="TableHead2">'.$pm_client.'</td>';
- }
- echo '<td class="TableHead2" colspan="3"></td></tr>';
-
-
- if ($count > 0)
- {
-
- $time = get_time();
-
- while ($projects->next_record())
- {
- echo '<tr height="18"><td>';
- if ($projects->f('status') < 4 && $projects->f('end_date') < get_time())
- {
- echo '<img border="0" src="'.$GO_THEME->images['alert'].'" alt="'.$pm_alert.'" />';
- }else
- {
- switch($projects->f('status'))
- {
- case '5':
- echo '<img border="0" src="'.$GO_THEME->images['ok'].'" alt="'.$pm_status_values[5].'" />';
- break;
-
- case '4':
- echo '<img border="0" src="'.$GO_THEME->images['ok'].'" alt="'.$pm_status_values[4].'" />';
- break;
-
- case '3':
- echo '<img border="0" src="'.$GO_THEME->images['clock'].'" alt="'.$pm_status_values[3].'" />';
- break;
-
- case '2':
- echo '<img border="0" src="'.$GO_THEME->images['ongoing'].'" alt="'.$pm_status_values[2].'" />';
- break;
-
- case '1':
- echo '<img border="0" src="'.$GO_THEME->images['offer'].'" alt="'.$pm_status_values[1].'" />';
- break;
-
- }
- }
-
- $project_name = ($projects->f('description') == '') ? $projects->f('name') : $projects->f('name').' ('.$projects->f('description').')';
- echo '</td><td nowrap><a href="'.$projects_module_url.'project.php?project_id='.$projects->f('id').'&return_to='.rawurlencode($link_back).'" class="normal" title="'.$strEdit.' \''.$projects->f('name').'\'">'.$project_name.'</a></td>';
- echo '<td nowrap>'.date($_SESSION['GO_SESSION']['date_format'], $projects->f('start_date')).'</td>';
- echo '<td nowrap>'.date($_SESSION['GO_SESSION']['date_format'], $projects->f('end_date')).'</td>';
- echo '<td nowrap>'.$pm_status_values[(int) $projects->f('status')].'</td>';
- echo '<td nowrap>'.$projects->f('probability').'%</td>';
- if ($has_contacts_module && $contact_id == 0)
- {
- echo "<td nowrap>".show_contact($projects->f('contact_id'))." </td>";
- }
-
- if (!$timer)
- {
- echo '<td><a href="'.$projects_module_url.'project.php?task=book&project_id='.$projects->f("id").'&return_to='.rawurlencode($link_back).'&contact_id='.$contact_id.'" title="'.$pm_enter_data.'"><img src="'.$GO_THEME->images['enter_data'].'" border="0"></a></td>';
- echo '<td><a href="'.$projects_module_url.'index.php?task=start_timer&project_id='.$projects->f("id").'&contact_id='.$contact_id.'&link_back='.urlencode($link_back).'" title="'.$pm_start_timer.'"><img src="'.$GO_THEME->images['clock'].'" border="0"></a></td>';
- }elseif($timer['project_id'] == $projects->f('id'))
- {
- echo '<td></td><td><a href="'.$projects_module_url.'project.php?task=stop_timer&project_id='.$projects->f("id").'&return_to='.rawurlencode($link_back).'&contact_id='.$contact_id.'" title="'.$pm_stop_timer.'"><img src="'.$GO_THEME->images['clockout'].'" border="0"></a></td>';
- }else
- {
- echo '<td colspan="2"> </td>';
- }
- echo "<td><a href='javascript:confirm_action(\"javascript:delete_project(".$projects->f("id").")\",\"".rawurlencode($strDeletePrefix."'".$project_name."'".$strDeleteSuffix)."\")' title=\"".$strDeleteItem." '".$project_name."'\"><img src=\"".$GO_THEME->images['delete']."\" border=\"0\"></a></td>\n";
- echo '<tr><td colspan="99" height="1"><img src="'.$GO_THEME->images['cccccc'].'" border="0" height="1" width="100%" /></td></tr>';
-
- }
- $links = '';
- $max_links=10;
- if ($max_rows != 0)
- {
- if ($count > $max_rows)
- {
- $links = '<table border="0" cellpadding="0" cellspacing="0" width="100%"><tr><td>';
- $next_start = $first+$max_rows;
- $previous_start = $first-$max_rows;
- if ($first != 0)
- {
- $links .= '<a href="javascript:change_list(0, '.$max_rows.');"><<</a> ';
- $links .= '<a href="javascript:change_list('.$previous_start.', '.$max_rows.');">'.$cmdPrevious.'</a> ';
- }else
- {
- $links .= '<font color="#cccccc"><< '.$cmdPrevious.'</font> ';
- }
-
- $start = ($first-(($max_links/2)*$max_rows));
-
- $end = ($first+(($max_links/2)*$max_rows));
-
- if ($start < 0)
- {
- $end = $end - $start;
- $start=0;
- }
- if ($end > $count)
- {
- $end = $count;
- }
- if ($start > 0)
- {
- $links .= '... ';
- }
-
- for ($i=$start;$i<$end;$i+=$max_rows)
- {
- $page = ($i/$max_rows)+1;
- if ($i==$first)
- {
- $links .= '<b><i>'.$page.'</i></b> ';
- }else
- {
- $links .= '<a href="'.$_SERVER['PHP_SELF'].'?post_action=projects&first='.$i.'">'.$page.'</a> ';
- }
- }
-
- if ($end < $count)
- {
- $links .= '... ';
- }
-
- $last_page = floor($count/$max_rows)*$max_rows;
-
- if ($count > $next_start)
- {
- $links .= '<a href="javascript:change_list('.$next_start.', '.$max_rows.');">'.$cmdNext.'</a> ';
- $links .= '<a href="javascript:change_list('.$last_page.', '.$max_rows.');">>></a>';
- }else
- {
- $links .= '<font color="#cccccc">'.$cmdNext.' >></font>';
- }
- $links .= '</td><td align="right"><a class="normal" href="javascript:change_list(0, 0);">'.$cmdShowAll.'</a></td></tr></table>';
-
- echo '<tr height="20"><td colspan="99">'.$links.'</td></tr>';
- }
- }
-
- }else
- {
- echo '<tr><td colspan="99">'.$pm_no_projects.'</td></tr>';
- echo '<tr><td colspan="99" height="1"><img src="'.$GO_THEME->images['cccccc'].'" border="0" height="1" width="100%" /></td></tr>';
- }
- echo '</table>';
- ?>
-
- <script type="text/javascript">
-
- function _sort(field, direction)
- {
- document.forms[0].new_sort_field.value=field;
- document.forms[0].new_sort_direction.value=direction;
- document.forms[0].submit();
- }
-
- function delete_project(id)
- {
- document.forms[0].delete_project_id.value=id;
- document.forms[0].submit();
- }
-
- function change_list(first, max_rows)
- {
- document.forms[0].first.value=first;
- document.forms[0].max_rows.value=max_rows;
- document.forms[0].submit();
- }
- </script>
-