2 include 'core.inc.php';
4 function drawrectangle($image, $xstart, $ystart, $xend, $yend, $color)
6 imageline($image, $xstart, $ystart, $xend, $ystart, $color);
7 imageline($image, $xend, $ystart, $xend, $yend, $color);
8 imageline($image, $xend, $yend, $xstart, $yend, $color);
9 imageline($image, $xstart, $yend, $xstart, $ystart, $color);
12 function drawpoint($image, $cx, $cy, $width, $color)
14 imagefilledellipse($image, $cx, $cy, $width, $width, $color);
17 Header("Content-type: image/gif");
22 $framexend=$diagramwidth-1;
23 $frameyend=$diagramheight-1;
24 $image = imageCreate($diagramwidth, $diagramheight);
25 $colorbackgr = imageColorAllocate($image, 255, 255, 255);
26 $colorpanel = imageColorAllocate($image, 240, 250, 150);
27 $colorgrid = imageColorAllocate($image, 20, 80, 80);
28 $colorset = imageColorAllocate($image, 240, 10, 50);
29 $colorline = imageColorAllocate($image, 50, 10, 240);
30 imagefilledrectangle($image, 0, 0, $diagramwidth+
1, $diagramheight+
1, $colorbackgr);
32 drawrectangle($image, $framexstart, $frameystart, $framexend, $frameyend, $colorgrid);
34 if($_REQUEST["action"]=="commit"){
35 $title = "Commit Count";
36 $release = getrelease();
37 $xcount = count($release);
41 $value = getinfo($name, $release, "set_num");
42 $value2 = getinfo($name, $release, "line_num");
44 $xcordxstart = $framexstart+
100;
45 $xcordystart = $frameyend-30;
46 $xcordxend = $framexend-100;
47 $xcordyend = $xcordystart;
49 $ycordxstart = $xcordxstart;
50 $ycordystart = $xcordystart;
51 $ycordxend = $ycordxstart;
52 $ycordyend = $frameystart+
30;
54 $y2cordxstart = $xcordxend;
55 $y2cordystart = $xcordystart;
56 $y2cordxend = $y2cordxstart;
57 $y2cordyend = $ycordyend;
60 imageline($image, $xcordxstart, $xcordystart, $xcordxend, $xcordyend, $colorgrid);
61 imageline($image, $ycordxstart, $ycordystart, $ycordxend, $ycordyend, $colorgrid);
64 $xgridwidth = ($xcordxend-$xcordxstart)/($xcount-1);
65 for ($i = 0; $i < $xcount; $i++
) {
66 $xcurrent = $xcordxstart+
$i*$xgridwidth;
68 imageline($image, $xcurrent, $xcordystart,
69 $xcurrent, $xcordystart-3, $colorgrid);
71 $ytmp = $xcordystart+
10;
73 $ytmp = $xcordystart+
2;
74 imagestring($image, $font, $xcurrent-10, $ytmp, $release[$i], $colorgrid);
80 $xcurrent = ($framexend - strlen($title)*$charwidth)/2;
81 imagestring($image, $font, $xcurrent, $frameystart+
5,
84 imageline($image, $y2cordxstart, $y2cordystart, $y2cordxend, $y2cordyend, $colorgrid);
86 imagestringup($image, $font, $xcordxstart-70, $ycordyend+
200, "Change Sets", $colorset);
87 imagestringup($image, $font, $xcordxend+
60, $ycordyend+
220, "Changed Lines", $colorline);
89 /* draw y grid, Be carefull zero div */
90 $ygridheight = ($ycordystart-$ycordyend)/10;
91 if (maxofarray($value) <= 10)
94 $ypergrid = maxofarray($value)/10;
95 if (maxofarray($value2) <= 10)
98 $y2pergrid = maxofarray($value2)/10;
99 for ($i = 0; $i < 11; $i++
) {
100 $ycurrent = $ycordystart-$i*$ygridheight;
103 imageline($image, $ycordxstart, $ycurrent,
104 $ycordxstart+
3, $ycurrent, $colorgrid);
105 imagestring($image, $font, $ycordxstart-35,
106 $ycurrent-7, intval($i*$ypergrid), $colorset);
108 imageline($image, $y2cordxstart, $ycurrent,
109 $y2cordxstart-3, $ycurrent, $colorgrid);
110 imagestring($image, $font, $y2cordxstart+
5,
111 $ycurrent-7, intval($i*$y2pergrid), $colorline);
114 /* draw change line of changeset*/
115 for ($i = 0; $i < $xcount; $i++
) {
116 $xstart = $xcordxstart+
$i*$xgridwidth;
117 $ystart = $ycordystart-$value[$i]*$ygridheight/$ypergrid;
119 drawpoint($image, $xstart, $ystart, $point_width, $colorset);
120 if(($i+
1) < $xcount) {
121 $xend = $xcordxstart+
($i+
1)*$xgridwidth;
122 $yend = $ycordystart-$value[$i+
1]*$ygridheight/$ypergrid;
123 imageline($image, $xstart, $ystart,
124 $xend, $yend, $colorset);
128 /* draw change line of changedlines*/
129 for ($i = 0; $i < $xcount; $i++
) {
130 $xstart = $xcordxstart+
$i*$xgridwidth;
131 $ystart = $ycordystart-$value2[$i]*$ygridheight/$y2pergrid;
133 drawpoint($image, $xstart, $ystart, $point_width, $colorline);
134 if(($i+
1) < $xcount) {
135 $xend = $xcordxstart+
($i+
1)*$xgridwidth;
136 $yend = $ycordystart-$value2[$i+
1]*$ygridheight/$y2pergrid;
137 imageline($image, $xstart, $ystart,
138 $xend, $yend, $colorline);
143 imagedestroy($image);
147 if($_REQUEST["action"]=="rank"){
148 $title = "Commit Rank";
149 $release = getrelease();
150 $xcount = count($release);
154 $value = getrank($name, $release, "set_num");
155 $value2 = getrank($name, $release, "line_num");
156 $max = (maxofarray($value) > maxofarray($value2)) ?
157 maxofarray($value): maxofarray($value2);
158 $min = (minofarray($value) < minofarray($value2)) ?
159 minofarray($value): minofarray($value2);
161 $xcordxstart = $framexstart+
50;
162 $xcordystart = $frameyend-30;
163 $xcordxend = $framexend-150;
164 $xcordyend = $xcordystart;
166 $ycordxstart = $xcordxstart;
167 $ycordystart = $xcordystart;
168 $ycordxend = $ycordxstart;
169 $ycordyend = $frameystart+
30;
171 $y2cordxstart = $xcordxend;
172 $y2cordystart = $xcordystart;
173 $y2cordxend = $y2cordxstart;
174 $y2cordyend = $ycordyend;
177 imageline($image, $xcordxstart, $xcordystart, $xcordxend, $xcordyend, $colorgrid);
178 imageline($image, $ycordxstart, $ycordystart, $ycordxend, $ycordyend, $colorgrid);
181 $xgridwidth = ($xcordxend-$xcordxstart)/($xcount-1);
182 for ($i = 0; $i < $xcount; $i++
) {
183 $xcurrent = $xcordxstart+
$i*$xgridwidth;
185 imageline($image, $xcurrent, $xcordystart,
186 $xcurrent, $xcordystart-3, $colorgrid);
188 $ytmp = $xcordystart+
10;
190 $ytmp = $xcordystart+
2;
191 imagestring($image, $font, $xcurrent-10, $ytmp, $release[$i], $colorgrid);
197 $xcurrent = ($framexend - strlen($title)*$charwidth)/2;
198 imagestring($image, $font, $xcurrent, $frameystart+
5,
202 imagefilledrectangle($image, $xcordxend+
20, $ycordyend+
100,
203 $xcordxend+
138, $ycordyend+
205, $colorpanel);
204 imageline($image, $y2cordxstart+
30, $ycordyend+
110,
205 $y2cordxstart+
70, $ycordyend+
110, $colorset);
206 imageline($image, $y2cordxstart+
30, $ycordyend+
170,
207 $y2cordxstart+
70, $ycordyend+
170, $colorline);
208 imagestring($image, $font, $xcordxend+
30, $ycordyend+
120, "Change Sets", $colorset);
209 imagestring($image, $font, $xcordxend+
30, $ycordyend+
180, "Changed Lines", $colorline);
212 $ygridheight = ($ycordystart-$ycordyend)/10;
213 if (($max-$min) <= 10)
216 $ypergrid = ($max-$min)/10;
217 for ($i = 0; $i < 11; $i++
) {
218 $ycurrent = $ycordystart-$i*$ygridheight;
221 imageline($image, $ycordxstart, $ycurrent,
222 $ycordxstart+
3, $ycurrent, $colorgrid);
223 imagestring($image, $font, $ycordxstart-35, $ycurrent-7,
224 intval($max-$i*$ypergrid),
228 /* draw change line of changeset*/
229 for ($i = 0; $i < $xcount; $i++
) {
230 $xstart = $xcordxstart+
$i*$xgridwidth;
233 $offset = $max-$value[$i];
234 $ystart = $ycordystart-($offset*$ygridheight/$ypergrid);
236 drawpoint($image, $xstart, $ystart, $point_width, $colorset);
237 /* skip the point which is zero */
238 while (($value[$i+
1] == 0) && (($i+
1) < $xcount)) {
241 if(($i+
1) < $xcount) {
242 $xend = $xcordxstart+
($i+
1)*$xgridwidth;
243 $offset = $max-$value[$i+
1];
244 $yend = $ycordystart-($offset*$ygridheight/$ypergrid);
245 imageline($image, $xstart, $ystart,
246 $xend, $yend, $colorset);
250 /* draw change line of changedlines*/
251 for ($i = 0; $i < $xcount; $i++
) {
252 $xstart = $xcordxstart+
$i*$xgridwidth;
253 if ($value2[$i] == 0)
255 $offset = $max-$value2[$i];
256 $ystart = $ycordystart-($offset*$ygridheight/$ypergrid);
258 drawpoint($image, $xstart, $ystart, $point_width, $colorline);
259 /* skip the point which is zero */
260 while (($value2[$i+
1] == 0) && (($i+
1) < $xcount)) {
263 if(($i+
1) < $xcount) {
264 $xend = $xcordxstart+
($i+
1)*$xgridwidth;
265 $offset = $max-$value2[$i+
1];
266 $yend = $ycordystart-($offset*$ygridheight/$ypergrid);
267 imageline($image, $xstart, $ystart,
268 $xend, $yend, $colorline);
273 imagedestroy($image);
277 if($_REQUEST["action"]=="who"){
278 $title = 'How Many People and Org are Commiting';
279 $release = getrelease();
280 $xcount = count($release);
282 $value = getwho(0, $release);
283 $value2 = getwho(1, $release);
285 $xcordxstart = $framexstart+
100;
286 $xcordystart = $frameyend-30;
287 $xcordxend = $framexend-100;
288 $xcordyend = $xcordystart;
290 $ycordxstart = $xcordxstart;
291 $ycordystart = $xcordystart;
292 $ycordxend = $ycordxstart;
293 $ycordyend = $frameystart+
30;
295 $y2cordxstart = $xcordxend;
296 $y2cordystart = $xcordystart;
297 $y2cordxend = $y2cordxstart;
298 $y2cordyend = $ycordyend;
301 imageline($image, $xcordxstart, $xcordystart, $xcordxend, $xcordyend, $colorgrid);
302 imageline($image, $ycordxstart, $ycordystart, $ycordxend, $ycordyend, $colorgrid);
305 $xgridwidth = ($xcordxend-$xcordxstart)/($xcount-1);
306 for ($i = 0; $i < $xcount; $i++
) {
307 $xcurrent = $xcordxstart+
$i*$xgridwidth;
309 imageline($image, $xcurrent, $xcordystart,
310 $xcurrent, $xcordystart-3, $colorgrid);
312 $ytmp = $xcordystart+
10;
314 $ytmp = $xcordystart+
2;
315 imagestring($image, $font, $xcurrent-10, $ytmp, $release[$i], $colorgrid);
321 $xcurrent = ($framexend - strlen($title)*$charwidth)/2;
322 imagestring($image, $font, $xcurrent, $frameystart+
5,
325 imageline($image, $y2cordxstart, $y2cordystart, $y2cordxend, $y2cordyend, $colorgrid);
327 imagestringup($image, $font, $xcordxstart-70, $ycordyend+
200, "How Many People", $colorset);
328 imagestringup($image, $font, $xcordxend+
60, $ycordyend+
220, "How Many Organizitions", $colorline);
330 /* draw y grid, Be carefull zero div */
331 $ygridheight = ($ycordystart-$ycordyend)/10;
332 /* set max commiter as static */
334 /* set max commite employer as static */
336 for ($i = 0; $i < 11; $i++
) {
337 $ycurrent = $ycordystart-$i*$ygridheight;
340 imageline($image, $ycordxstart, $ycurrent,
341 $ycordxstart+
3, $ycurrent, $colorgrid);
342 imagestring($image, $font, $ycordxstart-35,
343 $ycurrent-7, intval($i*$ypergrid), $colorset);
345 imageline($image, $y2cordxstart, $ycurrent,
346 $y2cordxstart-3, $ycurrent, $colorgrid);
347 imagestring($image, $font, $y2cordxstart+
5,
348 $ycurrent-7, intval($i*$y2pergrid), $colorline);
351 /* draw change line of changeset*/
352 for ($i = 0; $i < $xcount; $i++
) {
353 $xstart = $xcordxstart+
$i*$xgridwidth;
354 $ystart = $ycordystart-$value[$i]*$ygridheight/$ypergrid;
356 drawpoint($image, $xstart, $ystart, $point_width, $colorset);
357 if(($i+
1) < $xcount) {
358 $xend = $xcordxstart+
($i+
1)*$xgridwidth;
359 $yend = $ycordystart-$value[$i+
1]*$ygridheight/$ypergrid;
360 imageline($image, $xstart, $ystart,
361 $xend, $yend, $colorset);
365 /* draw change line of changedlines*/
366 for ($i = 0; $i < $xcount; $i++
) {
367 $xstart = $xcordxstart+
$i*$xgridwidth;
368 $ystart = $ycordystart-$value2[$i]*$ygridheight/$y2pergrid;
370 drawpoint($image, $xstart, $ystart, $point_width, $colorline);
371 if(($i+
1) < $xcount) {
372 $xend = $xcordxstart+
($i+
1)*$xgridwidth;
373 $yend = $ycordystart-$value2[$i+
1]*$ygridheight/$y2pergrid;
374 imageline($image, $xstart, $ystart,
375 $xend, $yend, $colorline);
380 imagedestroy($image);