![]() |
|---|
| [ Index ] |
Source Code Reference for V1.00 |
[Summary view] [Print] [Text view]
1 <?php /* PROJECTS $Id: vw_idx_projects.php 139 2008-04-05 14:21:51Z pedroix $ $URL: https://web2project.svn.sourceforge.net/svnroot/web2project/trunk/modules/projects/vw_idx_projects.php $ */ 2 if (!defined('W2P_BASE_DIR')) { 3 die('You should not access this file directly.'); 4 } 5 6 global $AppUI, $projects, $company_id, $pstatus, $project_statuses, $currentTabId, $currentTabName, $is_tabbed, $st_projects_arr; 7 8 $perms = &$AppUI->acl(); 9 $df = $AppUI->getPref('SHDATEFORMAT'); 10 11 $page = w2PgetParam($_GET, 'page', 1); 12 $xpg_pagesize = 30; 13 $xpg_min = $xpg_pagesize * ($page - 1); // This is where we start our record set from 14 15 //LIMIT ' . $xpg_min . ', ' . $xpg_pagesize ; 16 // counts total recs from selection 17 18 $projectStatuses = w2PgetSysVal('ProjectStatus'); 19 20 //Tabbed view 21 if ($is_tabbed) { 22 $project_status_filter = $currentTabId; 23 24 //Lets fix the status filter for Not defined, All, All Active and Archived 25 //All 26 if ($currentTabId == 0) { 27 $project_status_filter = -1; 28 //All Active 29 } elseif ($currentTabId == 1) { 30 $project_status_filter = -2; 31 //Archived 32 } elseif ($currentTabId == count($project_statuses) - 1) { 33 $project_status_filter = -3; 34 //The other project status 35 } else { 36 $project_status_filter = ($projectStatuses[0] ? $currentTabId - 2 : $currentTabId - 1); 37 } 38 39 $show_all_projects = false; 40 //If we are on All, All active or Archived then show the Status column 41 if (($project_status_filter == -1 || $project_status_filter == -2 || $project_status_filter == -3)) { 42 $show_all_projects = true; 43 } 44 45 $all_projects = $projects; 46 47 //Lets remove the unnecessary projects: 48 if ($project_status_filter == -1) { 49 //All 50 //Don't do nothing because we are going to show evey project 51 } elseif ($project_status_filter == -2) { 52 //All active 53 $key = 0; 54 foreach ($projects as $project) { 55 if (!$project['project_active']) { 56 unset($projects[$key]); 57 } 58 $key++; 59 } 60 $key = 0; 61 foreach ($projects as $project) { 62 $tmp_projects[$key] = $project; 63 $key++; 64 } 65 $projects = $tmp_projects; 66 } elseif ($project_status_filter == -3) { 67 //Archived 68 $key = 0; 69 foreach ($projects as $project) { 70 if ($project['project_active']) { 71 unset($projects[$key]); 72 } 73 $key++; 74 } 75 $key = 0; 76 foreach ($projects as $project) { 77 $tmp_projects[$key] = $project; 78 $key++; 79 } 80 $projects = $tmp_projects; 81 } else { 82 //The Status themselves 83 $key = 0; 84 foreach ($projects as $project) { 85 if ($project['project_status'] != $project_status_filter || !$project['project_active']) { 86 unset($projects[$key]); 87 } 88 $key++; 89 } 90 $key = 0; 91 foreach ($projects as $project) { 92 $tmp_projects[$key] = $project; 93 $key++; 94 } 95 $projects = $tmp_projects; 96 } 97 98 $xpg_totalrecs = count($projects); 99 100 // How many pages are we dealing with here ?? 101 $xpg_total_pages = ($xpg_totalrecs > $xpg_pagesize) ? ceil($xpg_totalrecs / $xpg_pagesize) : 0; 102 103 shownavbar_links_prj($xpg_totalrecs, $xpg_pagesize, $xpg_total_pages, $page); 104 } else { 105 //flat view 106 $project_status_filter = $currentTabId; 107 108 if ($currentTabId == count($project_statuses) - 1) { 109 $project_status_filter = -3; 110 //The other project status 111 } else { 112 $project_status_filter = ($projectStatuses[0] ? $currentTabId : $currentTabId + 1); 113 } 114 $xpg_totalrecs = count($projects); 115 $xpg_pagesize = count($projects); 116 } 117 118 ?> 119 120 <form action='./index.php' method='get'> 121 122 123 <table id="tblProjects" width="100%" border="0" cellpadding="3" cellspacing="1" class="tbl"> 124 <tr> 125 <th nowrap="nowrap"> 126 <a href="?m=projects&orderby=project_color_identifier" class="hdr"><?php echo $AppUI->_('Color'); ?></a> 127 </th> 128 <th nowrap="nowrap"> 129 <a href="?m=projects&orderby=project_priority" class="hdr"><?php echo $AppUI->_('P'); ?></a> 130 </th> 131 <th nowrap="nowrap"> 132 <a href="?m=projects&orderby=project_name" class="hdr"><?php echo $AppUI->_('Project Name'); ?></a> 133 </th> 134 <th nowrap="nowrap"> 135 <a href="?m=projects&orderby=company_name" class="hdr"><?php echo $AppUI->_('Company'); ?></a> 136 </th> 137 <th nowrap="nowrap"> 138 <a href="?m=projects&orderby=project_start_date" class="hdr"><?php echo $AppUI->_('Start'); ?></a> 139 </th> 140 <th nowrap="nowrap"> 141 <a href="?m=projects&orderby=project_end_date" class="hdr"><?php echo $AppUI->_('End'); ?></a> 142 </th> 143 <th nowrap="nowrap"> 144 <a href="?m=projects&orderby=project_actual_end_date" class="hdr"><?php echo $AppUI->_('Actual'); ?></a> 145 </th> 146 <th nowrap="nowrap"> 147 <a href="?m=projects&orderby=task_log_problem" class="hdr"><?php echo $AppUI->_('LP'); ?></a> 148 </th> 149 <th nowrap="nowrap"> 150 <a href="?m=projects&orderby=user_username" class="hdr"><?php echo $AppUI->_('Owner'); ?></a> 151 </th> 152 <th nowrap="nowrap"> 153 <a href="?m=projects&orderby=total_tasks" class="hdr"><?php echo $AppUI->_('Tasks'); ?></a> 154 <a href="?m=projects&orderby=my_tasks" class="hdr">(<?php echo $AppUI->_('My'); ?>)</a> 155 </th> 156 <th nowrap="nowrap"> 157 <?php echo $AppUI->_('Selection'); ?> 158 </th> 159 <?php 160 if ($show_all_projects) { 161 ?> 162 <th nowrap="nowrap"> 163 <?php echo $AppUI->_('Status'); ?> 164 </th> 165 <?php 166 } 167 ?> 168 </tr> 169 170 <?php 171 $none = true; 172 173 //foreach ($projects as $row) { 174 for ($i = ($page - 1) * $xpg_pagesize; $i < $page * $xpg_pagesize && $i < $xpg_totalrecs; $i++) { 175 $row = $projects[$i]; 176 177 if (($show_all_projects || ($row['project_active'] && $row['project_status'] == $project_status_filter) && $is_tabbed) || //tabbed view 178 (($row['project_active'] && $row['project_status'] == $project_status_filter) && !$is_tabbed) || //flat active projects 179 ((!$row['project_active'] && $project_status_filter == -3) && !$is_tabbed) //flat archived projects 180 ) { 181 182 //unset($st_projects_arr); 183 $st_projects_arr = array(); 184 $sp_obj = new CProject(); 185 $sp_obj->load($project_id); 186 if ($row['project_id'] == $row['project_original_parent']) { 187 if ($project_status_filter == -2) { 188 $structprojects = getStructuredProjects($row['project_original_parent'], '-1', true); 189 } else { 190 $structprojects = getStructuredProjects($row['project_original_parent'], '-1'); 191 } 192 } else { 193 $st_projects_arr[0][0] = $row_proj; 194 $st_projects_arr[0][1] = 0; 195 } 196 197 $st_projects_counter = 1; 198 foreach ($st_projects_arr as $st_project) { 199 $multiproject_id = 0; 200 $project = $st_project[0]; 201 $level = $st_project[1]; 202 if ($project['project_id']) { 203 //$row_st = new CProject(); 204 //$row_st->load($project['project_id']); 205 if ($is_tabbed) { 206 $row = $all_projects[getProjectIndex($all_projects, $project['project_id'])]; 207 } else { 208 $row = $projects[getProjectIndex($projects, $project['project_id'])]; 209 } 210 //foreach(get_object_vars($row_st) as $field=>$data) { 211 // $row[$field] = $data; 212 //} 213 } 214 $none = false; 215 $start_date = intval($row['project_start_date']) ? new CDate($row['project_start_date']) : null; 216 $end_date = intval($row['project_end_date']) ? new CDate($row['project_end_date']) : null; 217 $actual_end_date = intval($row['project_actual_end_date']) ? new CDate($row['project_actual_end_date']) : null; 218 $style = (($actual_end_date > $end_date) && !empty($end_date)) ? 'style="color:red; font-weight:bold"' : ''; 219 220 $s = ''; 221 if ($level) { 222 $s .= '<tr style="display:none" id="multiproject_tr_' . $row['project_original_parent'] . '_' . $row['project_id'] . '_">'; 223 $s .= '<div id="multiproject_' . $row['project_original_parent'] . '_' . $row['project_id'] . '">'; 224 } else { 225 $s .= '<tr>'; 226 } 227 $s .= '<td width="65" align="right" style="border: outset #eeeeee 1px;background-color:#' . $row['project_color_identifier'] . '">'; 228 $s .= '<font color="' . bestColor($row['project_color_identifier']) . '">' . sprintf('%.1f%%', $row['project_percent_complete']) . '</font></td>'; 229 230 $s .= '<td align="center">'; 231 if ($row['project_priority'] < 0) { 232 $s .= '<img src="' . w2PfindImage('icons/priority-' . -$row['project_priority'] . '.gif') . '" width=13 height=16>'; 233 } elseif ($row['project_priority'] > 0) { 234 $s .= '<img src="' . w2PfindImage('icons/priority+' . $row['project_priority'] . '.gif') . '" width=13 height=16>'; 235 } 236 $s .= '</td><td width="40%">'; 237 238 $q = new DBQuery(); 239 $q->addTable('projects'); 240 $q->addQuery('COUNT(project_id)'); 241 $q->addWhere('project_original_parent = ' . (int)$row['project_id']); 242 $count_projects = $q->loadResult(); 243 244 if ($level) { 245 $s .= str_repeat(' ', ($level - 1)) . '<img src="' . w2PfindImage('corner-dots.gif') . '" width="16" height="12" border="0"> ' . '<a href="./index.php?m=projects&a=view&project_id=' . $row["project_id"] . '">' . (nl2br($row['project_description']) ? w2PtoolTip($row['project_name'], nl2br($row['project_description']), true) : '') . $row["project_name"] . (nl2br($row['project_description']) ? w2PendTip() : '') . '</a>'; 246 } elseif ($count_projects > 1 && !$level) { 247 $s .= w2PtoolTip('multi-project parent', 'this project is a parent on a multi-project structure<br />click to show/hide its children.') . '<a href="javascript: void(0);" onclick="expand_collapse(\'multiproject_tr_' . $row["project_id"] . '_\', \'tblProjects\')"><img id="multiproject_tr_' . $row["project_id"] . '__expand" src="' . w2PfindImage('icons/expand.gif') . '" width="12" height="12" border="0"><img id="multiproject_tr_' . $row["project_id"] . '__collapse" src="' . w2PfindImage('icons/collapse.gif') . '" width="12" height="12" border="0" style="display:none"></a> ' . '<a href="./index.php?m=projects&a=view&project_id=' . $row["project_id"] . '">' . (nl2br($row['project_description']) ? w2PtoolTip($row['project_name'], nl2br($row['project_description']), true) : '') . $row['project_name'] . (nl2br($row['project_description']) ? w2PendTip() : '') . '</a>' . w2PendTip(); 248 } else { 249 $s .= '<a href="./index.php?m=projects&a=view&project_id=' . $row["project_id"] . '">' . (nl2br($row['project_description']) ? w2PtoolTip($row['project_name'], nl2br($row['project_description']), true) : '') . $row["project_name"] . (nl2br($row['project_description']) ? w2PendTip() : '') . '</a>'; 250 } 251 $s .= '</td><td width="30%"><a href="?m=companies&a=view&company_id=' . $row['project_company'] . '" ><span title="' . (nl2br(htmlspecialchars($row['company_description'])) ? htmlspecialchars($row['company_name'], ENT_QUOTES) . '::' . nl2br(htmlspecialchars($row['company_description'])) : '') . '" >' . htmlspecialchars($row['company_name'], ENT_QUOTES) . '</span></a></td>'; 252 253 $s .= '<td nowrap="nowrap" align="center">' . ($start_date ? $start_date->format($df) : '-') . '</td>'; 254 $s .= '<td nowrap="nowrap" align="center">' . ($end_date ? $end_date->format($df) : '-') . '</td>'; 255 $s .= '<td nowrap="nowrap" align="center">'; 256 $s .= $actual_end_date ? '<a href="?m=tasks&a=view&task_id=' . $row['critical_task'] . '">' : ''; 257 $s .= $actual_end_date ? '<span ' . $style . '>' . $actual_end_date->format($df) . '</span>' : '-'; 258 $s .= $actual_end_date ? '</a>' : ''; 259 $s .= '</td><td align="center">'; 260 $s .= $row['task_log_problem'] ? '<a href="?m=tasks&a=index&f=all&project_id=' . $row['project_id'] . '">' : ''; 261 $s .= $row['task_log_problem'] ? w2PshowImage('icons/dialog-warning5.png', 16, 16, 'Problem', 'Problem') : '-'; 262 $s .= $row['task_log_problem'] ? '</a>' : ''; 263 $s .= '</td><td nowrap="nowrap">' . htmlspecialchars($row['owner_name'], ENT_QUOTES) . '</td><td align="center" nowrap="nowrap">'; 264 $s .= $row['total_tasks'] . ($row['my_tasks'] ? ' (' . $row['my_tasks'] . ')' : ''); 265 $s .= '</td><td align="center"><input type="checkbox" name="project_id[]" value="' . $row['project_id'] . '" /></td>'; 266 267 if ($show_all_projects) { 268 $s .= '<td align="left" nowrap="nowrap">'; 269 $s .= $row['project_status'] == 0 ? $AppUI->_('Not Defined') : ($projectStatuses[0] ? $project_statuses[$row['project_status'] + 2] : $project_statuses[$row['project_status'] + 1]); 270 $s .= '</td>'; 271 } 272 273 if ($level) { 274 $s .= '</div>'; 275 $s .= '</tr>'; 276 } else { 277 $s .= '</tr>'; 278 } 279 echo $s; 280 } 281 //$st_projects_counter = 1; 282 } 283 } 284 if ($none) { 285 echo '<tr><td colspan="12">' . $AppUI->_('No projects available') . '</td></tr>'; 286 } else { 287 ?> 288 <tr> 289 <td colspan="12" align="right"> 290 <?php 291 $s = '<input type="submit" class="button" value="' . $AppUI->_('Update projects status') . '" />'; 292 $s .= '<input type="hidden" name="update_project_status" value="1" />'; 293 $s .= '<input type="hidden" name="m" value="projects" />'; 294 $s .= arraySelect($pstatus, 'project_status', 'size="1" class="text"', $project_status_filter + 1, true); 295 echo $s; 296 // 2 will be the next step 297 } 298 ?> 299 </td> 300 </tr> 301 </table> 302 </form> 303 <?php 304 if ($is_tabbed) { 305 shownavbar_links_prj($xpg_totalrecs, $xpg_pagesize, $xpg_total_pages, $page); 306 } 307 ?>
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
| Generated: Fri Jan 9 03:00:02 2009 | Cross-referenced by PHPXref 0.7 |