View Issue Details

IDProjectCategoryView StatusLast Update
0004314mantisbtfeaturepublic2005-04-18 10:35
Reporterbpfennig Assigned Tobpfennig  
PrioritynormalSeverityfeatureReproducibilityN/A
Status closedResolutionfixed 
Fixed in Version1.0.0a1 
Summary0004314: Bug status percentage
Description

I've created a "bug status percentage" row. This row shows the percentage of bug status. See attachment for an example.

29% of all bugs are new, 20% of all bugs are assigned and so on.

If anybody is interested in ...

TagsNo tags attached.
Attached Files
bug_status_percentage.jpg (23,775 bytes)   
bug_status_percentage.jpg (23,775 bytes)   
patch_0004314.txt (3,947 bytes)   
cvs -z3 diff -u html_api.php (in directory D:\cvsroot\mantisbt\core)
Index: html_api.php
===================================================================
RCS file: /cvsroot/mantisbt/mantisbt/core/html_api.php,v
retrieving revision 1.139
diff -u -r1.139 html_api.php
--- html_api.php	25 Oct 2004 01:34:28 -0000	1.139
+++ html_api.php	4 Nov 2004 18:17:36 -0000
@@ -54,6 +54,8 @@
 	require_once( $t_core_dir . 'bug_api.php' );
 	require_once( $t_core_dir . 'project_api.php' );
 	require_once( $t_core_dir . 'helper_api.php' );
+	require_once( $t_core_dir . 'authentication_api.php' );
+	require_once( $t_core_dir . 'user_api.php' );
 
 	$g_rss_feed_url = null;
 
@@ -686,6 +688,63 @@
 	}
 
 	# --------------------
+	# Print the legend for the status percentage
+	function html_status_percentage_legend() {
+		$t_mantis_bug_table = config_get( 'mantis_bug_table' );
+		$t_project_id = helper_get_current_project();
+		$t_user_id = auth_get_current_user_id();
+		
+		#checking if it's a per project statistic or all projects
+		if ( ALL_PROJECTS == $t_project_id ) {
+			# Only projects to which the user have access
+			$t_accessible_projects_array = user_get_accessible_projects( $t_user_id );
+			if ( count( $t_accessible_projects_array ) > 0 ) {
+				$specific_where = ' (project_id='. implode( ' OR project_id=', $t_accessible_projects_array ).')';
+			} else {
+				$specific_where = '1=1';
+			}
+		} else {
+			$specific_where = " project_id='$t_project_id'";
+		}
+		
+		$query = "SELECT status
+				FROM $t_mantis_bug_table
+				WHERE $specific_where
+				ORDER BY status";
+		$result = db_query( $query );
+		
+		$bug_count = db_num_rows( $result );
+		$t_status_array = array();
+
+		while ( $row = db_fetch_array( $result ) ) {
+			$t_status_array[] = $row[status];
+		}
+
+		$t_status_count_array = array_count_values( $t_status_array );
+
+		PRINT '<br />';
+		PRINT '<table class="width100" cellspacing="0">';
+		PRINT '<tr>';
+
+
+		$t_arr		= explode_enum_string( config_get( 'status_enum_string' ) );
+		$enum_count	= count( $t_arr );
+		for ( $i=0; $i < $enum_count; $i++) {
+			$t_s = explode_enum_arr( $t_arr[$i] );
+			$t_color = get_status_color( $t_s[0] );
+			$width = round( ( $t_status_count_array[ $t_s[0] ] / $bug_count ) * 100 );
+			
+			if ($width > 0) {
+				PRINT "<td class=\"small-caption-center\" width=\"$width%\" bgcolor=\"$t_color\">$width%</td>";
+			}
+		}
+
+		PRINT '</tr>';
+		PRINT '</table>';
+	}
+
+
+	# --------------------
 	# Print an html button inside a form
 	function html_button ( $p_action, $p_button_text, $p_fields = null ) {
 		$p_action		= urlencode( $p_action );


cvs -z3 diff -u my_view_page.php (in directory D:\cvsroot\mantisbt\)
Index: my_view_page.php
===================================================================
RCS file: /cvsroot/mantisbt/mantisbt/my_view_page.php,v
retrieving revision 1.8
diff -u -r1.8 my_view_page.php
--- my_view_page.php	7 Aug 2004 16:47:50 -0000	1.8
+++ my_view_page.php	4 Nov 2004 18:25:19 -0000
@@ -54,6 +54,13 @@
 		echo '</td>';
 		echo '</tr>';
 	}
+	if ( ON == config_get( 'status_percentage_legend' ) ) {
+		echo '<tr>';
+		echo '<td colspan="2">';
+		html_status_percentage_legend();
+		echo '</td>';
+		echo '</tr>';
+	}
 ?>
 
 <?php


cvs -z3 diff -u config_defaults_inc.php (in directory D:\cvsroot\mantisbt\)
Index: config_defaults_inc.php
===================================================================
RCS file: /cvsroot/mantisbt/mantisbt/config_defaults_inc.php,v
retrieving revision 1.219
diff -u -r1.219 config_defaults_inc.php
--- config_defaults_inc.php	17 Oct 2004 00:14:27 -0000	1.219
+++ config_defaults_inc.php	4 Nov 2004 18:24:56 -0000
@@ -559,6 +559,8 @@
 	$g_default_email_on_priority_minimum_severity	= 'any'; # @@@ Unused
 	$g_default_email_bugnote_limit					= 0;
 	# default_language - is set to site language
+	
+	$g_status_percentage_legend = ON;
 
 	###############################
 	# Mantis Summary Settings
patch_0004314.txt (3,947 bytes)   

Relationships

child of 0004937 closedvboctor Mantis 1.0.0a1 Release 

Activities

jlatour

jlatour

2004-08-11 16:34

reporter   ~0006946

Looks cool! The question is where to put it...

bpfennig

bpfennig

2004-08-12 01:09

reporter   ~0006952

I've now put it in "My View" but it could be placed in "View Issues" as well.

Maybe I could add a global configuration setting to enable or disable.

jlatour

jlatour

2004-08-12 04:12

reporter   ~0006959

Alright, experiment with it a little.

Matt_wc

Matt_wc

2004-11-03 20:00

reporter   ~0008244

bpfennig, do you have the code for this? I would like to include this in our project. Thanks

bpfennig

bpfennig

2004-11-04 12:28

reporter   ~0008249

I've attached the patch to this bug!

Matt_wc

Matt_wc

2004-12-15 17:53

reporter   ~0008643

The patch works great! Thanks

bpfennig

bpfennig

2004-12-17 09:21

reporter   ~0008701

Commited to CVS.