3 * GForge Task Mgr And Tracker Integration
5 * Copyright 2003 GForge, LLC
12 http://dev.gforge.org/pm/task.php?func=addartifact
13 &add_artifact_id=$add_artifact_id
19 //http://dev.gforge.org/pm/task.php?group_id=1&group_project_id=3&func=addtask
20 //$related_artifact_summary
21 //$related_artifact_id
24 require_once('../env.inc.php');
25 require_once $gfwww.'include/pre.php';
26 require_once $gfcommon.'pm/ProjectGroupFactory.class.php';
27 require_once $gfcommon.'pm/ProjectTaskFactory.class.php';
29 $group_project_id = getIntFromRequest('group_project_id');
30 $project_task_id = getIntFromRequest('project_task_id');
31 $aid = getIntFromRequest('aid');
33 $a=new Artifact($ath,$aid);
34 if (!$a || !is_object($a)) {
35 exit_error('ERROR',_('Artifact Could Not Be Created'));
39 // Add a relationship from this artifact to an existing task
41 if (getStringFromRequest('add_to_task')) {
42 $offset = getStringFromRequest('offset');
43 $_order = getStringFromRequest('_order');
44 $max_rows = getIntFromRequest('max_rows');
45 $set = getStringFromRequest('set');
46 $_assigned_to = getStringFromRequest('_assigned_to');
47 $_status = getStringFromRequest('_status');
48 $_category_id = getStringFromRequest('_category_id');
50 // $group object is created in tracker.php
52 $pg=new ProjectGroup($group,$group_project_id);
53 if (!$pg || !is_object($pg)) {
54 exit_error('Error',_('Could Not Get ProjectGroup'));
55 } elseif ($pg->isError()) {
56 exit_error('Error',$pg->getErrorMessage());
60 $ptf = new ProjectTaskFactory($pg);
61 if (!$ptf || !is_object($ptf)) {
62 exit_error('Error',_('Could Not Get ProjectTaskFactory'));
63 } elseif ($ptf->isError()) {
64 exit_error('Error',$ptf->getErrorMessage());
67 $ptf->setup($offset,$_order,$max_rows,$set,$_assigned_to,$_status,$_category_id);
68 if ($ptf->isError()) {
69 exit_error('Error',$ptf->getErrorMessage());
72 $pt_arr =& $ptf->getTasks();
74 if ($ptf->isError()) {
75 exit_error('Error',$ptf->getErrorMessage());
77 exit_error('Error', _('No Existing Tasks Found'));
81 $ath->header(array('atid'=>$ath->getID()));
84 <h3>'._('Build Relationship Between Tracker Items and Task Manager').'</h3>
86 <form name="foo" action="'. getStringFromServer('PHP_SELF') .'?func=taskmgr&group_id='.$group_id.'&atid='.$atid.'&aid='.$aid.'" method="post">
87 <p><strong>'._('Tracker Item').':</strong> [#'.$a->getID().'] '.$a->getSummary().'</p>
88 <p><strong>'._('Tasks Project').':</strong><br />';
90 <input type="hidden" name="group_project_id" value="'.$pg->getID().'" /></p>
92 <strong>'._('Task').':</strong></p>
93 <select name="project_task_id">';
94 for ($i=0; $i<count($pt_arr); $i++) {
95 echo '<option value="'.$pt_arr[$i]->getID().'">'.$pt_arr[$i]->getSummary().'</option>';
98 <input type="submit" name="done_adding" value="'._('Add Relationship to Selected Task') . '" />
102 // Add the relationship and display finished message
104 } elseif (getStringFromRequest('done_adding')) {
106 Header ('Location: '.util_make_url ('/pm/task.php?group_id='.$group_id.'&group_project_id='.$group_project_id.'&project_task_id='.$project_task_id.'&func=addartifact&add_artifact_id[]='. $a->getID()) );
109 // Create a new task and relate it to this artifact
111 } elseif (getStringFromRequest('new_task')) {
113 Header ('Location: '.util_make_url ('/pm/task.php?group_id='.$group_id.'&group_project_id='.$group_project_id.'&func=addtask&related_artifact_summary='. urlencode($a->getSummary()) .'&related_artifact_id='. $a->getID()) );
116 // Show the list of ProjectGroups available
120 $pgf=new ProjectGroupFactory($group);
121 if (!$pgf || !is_object($pgf)) {
122 exit_error('Error',_('Could Not Get Factory'));
123 } elseif ($pgf->isError()) {
124 exit_error('Error',$pgf->getErrorMessage());
127 $pg_arr =& $pgf->getProjectGroups();
129 if ($pgf->isError()) {
130 exit_error('Error',$pgf->getErrorMessage());
132 exit_error('Error',_('No Existing Project Groups Found'));
136 $ath->header(array('atid'=>$ath->getID()));
138 echo '<h3>'._('Build Relationship Between Tracker Items and Task Manager').'</h3>
139 <form name="foo" action="'. getStringFromServer('PHP_SELF') .'?func=taskmgr&group_id='.$group_id.'&atid='.$atid.'&aid='.$aid.'" method="post">
140 <p><strong>'._('Tracker Item').':</strong> [#'.$a->getID().'] '.$a->getSummary().'</p>
141 <p><strong>'._('Tasks Project').':</strong></p>
142 <select name="group_project_id">';
143 for ($i=0; $i<count($pg_arr); $i++) {
144 echo '<option value="'.$pg_arr[$i]->getID().'">'.$pg_arr[$i]->getName().'</option>';
146 echo '</select><br />
147 <input type="submit" name="add_to_task" value="'._('Add Relation To Existing Task.').'." /><br />
148 <input type="submit" name="new_task" value="'._('Create New Task').'" />
153 $ath->footer(array());