5 * Copyright 2004 (c) GForge LLC
7 * @author Tim Perdue tim@gforge.org
10 * This file is part of GForge.
12 * GForge is free software; you can redistribute it and/or modify
13 * it under the terms of the GNU General Public License as published by
14 * the Free Software Foundation; either version 2 of the License, or
15 * (at your option) any later version.
17 * GForge is distributed in the hope that it will be useful,
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 * GNU General Public License for more details.
22 * You should have received a copy of the GNU General Public License
23 * along with GForge; if not, write to the Free Software
24 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
27 require_once('../env.inc.php');
28 require_once $gfcommon.'include/pre.php';
29 require_once(forge_get_config('jpgraph_path').'/jpgraph.php');
30 require_once(forge_get_config('jpgraph_path').'/jpgraph_pie.php');
31 require_once(forge_get_config('jpgraph_path').'/jpgraph_pie3d.php');
32 require_once $gfcommon.'reporting/Report.class.php';
33 require_once $gfcommon.'reporting/report_utils.php';
34 require_once $gfwww.'tracker/include/ArtifactTypeHtml.class.php';
36 session_require_global_perm ('forge_stats', 'read') ;
44 // Check for error, such as license key problem
46 if ($report->isError()) {
47 echo $report->getErrorMessage();
51 $area = getStringFromRequest('area');
52 $start = getIntFromRequest('start');
53 $end = getIntFromRequest('end');
60 $start=mktime(0,0,0,date('m'),1,date('Y'));;
69 if ($area == 'category') {
70 $res = db_query_params ('SELECT ac.category_name,count(*)
71 FROM artifact a, artifact_category ac
72 WHERE a.group_artifact_id=$1
73 AND a.category_id=ac.id
74 AND a.open_date BETWEEN $2 AND $3
75 GROUP BY category_name',
79 } elseif ($area == 'group') {
80 $res = db_query_params ('SELECT ag.group_name,count(*)
81 FROM artifact a, artifact_group ag
82 WHERE a.group_artifact_id=$1
83 AND a.artifact_group_id=ag.id
84 AND a.open_date BETWEEN $2 AND $3
89 } elseif ($area == 'resolution') {
90 $res = db_query_params ('SELECT ar.resolution_name,count(*)
91 FROM artifact a, artifact_resolution ar
92 WHERE a.group_artifact_id=$1
93 AND a.resolution_id=ar.id
94 AND a.open_date BETWEEN $2 AND $3
95 GROUP BY resolution_name',
101 $res = db_query_params ('SELECT u.realname,count(*)
102 FROM artifact a, users u
103 WHERE a.group_artifact_id=$1
104 AND a.assigned_to=u.user_id
105 AND a.open_date BETWEEN $2 AND $3
113 exit_error('Error',db_error());
116 // Create the graph. These two calls are always required
117 $graph = new PieGraph(640, 480,"auto");
118 //$graph->SetMargin(50,10,35,50);
121 $arr['category']='By Category';
122 $arr['group']='By Group';
123 $arr['resolution']='By Resolution';
124 $arr['assignee']='By Assignee';
125 $graph->title->Set($arr[$area]." (".date('m/d/Y',$start) ."-". date('m/d/Y',$end) .")");
126 $graph->subtitle->Set(forge_get_config ('forge_name'));
128 // Create the tracker open plot
129 report_pie_arr(util_result_column_to_array($res,0), util_result_column_to_array($res,1));
131 $p1 = new PiePlot3D($pie_vals);
132 $p1->ExplodeSlice (0);
133 $p1->SetLegends($pie_labels);