[ Index ]

Source Code Reference for V1.00

title

Body

[close]

/modules/projects/ -> vw_idx_projects.php (source)

   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('&nbsp;&nbsp;&nbsp;&nbsp;', ($level - 1)) . '<img src="' . w2PfindImage('corner-dots.gif') . '" width="16" height="12" border="0">&nbsp;' . '<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>&nbsp;' . '<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  ?>


Generated: Fri Jan 9 03:00:02 2009 Cross-referenced by PHPXref 0.7