3 * GForge Project Management Facility
5 * Copyright 2002 GForge, LLC
12 By Tim Perdue, Sourceforge, 11/99
13 Heavy rewrite by Tim Perdue April 2000
15 Total rewrite in OO and GForge coding guidelines 12/2002 by Tim Perdue
18 require_once $gfcommon.'include/Error.class.php';
19 require_once $gfcommon.'pm/ProjectTask.class.php';
21 class ProjectTaskHTML extends ProjectTask {
23 function ProjectTaskHTML(&$ProjectGroup, $project_task_id=false, $arr=false) {
24 return $this->ProjectTask($ProjectGroup,$project_task_id,$arr);
27 function multipleDependBox ($name='dependent_on[]') {
28 $result=$this->getOtherTasks();
29 //get the data so we can mark items as SELECTED
30 $arr2 =& array_keys($this->getDependentOn());
31 return html_build_multiple_select_box ($result,$name,$arr2);
34 function multipleAssignedBox ($name='assigned_to[]') {
35 $result = $this->ProjectGroup->getTechnicians ();
36 //get the data so we can mark items as SELECTED
37 $arr2 =& $this->getAssignedTo();
38 return html_build_multiple_select_box ($result,$name,$arr2);
42 function showDependentTasks () {
44 $result=db_query_params ('SELECT project_task.project_task_id,project_task.summary
45 FROM project_task,project_dependencies
46 WHERE project_task.project_task_id=project_dependencies.project_task_id
47 AND project_dependencies.is_dependent_on_task_id=$1',
48 array($this->getID() ));
49 $rows=db_numrows($result);
52 echo '<h3>'._('Tasks That Depend on This Task').'</h3>';
55 $title_arr[]=_('Task Id');
56 $title_arr[]=_('Task Summary');
58 echo $GLOBALS['HTML']->listTableTop ($title_arr);
60 for ($i=0; $i < $rows; $i++) {
62 <tr '. $GLOBALS['HTML']->boxGetAltRowStyle($i) .'>
64 .util_make_link ('/pm/task.php?func=detailtask&project_task_id='. db_result($result, $i, 'project_task_id'). '&group_id='. $this->ProjectGroup->Group->getID() . '&group_project_id='. $this->ProjectGroup->getID(), db_result($result, $i, 'project_task_id')).'</td>
65 <td>'.db_result($result, $i, 'summary').'</td></tr>';
68 echo $GLOBALS['HTML']->listTableBottom();
71 echo '<h3>'._('No Tasks are Dependent on This Task').'</h3>';
76 function showRelatedArtifacts() {
77 $res=$this->getRelatedArtifacts();
79 $rows=db_numrows($res);
81 $perm =& $this->ProjectGroup->Group->getPermission( session_get_user() );
83 if (!$perm || !is_object($perm) || !$perm->isPMAdmin()) {
89 echo '<h3>'._('Related Tracker Items').'</h3>';
92 $title_arr[]=_('Task Summary');
93 $title_arr[]=_('Tracker');
94 $title_arr[]=_('Open Date');
95 (($is_admin) ? $title_arr[]=_('Remove Relation') : '');
97 echo $GLOBALS['HTML']->listTableTop ($title_arr);
99 for ($i=0; $i < $rows; $i++) {
101 <tr '. $GLOBALS['HTML']->boxGetAltRowStyle($i) .'>
102 <td>'.util_make_link ('/tracker/?func=detail&aid='.db_result($res,$i,'artifact_id').'&group_id='.db_result($res,$i,'group_id').'&atid='.db_result($res,$i,'group_artifact_id'), db_result($res,$i,'summary')).'</td>
103 <td>'. db_result($res,$i,'name') .'</td>
104 <td>'. date(_('Y-m-d H:i'),db_result($res,$i,'open_date')) .'</td>'.
105 (($is_admin) ? '<td><input type="checkbox" name="rem_artifact_id[]" value="'.db_result($res,$i,'artifact_id').'"></td>' : '').
109 echo $GLOBALS['HTML']->listTableBottom();
112 <h3>'._('No Related Tracker Items Have Been Added').'</h3>';
116 function showMessages() {
118 Show the details rows from task_history
120 $result=$this->getMessages();
121 $rows=db_numrows($result);
124 echo '<h3>'._('Followups').'</h3>';
127 $title_arr[]=_('Comment');
128 $title_arr[]=_('Date');
129 $title_arr[]=_('By');
131 echo $GLOBALS['HTML']->listTableTop ($title_arr);
133 for ($i=0; $i < $rows; $i++) {
135 <tr '. $GLOBALS['HTML']->boxGetAltRowStyle($i) .'>
136 <td>'. nl2br(db_result($result, $i, 'body')).'</td>
137 <td valign="top">'.date(_('Y-m-d H:i'),db_result($result, $i, 'postdate')).'</td>
138 <td valign="top">'.db_result($result, $i, 'user_name').'</td></tr>';
141 echo $GLOBALS['HTML']->listTableBottom();
145 <h3>'._('No Comments Have Been Added').'</h3>';
150 function showHistory() {
152 show the project_history rows that are
153 relevant to this project_task_id, excluding details
155 $result=$this->getHistory();
156 $rows=db_numrows($result);
160 echo '<h3>'._('Task Change History').'</h3>';
163 $title_arr[]=_('Field');
164 $title_arr[]=_('Old Value');
165 $title_arr[]=_('Date');
166 $title_arr[]=_('By');
168 echo $GLOBALS['HTML']->listTableTop ($title_arr);
170 for ($i=0; $i < $rows; $i++) {
171 $field=db_result($result, $i, 'field_name');
174 <tr class="mod_task_field" '. $GLOBALS['HTML']->boxGetAltRowStyle($i) .'><td>'.$field.'</td><td>';
176 if ($field == 'status_id') {
177 //tdP - convert to actual status name
178 echo db_result($result, $i, 'old_value');
180 } else if ($field == 'category_id') {
181 //tdP convert to actual category_name
182 echo db_result($result, $i, 'old_value');
184 } else if ($field == 'start_date') {
186 echo date('Y-m-d',db_result($result, $i, 'old_value'));
188 } else if ($field == 'end_date') {
190 echo date('Y-m-d',db_result($result, $i, 'old_value'));
194 echo db_result($result, $i, 'old_value');
198 <td>'. date(_('Y-m-d H:i'),db_result($result, $i, 'mod_date')) .'</td>
199 <td>'.db_result($result, $i, 'user_name').'</td></tr>';
202 echo $GLOBALS['HTML']->listTableBottom();
206 <h3>'._('No Changes Have Been Made').'</h3>';
214 // c-file-style: "bsd"