? bug_change_status_page.php
Index: bug_actiongroup.php
===================================================================
RCS file: /cvsroot/mantisbt/mantisbt/bug_actiongroup.php,v
retrieving revision 1.32
diff -u -r1.32 bug_actiongroup.php
--- bug_actiongroup.php	24 Jul 2004 11:48:33 -0000	1.32
+++ bug_actiongroup.php	1 Aug 2004 23:01:48 -0000
@@ -59,7 +59,7 @@
 		case 'COPY':
 			$f_project_id = gpc_get_int( 'project_id' );
 
-			if ( access_has_project_level( config_get( 'report_bug_threshold' ), $f_project_id ) ) {
+			if ( access_has_project_level( access_get_status_threshold( NEW_ ), $f_project_id ) ) {
 				bug_copy( $t_bug_id, $f_project_id );
 			} else {
 				$t_failed_ids[] = $t_bug_id;
Index: bug_report.php
===================================================================
RCS file: /cvsroot/mantisbt/mantisbt/bug_report.php,v
retrieving revision 1.33
diff -u -r1.33 bug_report.php
--- bug_report.php	1 Aug 2004 22:24:58 -0000	1.33
+++ bug_report.php	1 Aug 2004 23:01:48 -0000
@@ -23,7 +23,7 @@
 	require_once( $t_core_path.'custom_field_api.php' );
 ?>
 <?php
-	access_ensure_project_level( config_get('report_bug_threshold' ) );
+	access_ensure_project_level( config_get( 'report_bug_threshold' ) );
 
 	$f_build				= gpc_get_string( 'build', '' );
 	$f_platform				= gpc_get_string( 'platform', '' );
Index: bug_update_advanced_page.php
===================================================================
RCS file: /cvsroot/mantisbt/mantisbt/bug_update_advanced_page.php,v
retrieving revision 1.73
diff -u -r1.73 bug_update_advanced_page.php
--- bug_update_advanced_page.php	25 Jul 2004 21:09:38 -0000	1.73
+++ bug_update_advanced_page.php	1 Aug 2004 23:01:48 -0000
@@ -220,9 +220,7 @@
 		<?php echo lang_get( 'status' ) ?>
 	</td>
 	<td bgcolor="<?php echo get_status_color( $t_bug->status ) ?>">
-		<select name="status">
-			<?php print_enum_string_option_list_workflow( 'status', $t_bug->status ) ?>
-		</select>
+		<?php print_status_option_list( 'status', $t_bug->status ) ?>
 	</td>
 
 	<?php
Index: bug_update_page.php
===================================================================
RCS file: /cvsroot/mantisbt/mantisbt/bug_update_page.php,v
retrieving revision 1.77
diff -u -r1.77 bug_update_page.php
--- bug_update_page.php	26 Jul 2004 13:24:38 -0000	1.77
+++ bug_update_page.php	1 Aug 2004 23:01:48 -0000
@@ -218,9 +218,7 @@
 		<?php echo lang_get( 'status' ) ?>
 	</td>
 	<td bgcolor="<?php echo get_status_color( $t_bug->status ) ?>">
-		<select name="status">
-			<?php print_enum_string_option_list_workflow( 'status', $t_bug->status ) ?>
-		</select>
+		<?php print_status_option_list( 'status', $t_bug->status ) ?>
 	</td>
 
 	<?php
Index: config_defaults_inc.php
===================================================================
RCS file: /cvsroot/mantisbt/mantisbt/config_defaults_inc.php,v
retrieving revision 1.188
diff -u -r1.188 config_defaults_inc.php
--- config_defaults_inc.php	1 Aug 2004 22:24:58 -0000	1.188
+++ config_defaults_inc.php	1 Aug 2004 23:01:49 -0000
@@ -735,15 +735,17 @@
 	# access level needed to report a bug
 	$g_report_bug_threshold			= REPORTER;
 
-	# access level needed to update bugs
+	# access level needed to update bugs (i.e., the update_bug_page)
 	$g_update_bug_threshold			= UPDATER;
 
 	# access level needed to re-open bugs
 	# Look in the constant_inc.php file if you want to set a different value
+	#  depricated see $g_set_status_threshold
 	$g_reopen_bug_threshold			= DEVELOPER;
 
 	# access level needed to close bugs
 	# Look in the constant_inc.php file if you want to set a different value
+	#  depricated see $g_set_status_threshold
 	$g_close_bug_threshold			= DEVELOPER;
 
 	# access level needed to monitor bugs
@@ -858,6 +860,19 @@
 	# threshold for viewing changelog
 	$g_view_changelog_threshold = VIEWER;
 
+	# status change thresholds
+	# this array sets the access thresholds needed to enter each status listed.
+	# if a status is not listed, it falls back to $g_update_bug_status_threshold
+	$g_update_bug_status_threshold = DEVELOPER;
+
+	$g_set_status_threshold[NEW_] = DEVELOPER;  # replaces $g_bug_reopen_threshold
+	# $g_set_status_threshold[ACKNOWLEDGED] = REPORTER;  
+	# $g_set_status_threshold[CONFIRMED] = REPORTER;  
+	# $g_set_status_threshold[ASSIGNED] = REPORTER;  
+	# $g_set_status_threshold[RESOLVED] = REPORTER;  
+	$g_set_status_threshold[CLOSED] = DEVELOPER;  # replaces $g_close_bug_threshold
+	
+
 	# --- login method ----------------
 	# CRYPT or PLAIN or MD5 or LDAP or BASIC_AUTH
 	# You can simply change this at will. Mantis will try to figure out how the passwords were encrypted.
@@ -1052,6 +1067,7 @@
 	$g_severity_enum_string				= '10:feature,20:trivial,30:text,40:tweak,50:minor,60:major,70:crash,80:block';
 	$g_reproducibility_enum_string		= '10:always,30:sometimes,50:random,70:have not tried,90:unable to duplicate,100:N/A';
 	$g_status_enum_string				= '10:new,20:feedback,30:acknowledged,40:confirmed,50:assigned,80:resolved,90:closed';
+	$g_status_label_enum_string = '10:new,20:feedback,30:acknowledge,40:confirm,50:assign,80:resolve,90:close';
 	$g_resolution_enum_string			= '10:open,20:fixed,30:reopened,40:unable to duplicate,50:not fixable,60:duplicate,70:not a bug,80:suspended,90:wont fix';
 	$g_projection_enum_string			= '10:none,30:tweak,50:minor fix,70:major rework,90:redesign';
 	$g_eta_enum_string					= '10:none,20:< 1 day,30:2-3 days,40:< 1 week,50:< 1 month,60:> 1 month';
Index: core/access_api.php
===================================================================
RCS file: /cvsroot/mantisbt/mantisbt/core/access_api.php,v
retrieving revision 1.30
diff -u -r1.30 access_api.php
--- core/access_api.php	27 Jul 2004 14:24:57 -0000	1.30
+++ core/access_api.php	1 Aug 2004 23:01:49 -0000
@@ -128,17 +128,11 @@
 	#===================================
 
 	# --------------------
-	# Check the current user's access against the given value and return true
-	#  if the user's access is equal to or higher, false otherwise.
+	# Get the current user's access
 	#
 	# This function only checks the user's global access level, ignoring any
 	#  overrides they might have at a project level
-	function access_has_global_level( $p_access_level, $p_user_id = null ) {
-		# Short circuit the check in this case
-		if ( NOBODY == $p_access_level ) {
-			return false;
-		}
-
+	function access_get_global_level( $p_user_id = null ) {
 		if ( $p_user_id === null ) {
 		    $p_user_id = auth_get_current_user_id();
 		}
@@ -150,7 +144,24 @@
 			return false;
 		}
 
-		$t_access_level = user_get_field( $p_user_id, 'access_level' );
+		return user_get_field( $p_user_id, 'access_level' );
+	}
+
+	# --------------------
+	# Check the current user's access against the given value and return true
+	#  if the user's access is equal to or higher, false otherwise.
+	#
+	function access_has_global_level( $p_access_level, $p_user_id = null ) {
+		# Short circuit the check in this case
+		if ( NOBODY == $p_access_level ) {
+			return false;
+		}
+
+		if ( $p_user_id === null ) {
+		    $p_user_id = auth_get_current_user_id();
+		}
+
+		$t_access_level = access_get_global_level( $p_user_id );
 
 		return ( $t_access_level >= $p_access_level );
 	}
@@ -165,23 +176,17 @@
 	}
 
 	# --------------------
-	# Check the current user's access against the given value and return true
-	#  if the user's access is equal to or higher, false otherwise.
+	# Get the current user's access level
 	#
 	# This function checks the project access level first (for the current project
 	#  if none is specified) and if the user is not listed, it falls back on the
 	#  user's global access level.
-	function access_has_project_level( $p_access_level, $p_project_id = null, $p_user_id = null ) {
-		# Short circuit the check in this case
-		if ( NOBODY == $p_access_level ) {
-			return false;
-		}
-
+	function access_get_project_level( $p_project_id = null, $p_user_id = null ) {
 		# Deal with not logged in silently in this case
 		# @@@ we may be able to remove this and just error
 		#     and once we default to anon login, we can remove it for sure
 		if ( !auth_is_user_authenticated() ) {
-			return false;
+			return ANYBODY;
 		}
 
 		if ( null === $p_user_id ) {
@@ -193,11 +198,11 @@
 		}
 
 		if ( ALL_PROJECTS == $p_project_id ) {
-			return access_has_global_level( $p_access_level, $p_user_id );
+			$t_access_level = access_get_global_level( $p_user_id );
+		}else{
+			$t_access_level = access_get_local_level( $p_user_id, $p_project_id );
 		}
 
-		$t_access_level = access_get_local_level( $p_user_id, $p_project_id );
-
 		# Try to use the project access level.
 		# If the user is not listed in the project, then try to fall back
 		#  to the global access level
@@ -213,6 +218,28 @@
 			}
 		}
 
+		return $t_access_level;
+	}
+
+	# --------------------
+	# Check the current user's access against the given value and return true
+	#  if the user's access is equal to or higher, false otherwise.
+	#
+	function access_has_project_level( $p_access_level, $p_project_id = null, $p_user_id = null ) {
+		# Short circuit the check in this case
+		if ( NOBODY == $p_access_level ) {
+			return false;
+		}
+
+		if ( null === $p_user_id ) {
+		    $p_user_id = auth_get_current_user_id();
+		}
+		if ( null === $p_project_id ) {
+			$p_project_id = helper_get_current_project();
+		}
+
+		$t_access_level = access_get_project_level( $p_project_id, $p_user_id );
+
 		return ( $t_access_level >= $p_access_level );
 	}
 
