diff --git a/core/html_api.php b/core/html_api.php
index 281c8bf5c3..7caeaec758 100644
--- a/core/html_api.php
+++ b/core/html_api.php
@@ -66,6 +66,8 @@
* @uses error_api.php
* @uses event_api.php
* @uses file_api.php
+ * @uses filter_api.php
+ * @uses filter_constants_inc.php
* @uses form_api.php
* @uses helper_api.php
* @uses lang_api.php
@@ -89,6 +91,8 @@
require_api( 'error_api.php' );
require_api( 'event_api.php' );
require_api( 'file_api.php' );
+require_api( 'filter_api.php' );
+require_api( 'filter_constants_inc.php' );
require_api( 'form_api.php' );
require_api( 'helper_api.php' );
require_api( 'lang_api.php' );
@@ -1219,6 +1223,15 @@ function html_status_legend() {
echo '
';
echo '';
+ # Don't show the legend if only one status is selected by the current filter
+ $t_current_filter = current_user_get_bug_filter();
+ $t_simple_filter = $t_current_filter['_view_type'] == 'simple';
+ if( $t_simple_filter ) {
+ if( !filter_field_is_any( $t_current_filter[FILTER_PROPERTY_STATUS_ID][0] ) ) {
+ return null;
+ }
+ }
+
$t_status_array = MantisEnum::getAssocArrayIndexedByValues( config_get( 'status_enum_string' ) );
$t_status_names = MantisEnum::getAssocArrayIndexedByValues( lang_get( 'status_enum_string' ) );
$enum_count = count( $t_status_array );
@@ -1236,6 +1249,27 @@ function html_status_legend() {
}
}
+ # Remove status values that won't appear as a result of the current filter
+ foreach( $t_status_array as $t_status => $t_name ) {
+ if( $t_simple_filter ) {
+ if( !filter_field_is_none( $t_current_filter[FILTER_PROPERTY_HIDE_STATUS_ID][0] ) &&
+ $t_status >= $t_current_filter[FILTER_PROPERTY_HIDE_STATUS_ID][0] ) {
+ unset( $t_status_array[$t_status] );
+ }
+ } else {
+ if( !in_array( META_FILTER_ANY, $t_current_filter[FILTER_PROPERTY_STATUS_ID] ) &&
+ !in_array( $t_status, $t_current_filter[FILTER_PROPERTY_STATUS_ID] ) ) {
+ unset( $t_status_array[$t_status] );
+ }
+ }
+ }
+
+ # If there aren't at least two statuses showable by the current filter,
+ # don't draw the status bar
+ if( count( $t_status_array ) <= 1 ) {
+ return null;
+ }
+
# draw the status bar
$width = (int)( 100 / count( $t_status_array ) );
foreach( $t_status_array as $t_status => $t_name ) {