![]() |
|---|
| [ Index ] |
Source Code Reference for V1.00 |
[Summary view] [Print] [Text view]
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'); ?> </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'); ?> </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'); ?> </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='' /> 119 <?php echo arraySelect($sdurntype, 'bulk_task_durntype', 'style="width=120px" size="1" class="text"', '', true); ?> 120 </td> 121 <td width="100%"> </td> 122 </tr> 123 <tr> 124 <th width="15%"><?php echo $AppUI->_('Owner'); ?> </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') . ' </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"> <img id="assign_collapse" src="<?php echo w2PfindImage('icons/collapse.gif'); ?>" width="12" height="12" border="0" style="display:none"> </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'); ?> </th> 154 <td width="130"><?php echo arraySelect($sunassign, 'bulk_task_unassign', 'style="width:130px" class="text"', ''); ?></td> 155 <td width="100%"> </td> 156 </tr> 157 <tr> 158 <th width="15%"><?php echo $AppUI->_('Priority'); ?> </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'); ?> </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'); ?> </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%"> </td> 171 </tr> 172 <tr> 173 <th width="15%"><?php echo $AppUI->_('Access'); ?> </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'); ?> </th> 176 <td width="130"><?php echo arraySelect($spercent, 'bulk_task_percent_complete', 'class="text"', ''); ?> %</td> 177 <th width="15%"><?php echo $AppUI->_('Dependency'); ?> </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%"> </td> 186 </tr> 187 <tr> 188 <th width="15%" nowrap="nowrap"><?php echo $AppUI->_('Date Move (Days)'); ?> </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'); ?> </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'); ?> </th> 195 <td width="130"><?php echo arraySelect($sprojects, 'bulk_task_project', 'style="width:300px" class="text"', ''); ?></td> 196 <td width="100%"> </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(' ', $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 ?>
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 |