@@ -310,7 +337,7 @@
 			return true;
 		}
 
-		return access_has_bug_level( config_get( 'close_bug_threshold' ), $p_bug_id, $p_user_id );
+		return access_has_bug_level( access_get_status_threshold( CLOSED ), $p_bug_id, $p_user_id );
 	}
 
 	# --------------------
@@ -352,6 +379,8 @@
 	# Data Access
 	#===================================
 
+	# get the user's access level specific to this project. 
+	# return false (0) if the user has no access override here
 	function access_get_local_level( $p_user_id, $p_project_id ) {
 		$p_project_id = (int)$p_project_id; # 000001 is different from 1.
 
@@ -363,4 +392,21 @@
 			return false;
 		}
 	}
+
+	# --------------------
+	# get the access level required to change the issue to the new status
+	#  If there is no specific differentiated access level, use the 
+	#  generic update_bug_status_threshold
+	function access_get_status_threshold( $p_status, $p_project_id=ALL_PROJECTS ) {
+		
+		$t_default_level = config_get( 'update_bug_status_threshold' );
+		$t_thresh_array = config_get( 'set_status_threshold' );
+		if ( isset( $t_thresh_array[ $p_status ] ) ) {
+			return $t_thresh_array[ $p_status ];
+		}else{
+			return $t_default_level;
+		}
+	}
+
+			
 ?>
