[ Index ]

Source Code Reference for V1.00

title

Body

[close]

/modules/projectdesigner/ -> vw_actions.php (source)

   1  <?php /* $Id: vw_actions.php 115 2008-03-21 17:20:33Z pedroix $ $URL: https://web2project.svn.sourceforge.net/svnroot/web2project/trunk/modules/projectdesigner/vw_actions.php $ */
   2  if (!defined('W2P_BASE_DIR')) {
   3      die('You should not access this file directly.');
   4  }
   5  include_once ($AppUI->getModuleClass('tasks'));
   6  global $task_access, $task_priority, $project_id;
   7  
   8  $type = w2Pgetsysval('TaskType');
   9  $stype = array('' => '(Type)') + $type;
  10  $priority = w2Pgetsysval('TaskPriority');
  11  $spriority = array('' => '(Priority)') + $priority;
  12  $stask_access = array('' => '(Access)') + $task_access;
  13  $durntype = w2PgetSysval('TaskDurationType');
  14  $sdurntype = array('' => '(Duration Type)') + $durntype;
  15  $sother = array('' => '(Other Operations)', '1' => 'Mark Tasks as Finished', '8' => 'Mark Tasks as Active', '9' => 'Mark Tasks as Inactive', '2' => 'Mark Tasks as Milestones', '3' => 'Mark Tasks as Non Milestone', '4' => 'Mark Tasks as Dynamic', '5' => 'Mark Tasks as Non Dynamic', '6' => 'Add Task Reminder', '7' => 'Remove Task Reminder', '10' => 'Remove Tasks Description', '99' => 'Delete Tasks');
  16  
  17  //Pull all users

  18  $users = $perms->getPermittedUsers();
  19  $sowners = array('' => '(Task Owner)') + $users;
  20  $sassign = array('' => '(Assign User)') + $users;
  21  $sunassign = array('' => '(Unassign User)') + $users;
  22  
  23  $obj = &new CTask;
  24  $allowedTasks = $obj->getAllowedSQL($AppUI->user_id, 'tasks.task_id');
  25  
  26  $obj->load($task_id);
  27  $task_project = $project_id ? $project_id : ($obj->task_project ? $obj->task_project : 0);
  28  // let's get root tasks

  29  $q = new DBQuery;
  30  $q->addQuery('task_id, task_name, task_end_date, task_start_date, task_milestone, task_parent, task_dynamic');
  31  $q->addTable('tasks');
  32  $q->addWhere('task_project = ' . (int)$task_project);
  33  $q->addWhere('task_id = task_parent');
  34  $q->addOrder('task_start_date');
  35  $root_tasks = $q->loadHashList('task_id');
  36  $q->clear();
  37  $projTasks = array();
  38  global $task_parent_options;
  39  $task_parent_options = '';
  40  
  41  // Now lets get non-root tasks, grouped by the task parent

  42  $q = new DBQuery;
  43  $q->addQuery('task_id, task_name, task_end_date, task_start_date, task_milestone, task_parent, task_dynamic');
  44  $q->addTable('tasks');
  45  $q->addWhere('task_project = ' . (int)$task_project);
  46  $q->addWhere('task_id <> task_parent');
  47  $q->addOrder('task_start_date');
  48  
  49  $parents = array();
  50  $projTasksWithEndDates = array(0 => $AppUI->_('None')); //arrays contains task end date info for setting new task start date as maximum end date of dependenced tasks

  51  global $all_tasks;
  52  $all_tasks = array();
  53  $sub_tasks = $q->exec();
  54  
  55  if ($sub_tasks) {
  56      while ($sub_task = $q->fetchRow()) {
  57          // Build parent/child task list

  58          $parents[$sub_task['task_parent']][] = $sub_task['task_id'];
  59          $all_tasks[$sub_task['task_id']] = $sub_task;
  60          build_date_list($projTasksWithEndDates, $sub_task);
  61      }
  62  }
  63  $q->clear();
  64  // let's iterate root tasks

  65  foreach ($root_tasks as $root_task) {
  66      build_date_list($projTasksWithEndDates, $root_task);
  67      if ($root_task['task_id'] != $task_id) {
  68          constructTaskTree($root_task, $parents, $all_tasks);
  69      }
  70  }
  71  
  72  $project = new CProject();
  73  $sprojects = $project->getAllowedRecords($AppUI->user_id, 'projects.project_id,project_name', 'project_name', null, $extra, 'projects');
  74  $q = new DBQuery;
  75  $q->addTable('projects');
  76  $q->addQuery('projects.project_id, company_name');
  77  $q->addJoin('companies', 'co', 'co.company_id = project_company');
  78  $idx_companies = $q->loadHashList();
  79  $q->clear();
  80  foreach ($sprojects as $prj_id => $prj_name) {
  81      $sprojects[$prj_id] = $idx_companies[$prj_id] . ': ' . $prj_name;
  82  }
  83  asort($sprojects);
  84  $sprojects = arrayMerge(array('' => '(' . $AppUI->_('Move to Project', UI_OUTPUT_RAW) . ')'), $sprojects);
  85  
  86  //lets addthe reference to percent

  87  $spercent = arrayMerge(array('' => '(Progress)'), $percent);
  88  ?>
  89              <form name='frm_bulk' method='POST' action='?m=projectdesigner&a=do_task_bulk_aed'>
  90              <input type="hidden" name="project_id" value="<?php echo $project_id; ?>" />
  91              <input type="hidden" name="opt_view_project" value="<?php echo (isset($view_options[0]['pd_option_view_project']) ? $view_options[0]['pd_option_view_project'] : 1); ?>" />
  92              <input type="hidden" name="opt_view_gantt" value="<?php echo (isset($view_options[0]['pd_option_view_gantt']) ? $view_options[0]['pd_option_view_gantt'] : 1); ?>" />
  93              <input type="hidden" name="opt_view_tasks" value="<?php echo (isset($view_options[0]['pd_option_view_tasks']) ? $view_options[0]['pd_option_view_tasks'] : 1); ?>" />
  94              <input type="hidden" name="opt_view_actions" value="<?php echo (isset($view_options[0]['pd_option_view_actions']) ? $view_options[0]['pd_option_view_actions'] : 1); ?>" />
  95              <input type="hidden" name="opt_view_addtsks" value="<?php echo (isset($view_options[0]['pd_option_view_addtasks']) ? $view_options[0]['pd_option_view_addtasks'] : 1); ?>" />
  96              <input type="hidden" name="opt_view_files" value="<?php echo (isset($view_options[0]['pd_option_view_files']) ? $view_options[0]['pd_option_view_files'] : 1); ?>" />
  97              <input type="hidden" name="bulk_task_hperc_assign" value="" />
  98              <table id="tbl_bulk" width="100%">
  99              <tr>
 100                    <th width="15%"><?php echo $AppUI->_('Start Date'); ?>&nbsp;</th>
 101                    <td width="160" nowrap="nowrap">
 102                                    <input type='hidden' id='add_task_bulk_start_date' name='add_task_bulk_start_date' value='' />
 103                                    <input type='text' onchange="setDate('frm_bulk', 'bulk_start_date');" class='text' style='width:120px;' id='bulk_start_date' name='bulk_start_date' value='' />
 104                                    <a onclick="return showCalendar('bulk_start_date', '<?php echo $cf ?>', 'frm_bulk', '<?php echo (strpos($cf, '%p') !== false ? '12' : '24') ?>', true)" href="javascript: void(0);">
 105                                    <img src='<?php echo w2PfindImage('calendar.gif'); ?>' width='24' height='12' alt='<?php echo $AppUI->_('Calendar'); ?>' border='0' />
 106                                    </a>
 107                    </td>
 108                    <th width="15%" nowrap="nowrap"><?php echo $AppUI->_('End Date'); ?>&nbsp;</th>
 109                    <td width="160" nowrap="nowrap">
 110                                    <input type='hidden' id='add_task_bulk_end_date' name='add_task_bulk_end_date' value='' />
 111                                    <input type='text' onchange="setDate('frm_bulk', 'bulk_end_date');" class='text' style='width:120px;' id='bulk_end_date' name='bulk_end_date' value='' />
 112                                    <a onclick="return showCalendar('bulk_end_date', '<?php echo $cf ?>', 'frm_bulk', '<?php echo (strpos($cf, '%p') !== false ? '12' : '24') ?>', true)" href="javascript: void(0);">
 113                                    <img src='<?php echo w2PfindImage('calendar.gif'); ?>' width='24' height='12' alt='<?php echo $AppUI->_('Calendar'); ?>' border='0' />
 114                                    </a>
 115                    </td>
 116                    <th width="15%" nowrap="nowrap"><?php echo $AppUI->_('Duration'); ?>&nbsp;</th>
 117                    <td width="250" nowrap="nowrap">
 118                                    <input type='text' class='text' style='width:120px;text-align:right;' id='bulk_task_duration' name='bulk_task_duration' value='' />&nbsp;
 119                                    <?php echo arraySelect($sdurntype, 'bulk_task_durntype', 'style="width=120px" size="1" class="text"', '', true); ?>
 120                    </td>
 121                    <td width="100%">&nbsp;</td>
 122              </tr>                                
 123              <tr>
 124                    <th width="15%"><?php echo $AppUI->_('Owner'); ?>&nbsp;</th>
 125                    <td width="130"><?php echo arraySelect($sowners, 'bulk_task_owner', 'style="width:130px" class="text"', ''); ?></td>
 126                    <th width="15%"><?php echo $AppUI->_('Assign') . '&nbsp;</th>'; ?>
 127                    <td width="198" nowrap="nowrap"><a href="javascript: void(0);" style="display: block;" onclick="expand_selector('assign', 'frm_bulk')"><img id="assign_expand" src="<?php echo w2PfindImage('icons/expand.gif'); ?>" width="12" height="12" border="0">&nbsp;<img id="assign_collapse" src="<?php echo w2PfindImage('icons/collapse.gif'); ?>" width="12" height="12" border="0" style="display:none">&nbsp;</a>                  
 128                    <div>
 129                          <table>
 130                                <tr id="assign" style="visibility:collapse;display:none">
 131                                      <td nowrap="nowrap">
 132                                         <a href="javascript: void(0);" onclick="addUser(document.frm_bulk)">
 133                                            <img src="<?php echo w2PfindImage('add.png', $m); ?>" width="16" height="16" title="<?php echo $AppUI->_('Add Assignment'); ?>" alt="<?php echo $AppUI->_('Add Assignment'); ?>" border="0" />
 134                                        </a>
 135                                            <?php echo arraySelect($sassign, 'bulk_task_user', 'style="width:130px" class="text"', ''); ?>
 136                    <select name="bulk_task_assign_perc" class="text">
 137                    <?php
 138  for ($i = 5; $i <= 100; $i += 5) {
 139      echo '<option ' . (($i == 100) ? 'selected="true"' : '') . ' value="' . $i . '">' . $i . '%</option>';
 140  }
 141  ?>
 142                                      </select><br /><br />
 143                                         <a href="javascript: void(0);" onclick="removeUser(document.frm_bulk)">
 144                                            <img src="<?php echo w2PfindImage('remove.png', $m); ?>" width="16" height="16" title="<?php echo $AppUI->_('Remove Assignment'); ?>" alt="<?php echo $AppUI->_('Remove Assignment'); ?>" border="0" />
 145                                        </a>
 146                                            <select name="bulk_task_assign[]" id="bulk_task_assign" style="width:200px" size="6" class="text" multiple="multiple">
 147                    </select>
 148                                </td>
 149                          </tr>
 150                    </table>
 151                  </div>
 152                    </td>
 153                    <th width="15%"><?php echo $AppUI->_('Unassign'); ?>&nbsp;</th>
 154                    <td width="130"><?php echo arraySelect($sunassign, 'bulk_task_unassign', 'style="width:130px" class="text"', ''); ?></td>
 155                    <td width="100%">&nbsp;</td>
 156              </tr>                                
 157              <tr>
 158                    <th width="15%"><?php echo $AppUI->_('Priority'); ?>&nbsp;</th>
 159                    <td width="130"><?php echo arraySelect($spriority, 'bulk_task_priority', 'style="width:80px" class="text"', ''); ?></td>
 160                    <th width="15%"><?php echo $AppUI->_('Type'); ?>&nbsp;</th>
 161                    <td width="130"><?php echo arraySelect($stype, 'bulk_task_type', 'style="width:100px" class="text"', ''); ?></td>
 162                    <th width="15%"><?php echo $AppUI->_('Parent'); ?>&nbsp;</th>
 163                    <td width="130">
 164                          <select name='bulk_task_parent' style='width:300px' class='text'>
 165                              <option value=''>(<?php echo $AppUI->_('Task Parent'); ?>)</option>
 166                              <option value='0'>(<?php echo $AppUI->_('Reset to Self Task'); ?>)</option>
 167                              <?php echo $task_parent_options; ?>
 168                          </select>
 169                    </td>
 170                    <td width="100%">&nbsp;</td>
 171              </tr>                                
 172              <tr>
 173                    <th width="15%"><?php echo $AppUI->_('Access'); ?>&nbsp;</th>
 174                    <td width="130"><?php echo arraySelect($stask_access, 'bulk_task_access', 'style="width:80px" class="text"', ''); ?></td>
 175                    <th width="15%"><?php echo $AppUI->_('Progress'); ?>&nbsp;</th>
 176                    <td width="130"><?php echo arraySelect($spercent, 'bulk_task_percent_complete', 'class="text"', ''); ?> %</td>                                            
 177                    <th width="15%"><?php echo $AppUI->_('Dependency'); ?>&nbsp;</th>
 178                    <td width="130">
 179                          <select name='bulk_task_dependency' style='width:300px' class='text'>
 180                              <option value=''>(<?php echo $AppUI->_('Task Depend on Completion of...'); ?>)</option>
 181                              <option value='0'>(<?php echo $AppUI->_('Remove Dependencies'); ?>)</option>
 182                              <?php echo $task_parent_options; ?>
 183                          </select>
 184                    </td>
 185                    <td width="100%">&nbsp;</td>
 186              </tr>                                
 187              <tr>
 188                    <th width="15%" nowrap="nowrap"><?php echo $AppUI->_('Date Move (Days)'); ?>&nbsp;</th>
 189                    <td width="130">
 190                                    <input type='text' class='text' style='width:120px;text-align:right;' id='bulk_move_date' name='bulk_move_date' value='' />
 191                    </td>
 192                    <th width="15%"><?php echo $AppUI->_('Other'); ?>&nbsp;</th>
 193                    <td width="130"><?php echo arraySelect($sother, 'bulk_task_other', 'style="width:180px" class="text"', ''); ?></td>
 194                    <th width="15%"><?php echo $AppUI->_('Project'); ?>&nbsp;</th>
 195                    <td width="130"><?php echo arraySelect($sprojects, 'bulk_task_project', 'style="width:300px" class="text"', ''); ?></td>
 196                    <td width="100%">&nbsp;</td>
 197              </tr>                                
 198              <tr>
 199                    <td colspan="20" align="right"><input type="button" class="button" value="<?php echo $AppUI->_('update'); ?>" onclick="if (confirm('Are you sure you wish to apply the update(s) to the selected task(s)?')) document.frm_bulk.submit();" /></td>
 200              </tr>
 201              </table>
 202              </form>
 203  
 204  <?php
 205  function getSpaces($amount) {
 206      if ($amount == 0) {
 207          return '';
 208      }
 209      return str_repeat('&nbsp;', $amount);
 210  }
 211  
 212  function constructTaskTree($task_data, $parents, $all_tasks, $depth = 0) {
 213      global $projTasks, $all_tasks, $task_parent_options, $task_parent, $task_id;
 214  
 215      $projTasks[$task_data['task_id']] = $task_data['task_name'];
 216      $task_data['task_name'] = strlen($task_data[1]) > 45 ? substr($task_data['task_name'], 0, 45) . "..." : $task_data['task_name'];
 217      $task_parent_options .= '<option value="' . $task_data['task_id'] . '" >' . getSpaces($depth * 3) . w2PFormSafe($task_data['task_name']) . '</option>';
 218  
 219      if (isset($parents[$task_data['task_id']])) {
 220          foreach ($parents[$task_data['task_id']] as $child_task) {
 221              if ($child_task != $task_id)
 222                  constructTaskTree($all_tasks[$child_task], $parents, $all_tasks, ($depth + 1));
 223          }
 224      }
 225  }
 226  
 227  function build_date_list(&$date_array, $row) {
 228      global $tracked_dynamics, $project;
 229      // if this task_dynamic is not tracked, set end date to proj start date

 230      if (!in_array($row['task_dynamic'], $tracked_dynamics)) {
 231          $date = new CDate($project->project_start_date);
 232      } elseif ($row['task_milestone'] == 0) {
 233          $date = new CDate($row['task_end_date']);
 234      } else {
 235          $date = new CDate($row['task_start_date']);
 236      }
 237      $sdate = $date->format('%d/%m/%Y');
 238      $shour = $date->format('%H');
 239      $smin = $date->format('%M');
 240  
 241      $date_array[$row['task_id']] = array($row['task_name'], $sdate, $shour, $smin);
 242  }
 243  ?>


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