function doChildren($list, $id, $uid, $level, $maxlevels, $display_week_hours, $ss, $se) { $tmp = ""; if ($maxlevels == -1 || $level < $maxlevels) { foreach ($list as $task) { if ($task->task_parent == $id && $task->task_id != $task->task_parent) { // we have a child, do we have the user as a member? if (isMemberOfTask($list, $uid, $task)) { $tmp .= displayTask($list, $task, $level, $display_week_hours, $ss, $se, $uid); $tmp .= doChildren($list, $task->task_id, $uid, $level + 1, $maxlevels, $display_week_hours, $ss, $se); } } } } return $tmp; }
function isMemberOfTask($list, $Lusers, $user_id, $task) { //check for given task id foreach ($list as $task_id => $my_task) { if ($my_task->task_id == $task->task_id) { foreach ($Lusers[$task_id] as $task_user_id => $user_data) { if ($task_user_id == $user_id) { return true; } } } // we have a child task if ($my_task->task_parent == $task->task_id && $my_task->task_id != $task->task_id) { if (isMemberOfTask($list, $Lusers, $user_id, $my_task)) { return true; } } } return false; }
$tmpuser .= '<td bgcolor="#D0D0D0"><table width="100%"><tr>'; $tmpuser .= '<td align="left"> <a href="javascript:chAssignment(' . $user_id . ', 0, 1);"><img src="' . w2PfindImage('remove.png', 'tasks') . '" border="0" alt="' . $AppUI->_('Unassign User') . '" title="' . $AppUI->_('Unassign User from Task') . '" /></a> ' . '<a href="javascript:chAssignment(' . $user_id . ', 1, 0);"><img src="' . w2PfindImage('exchange.png', 'tasks') . '" border="0" alt="' . $AppUI->_('Hand Over') . '" title="' . $AppUI->_('Unassign User from Task and assign to selected Users') . '" /></a> ' . '<a href="javascript:chAssignment(' . $user_id . ', 0, 0);"><img src="' . w2PfindImage('add.png', 'tasks') . '" border="0" alt="' . $AppUI->_('Assign Users') . '" title="' . $AppUI->_('Assign selected Users to selected Tasks') . '" /></a></td>'; $tmpuser .= '<td align="center"><select class="text" name="percentage_assignment" title="' . $AppUI->_('Assign with Percentage') . '">'; for ($i = 0; $i <= 100; $i += 5) { $tmpuser .= '<option ' . ($i == 30 ? 'selected="true"' : '') . ' value="' . $i . '">' . $i . '%</option>'; } $tmpuser .= '</select></td>'; $tmpuser .= '<td align="center">' . arraySelect($taskPriority, 'user_task_priority', 'onchange="javascript:chPriority(' . $user_id . ');" size="1" class="text" title="' . $AppUI->_('Change User specific Task Priority of selected Tasks') . '"', 999, true); $tmpuser .= '</td></tr></table></td>'; $tmpuser .= '</tr>'; $tmptasks = ''; $actual_date = $start_date; $zi = 0; foreach ($task_list as $task) { if (isMemberOfTask($task_list, $Ntasks, $user_id, $task)) { $tmptasks .= displayTask($task_list, $task, 0, $display_week_hours, $sss, $sse, $user_id); // Get children $tmptasks .= doChildren($task_list, $Ntasks, $task->task_id, $user_id, 1, $max_levels, $display_week_hours, $sss, $sse); } else { // we have to process children task the user // is member of, but member of their parent task. // Also show the parent task then before the children. $tmpChild = ''; $tmpChild = doChildren($task_list, $Ntasks, $task->task_id, $user_id, 1, $max_levels, $display_week_hours, $sss, $sse); if ($tmpChild > '') { $tmptasks .= displayTask($task_list, $task, 0, $display_week_hours, $sss, $sse, $user_id); $tmptasks .= $tmpChild; } } }
function doChildren($list, $N, $id, $uid, $level, $maxlevels, $display_week_hours, $ss, $se) { $tmp = ''; if ($maxlevels == -1 || $level < $maxlevels) { for ($c = 0; $c < $N; $c++) { $task = $list[$c]; if ($task->task_parent == $id and isChildTask($task)) { // we have a child, do we have the user as a member? if (isMemberOfTask($list, $N, $uid, $task)) { $tmp .= displayTask($list, $task, $level, $display_week_hours, $ss, $se, $uid); $tmp .= doChildren($list, $N, $task->task_id, $uid, $level + 1, $maxlevels, $display_week_hours, $ss, $se); } } } } return $tmp; }
function isMemberOfTask($list, $Lusers, $N, $user_id, $task) { for ($i = 0; $i < $N && $list[$i]->task_id != $task->task_id; $i++) { } $users = $Lusers[$i]; //$users=$Lusers[$task->getAssignedUsers(); foreach ($users as $task_user_id => $user_data) { if ($task_user_id == $user_id) { return true; } } // check child tasks if any for ($c = 0; $c < $N; $c++) { $ntask = $list[$c]; if ($ntask->task_parent == $task->task_id and isChildTask($ntask)) { // we have a child task if (isMemberOfTask($list, $Lusers, $N, $user_id, $ntask)) { return true; } } } return false; }