\ No newline at end of file
Index: core/filter_api.php
===================================================================
RCS file: /cvsroot/mantisbt/mantisbt/core/filter_api.php,v
retrieving revision 1.53
diff -u -r1.53 filter_api.php
--- core/filter_api.php	31 Jul 2004 13:16:38 -0000	1.53
+++ core/filter_api.php	1 Aug 2004 23:01:50 -0000
@@ -46,7 +46,7 @@
 		$t_project_table		= config_get( 'mantis_project_table' );
 		$t_bug_monitor_table	= config_get( 'mantis_bug_monitor_table' );
 		$t_limit_reporters		= config_get( 'limit_reporters' );
-		$t_report_bug_threshold		= config_get( 'report_bug_threshold' );
+		$t_report_bug_threshold		= access_get_status_threshold( NEW_ );
 
 		if ( $custom_filter == null ) {
 			$t_filter = current_user_get_bug_filter();
@@ -119,7 +119,7 @@
 			foreach( $t_filter['reporter_id'] as $t_filter_member ) {
 				$c_reporter_id = db_prepare_int( $t_filter_member );
 				if ( META_FILTER_MYSELF == $c_reporter_id ) {
-					if ( access_has_project_level( config_get( 'report_bug_threshold' ) ) ) {
+					if ( access_has_project_level( access_get_status_threshold( NEW_ ) ) ) {
 						$c_reporter_id = auth_get_current_user_id();
 						array_push( $t_clauses, "($t_bug_table.reporter_id='$c_reporter_id')" );
 					}
@@ -741,7 +741,7 @@
 										if ( ( $t_current == 0 ) || ( is_blank( $t_current ) ) ) {
 											$t_any_found = true;
 										} else if ( META_FILTER_MYSELF == $t_current ) {
-											if ( access_has_project_level( config_get( 'report_bug_threshold' ) ) ) {
+											if ( access_has_project_level( access_get_status_threshold( NEW_ ) ) ) {
 												$t_this_name = '[' . lang_get( 'myself' ) . ']';
 											} else {
 												$t_any_found = true;
Index: core/html_api.php
===================================================================
RCS file: /cvsroot/mantisbt/mantisbt/core/html_api.php,v
retrieving revision 1.115
diff -u -r1.115 html_api.php
--- core/html_api.php	1 Aug 2004 08:56:38 -0000	1.115
+++ core/html_api.php	1 Aug 2004 23:01:51 -0000
@@ -249,7 +249,6 @@
 		$t_access_level	= get_enum_element( 'access_levels', current_user_get_access_level() );
 		$t_now			= date( config_get( 'complete_date_format' ) );
 		$t_realname = current_user_get_field( 'realname' );
-
 		PRINT '<table class="hide">';
 		PRINT '<tr>';
 			PRINT '<td class="login-info-left">';
@@ -405,7 +404,7 @@
 				$t_menu_options[] = '<a href="view_all_bug_page.php">' . lang_get( 'view_bugs_link' ) . '</a>';
 
 				# Report Bugs
-				if ( access_has_project_level( REPORTER ) ) {
+				if ( access_has_project_level( config_get( 'report_bug_threshold' ) ) ) {
 					$t_menu_options[] = string_get_bug_report_link();
 				}
 
@@ -679,6 +678,59 @@
 		}
 	}
 
+  # --------------------
+  # Print Change Status to: button
+  #  This code is similar to print_status_option_list except
+  #   there is no masking, except for the current state
+  
+  function html_button_bug_change_status( $p_bug_id ) {
+		$t_bug_project_id = bug_get_field( $p_bug_id, 'project_id' );
+		$t_bug_current_state = bug_get_field( $p_bug_id, 'status' );
+		$t_current_access = access_get_project_level( $t_bug_project_id );
+		
+		$t_enum_status = config_get( 'status_enum_string'); 
+		$t_enum_workflow = config_get( 'status_enum_workflow' );
+		if ( count( $t_enum_workflow ) < 1 ) {
+			# workflow not defined, use default enum
+			$t_arr  = explode_enum_string( $t_enum_status );
+		} else {
+			# workflow defined - find allowed states
+			$t_arr  = explode_enum_string( $t_enum_workflow[$t_bug_current_state] );
+		}
+
+		$t_enum_count = count( $t_arr );
+		$t_enum_list = array();
+		for ( $i = 0; $i < $t_enum_count; $i++ ) {
+			$t_elem  = explode_enum_arr( $t_arr[$i] );
+			$t_elem2 = get_enum_element( 'status', $t_elem[0] );
+			$t_status = $t_elem[0];
+			if ( ( $t_status <> $t_bug_current_state ) && ( $t_current_access >= access_get_status_threshold( $t_status ) ) ) {
+				$t_enum_list[$t_status] = $t_elem2;
+			}
+		} # end for
+
+		if ( count( $t_enum_list ) > 0 ) {
+			echo "&nbsp;<form method=\"post\" action=\"bug_change_status_page.php\">\n";
+
+			$t_button_text = lang_get( 'bug_status_to_button' );
+			echo "	<input type=\"submit\" class=\"button\" value=\"$t_button_text\" />\n";
+
+			echo "<select name=\"new_status\">";
+			foreach ( $t_enum_list as $key => $val ) {
+				echo "<option value=\"$key\"";
+				check_selected( $val, $p_val );
+				echo ">$val</option>";
+			}
+			echo '</select>';
+
+			$t_bug_id = string_attribute( $p_bug_id );
+			echo "	<input type=\"hidden\" name=\"bug_id\" value=\"$t_bug_id\" />\n";
+
+			echo "</form>&nbsp;\n";
+		}
+
+	}
+
 	# --------------------
 	# Print Assign To: combo box of possible handlers
 	function html_button_bug_assign_to( $p_bug_id ) {
@@ -708,7 +760,7 @@
 			$t_default_assign_to = $t_current_user_id;
 		}
 
-		if ( ( $t_handler_id != $t_reporter_id ) &&
+		if ( ( $t_handler_id != $t_reporter_id ) && user_exists( $t_reporter_id ) &&
 			( access_has_bug_level( config_get( 'handle_bug_threshold' ), $p_bug_id, $t_reporter_id ) ) ) {
 		    $t_options[] = array( $t_reporter_id, '[' . lang_get( 'reporter' ) . ']' );
 
@@ -717,7 +769,7 @@
 			}
 		}
 
-		PRINT "<form method=\"post\" action=\"bug_assign.php\">\n";
+		PRINT "&nbsp;<form method=\"post\" action=\"bug_assign.php\">\n";
 
 		$t_button_text = lang_get( 'bug_assign_to_button' );
 		PRINT "	<input type=\"submit\" class=\"button\" value=\"$t_button_text\" />\n";
@@ -759,7 +811,7 @@
 		$t_bug_id = string_attribute( $p_bug_id );
 		PRINT "	<input type=\"hidden\" name=\"bug_id\" value=\"$t_bug_id\" />\n";
 
-		PRINT "</form>\n";
+		PRINT "</form>&nbsp;\n";
 	}
 
 	# --------------------
@@ -814,9 +866,10 @@
 	 		  ( ON == config_get( 'allow_reporter_reopen' ) ) 
 			 	) )
 			 ) {
-			html_button( 'bug_reopen_page.php',
+			html_button( 'bug_change_status_page.php',
 						 lang_get( 'reopen_bug_button' ),
-						 array( 'bug_id' => $p_bug_id ) );
+						 array( 'bug_id' => $p_bug_id ,
+						 				'new_status' => config_get( 'bug_reopen_status' ) ) );
 		}
 	}
 
@@ -869,8 +922,9 @@
 		$t_resolved = config_get( 'bug_resolved_status_threshold' );
 		$t_status = bug_get_field( $p_bug_id, 'status' );
 
-		PRINT '<table><tr><td>';
+		PRINT '<table><tr>';
 		if ( !bug_is_readonly( $p_bug_id ) ) {
+			PRINT '<td>';
 			# UPDATE button
 			html_button_bug_update( $p_bug_id );
 
@@ -881,28 +935,28 @@
 
 			PRINT '</td><td>';
 
-			# RESOLVE button
-			html_button_bug_resolve( $p_bug_id );
-
-			PRINT '</td><td>';
 
 			# MOVE button
 			html_button_bug_move( $p_bug_id );
 
-			# # CREATE CHILD button
+			# CREATE CHILD button
 			# PRINT '</td><td>';
 			# html_button_bug_create_child( $p_bug_id );
+		 
+			PRINT '</td>';
 		} else {
+			PRINT '<td>';
 			# REOPEN button
 			html_button_bug_reopen( $p_bug_id );
+			PRINT '</td>';
 		}
-		PRINT '</td>';
 
-		# CLOSE button
+		
 		PRINT '<td>';
-		html_button_bug_close( $p_bug_id );
+		# Change State button
+		html_button_bug_change_status( $p_bug_id );
 		PRINT '</td>';
-
+		
 		# MONITOR/UNMONITOR button
 		PRINT '<td>';
 		if ( !current_user_is_anonymous() ) {
Index: core/obsolete.php
===================================================================
RCS file: /cvsroot/mantisbt/mantisbt/core/obsolete.php,v
retrieving revision 1.25
diff -u -r1.25 obsolete.php
--- core/obsolete.php	8 May 2004 23:57:21 -0000	1.25
+++ core/obsolete.php	1 Aug 2004 23:01:51 -0000
@@ -88,4 +88,10 @@
 	config_obsolete( 'show_project_in_title', '' );
 
 	config_obsolete( 'hide_closed_default', 'hide_status_default' );
+
+	config_obsolete( 'close_bug_threshold', 'set_status_threshold' );
+	config_obsolete( 'reopen_bug_threshold', 'set_status_threshold' );
+	
+	config_obsolete( 'status_pulldown_enum_mask_string', '' );
+	
 ?>
\ No newline at end of file
Index: core/print_api.php
===================================================================
RCS file: /cvsroot/mantisbt/mantisbt/core/print_api.php,v
retrieving revision 1.93
diff -u -r1.93 print_api.php
--- core/print_api.php	27 Jul 2004 00:59:08 -0000	1.93
+++ core/print_api.php	1 Aug 2004 23:01:52 -0000
@@ -181,7 +181,7 @@
 		}
 
 		# if current user is a reporter, and limited reports set to ON.
-		if ( ( ON == config_get( 'limit_reporters' ) ) && ( current_user_get_access_level() <= config_get( 'report_bug_threshold' ) ) ) {
+		if ( ( ON == config_get( 'limit_reporters' ) ) && ( current_user_get_access_level() <= access_get_status_threshold( NEW_ ) ) ) {
 			$t_user['id'] = auth_get_current_user_id();
 			$t_user['username'] = user_get_field( $t_user['id'], 'username' );
 			$t_user['realname'] = user_get_field( $t_user['id'], 'realname' );
@@ -587,28 +587,47 @@
 	# or the input parameter if workflows are not used
 	# $p_enum_name : name of enumeration (eg: status)
 	# $p_val : current value
-	function print_enum_string_option_list_workflow( $p_enum_name, $p_val = 0 ) {
-		$t_config_var_name = $p_enum_name . '_enum_string';
-		$t_config_var_value = config_get( $t_config_var_name );
-		$t_enum_workflow = config_get( $p_enum_name . '_enum_workflow' );
+	function print_status_option_list( $p_select_label, $p_current_value = 0 ) {
+		$t_config_var_value = config_get( 'status_enum_string'); 
+		$t_enum_workflow = config_get( 'status_enum_workflow' );
+		$t_current_auth = access_get_project_level();
 
 		if ( count( $t_enum_workflow ) < 1 ) {
 			# workflow not defined, use default enum
 			$t_arr  = explode_enum_string( $t_config_var_value );
 		} else {
 			# workflow defined - find allowed states
-			$t_arr  = explode_enum_string( $t_enum_workflow[$p_val] );
+			$t_arr  = explode_enum_string( $t_enum_workflow[$p_current_value] );
 		}
 
 		$t_enum_count = count( $t_arr );
+		$t_enum_list = array();
+		$t_current_state = '';
 
 		for ( $i = 0; $i < $t_enum_count; $i++ ) {
 			$t_elem  = explode_enum_arr( $t_arr[$i] );
-			$t_elem2 = get_enum_element( $p_enum_name, $t_elem[0] );
-			echo "<option value=\"$t_elem[0]\"";
-			check_selected( $t_elem[0], $p_val );
-			echo ">$t_elem2</option>";
+			$t_elem2 = get_enum_element( 'status', $t_elem[0] );
+			$t_status = $t_elem[0];
+			if ( $t_status == $p_current_value ) {
+				$t_current_state = $t_elem2;
+			}
+			if ( $t_current_auth >= access_get_status_threshold( $t_status ) ) {
+				$t_enum_list[$t_status] = $t_elem2;
+			}
 		} # end for
+
+		if ( count( $t_enum_list ) > 0 ) {
+			echo '<select name="' . $p_select_label . '">';
+			foreach ( $t_enum_list as $key => $val ) {
+				echo "<option value=\"$key\"";
+				check_selected( $val, $p_val );
+				echo ">$val</option>";
+			}
+			echo '</select>';
+		}else{
+			echo $t_current_state;
+		}
+
 	}
 	# --------------------
 	# prints the list of a project's users
 
Index: lang/strings_english.txt
===================================================================
RCS file: /cvsroot/mantisbt/mantisbt/lang/strings_english.txt,v
retrieving revision 1.192
diff -u -r1.192 strings_english.txt
--- lang/strings_english.txt	1 Aug 2004 22:24:59 -0000	1.192
+++ lang/strings_english.txt	1 Aug 2004 23:02:01 -0000
@@ -248,6 +248,7 @@
 $s_severity_enum_string = '10:feature,20:trivial,30:text,40:tweak,50:minor,60:major,70:crash,80:block';
 $s_reproducibility_enum_string = '10:always,30:sometimes,50:random,70:have not tried,90:unable to duplicate,100:N/A';
 $s_status_enum_string = '10:new,20:feedback,30:acknowledged,40:confirmed,50:assigned,80:resolved,90:closed';
+$s_status_label_enum_string = '10:new,20:feedback,30:acknowledge,40:confirm,50:assign,80:resolve,90:close';
 $s_resolution_enum_string = '10:open,20:fixed,30:reopened,40:unable to duplicate,50:not fixable,60:duplicate,70:not an issue,80:suspended,90:won\'t fix';
 $s_projection_enum_string = '10:none,30:tweak,50:minor fix,70:major rework,90:redesign';
 $s_eta_enum_string = '10:none,20:< 1 day,30:2-3 days,40:< 1 week,50:< 1 month,60:> 1 month';
@@ -391,6 +392,18 @@
 # bug_assign.php
 $s_bug_assign_msg = 'Issue has been successfully assigned...';
 
+# bug_change_status_page.php
+$s_new_bug_title = 'New Issue';
+$s_feedback_bug_title = 'Provide Feedback to Issue';
+$s_acknowledge_bug_title = 'Acknowledge Issue';
+$s_confirm_bug_title = 'Confirm Issue';
+$s_assign_bug_title = 'Assign Issue';
+$s_new_bug_button = 'New Issue';
+$s_feedback_bug_button = 'Provide Feedback';
+$s_acknowledge_bug_button = 'Acknowledge Issue';
+$s_confirm_bug_button = 'Confirm Issue';
+$s_assign_bug_button = 'Assign Issue';
+
 # bug_close.php
 $s_bug_close_msg = 'Issue has been closed...';
 $s_close_immediately = 'Close immediately:';
@@ -897,6 +910,7 @@
 $s_system_profile = 'System Description';
 $s_update_bug_button = 'Update Issue';
 $s_bug_assign_to_button = 'Assign To:';
+$s_bug_status_to_button = 'Change Status To:';
 $s_reopen_bug_button = 'Reopen Issue';
 $s_move_bug_button = 'Move Issue';
 $s_attached_files = 'Attached Files';