--- core/filter_api.php	2006/08/17 13:23:33
+++ core/filter_api.php	2006/08/02 12:25:25
@@ -341,47 +341,16 @@
 				$t_desired_statuses[] = $t_this_status;
 			}
 		} else {
-			# advanced filtering: same as simple above except that 'show_status' may be
-            # set to a list of statuses
+			# advanced filtering: ignore the hide
 			$t_any_found = false;
 			foreach( $t_filter['show_status'] as $t_this_status ) {
 				$t_desired_statuses[] = $t_this_status;
 				if ( ( META_FILTER_ANY == $t_this_status ) || ( is_blank( $t_this_status ) ) || ( 0 === $t_this_status ) ) {
 					$t_any_found = true;
-                    break;
 				}
 			}
-			if( $t_any_found ) {
+			if ( $t_any_found ) {
 				$t_desired_statuses = array();
-                
-                # Filter by 'hide_status' list, if necessary.
-                if( count($t_filter['hide_status']) > 0 && !in_array(META_FILTER_NONE, $t_filter['hide_status']) ) {
-                    if( count($t_filter['hide_status']) > 1 ) {
-                        # Specifically filter out these ones.
-                        foreach( $t_available_statuses as $t_this_available_status ) {
-                            if( !in_array($t_this_available_status, $t_filter['hide_status']) ) {
-                                $t_desired_statuses[] = $t_this_available_status;
-                            }
-                        }
-                    } else {
-                        # Filter out anything >= the single status listed.
-                        $t_status_cutoff = $t_filter['hide_status'][0];
-                        foreach( $t_available_statuses as $t_this_available_status ) {
-                            if( $t_this_available_status < $t_status_cutoff ) {
-                                $t_desired_statuses[] = $t_this_available_status;
-                            }
-                        }
-                    }
-                    
-                    # If this filters out all statuses then ensure we don't
-                    # end up showing everything below. While this is
-                    # technically user error, it would probably just be more
-                    # confusing for this case to be equivalent to where
-                    # show_status=any and hide_status=none.
-                    if( !count($t_desired_statuses) ) {
-                        $t_desired_statuses[] = META_FILTER_NONE;
-                    }
-                }
 			}
 		}
 
@@ -1380,7 +1349,9 @@
 				<a href="<?php PRINT $t_filters_url . 'show_status[]'; ?>" id="show_status_filter"><?php PRINT lang_get( 'status' ) ?>:</a>
 			</td>
 			<td class="small-caption" valign="top">
-                <a href="<?php PRINT $t_filters_url . 'hide_status[]'; ?>" id="hide_status_filter"><?php PRINT lang_get( 'hide_status' ) ?>:</a>
+				<?php if ( 'simple' == $t_view_type ) { ?>
+					<a href="<?php PRINT $t_filters_url . 'hide_status[]'; ?>" id="hide_status_filter"><?php PRINT lang_get( 'hide_status' ) ?>:</a>
+				<?php } ?>
 			</td>
 			<td class="small-caption" valign="top">
 				<a href="<?php PRINT $t_filters_url . 'show_build[]'; ?>" id="show_build_filter"><?php PRINT lang_get( 'product_build' ) ?>:</a>
@@ -1444,39 +1415,41 @@
 			</td>
 			<td class="small-caption" valign="top" id="hide_status_filter_target">
 							<?php
-                                $t_output = '';
-                                $t_none_found = false;
-                                if ( count( $t_filter['hide_status'] ) == 0 ) {
-                                    PRINT lang_get( 'none' );
-                                } else {
-                                    $t_first_flag = true;
-                                    foreach( $t_filter['hide_status'] as $t_current ) {
-                                        ?>
-                                        <input type="hidden" name="hide_status[]" value="<?php echo $t_current;?>" />
-                                        <?php
-                                        $t_this_string = '';
-                                        if ( ( $t_current == META_FILTER_NONE ) || ( is_blank( $t_current ) ) || ( $t_current === 0 ) ) {
-                                            $t_none_found = true;
-                                        } else {
-                                            $t_this_string = get_enum_element( 'status', $t_current );
-                                        }
-                                        if ( $t_first_flag != true ) {
-                                            $t_output = $t_output . '<br />';
-                                        } else {
-                                            $t_first_flag = false;
-                                        }
-                                        $t_output = $t_output . $t_this_string;
-                                    }
-                                    $t_hide_status_post = '';
-                                    if ( count( $t_filter['hide_status'] ) == 1 ) {
-                                        $t_hide_status_post = ' (' . lang_get( 'and_above' ) . ')';
-                                    }
-                                    if ( true == $t_none_found ) {
-                                        PRINT lang_get( 'none' );
-                                    } else {
-                                        PRINT $t_output . $t_hide_status_post;
-                                    }
-                                }
+								if ( 'simple' == $t_view_type ) {
+									$t_output = '';
+									$t_none_found = false;
+									if ( count( $t_filter['hide_status'] ) == 0 ) {
+										PRINT lang_get( 'none' );
+									} else {
+										$t_first_flag = true;
+										foreach( $t_filter['hide_status'] as $t_current ) {
+											?>
+											<input type="hidden" name="hide_status[]" value="<?php echo $t_current;?>" />
+											<?php
+											$t_this_string = '';
+											if ( ( $t_current == META_FILTER_NONE ) || ( is_blank( $t_current ) ) || ( $t_current === 0 ) ) {
+												$t_none_found = true;
+											} else {
+												$t_this_string = get_enum_element( 'status', $t_current );
+											}
+											if ( $t_first_flag != true ) {
+												$t_output = $t_output . '<br />';
+											} else {
+												$t_first_flag = false;
+											}
+											$t_output = $t_output . $t_this_string;
+										}
+										$t_hide_status_post = '';
+										if ( count( $t_filter['hide_status'] ) == 1 ) {
+											$t_hide_status_post = ' (' . lang_get( 'and_above' ) . ')';
+										}
+										if ( true == $t_none_found ) {
+											PRINT lang_get( 'none' );
+										} else {
+											PRINT $t_output . $t_hide_status_post;
+										}
+									}
+								}
 							?>
 			</td>
 			<td class="small-caption" valign="top" id="show_build_filter_target">
@@ -2364,19 +2337,9 @@
 		if ( substr( config_get( 'cookie_version' ), 1 ) > $t_cookie_vers ) { # if the version is old, update it
 			$p_filter_arr['_version'] = config_get( 'cookie_version' );
 		}
-        
-        $t_view_filters_setting = config_get( 'view_filters' );
-        $t_default_view_type = ( ADVANCED_ONLY == $t_view_filters_setting || ADVANCED_DEFAULT == $t_view_filters_setting ? 'advanced' : 'simple' );
-        # If config restricts view type to a particular one, just force that
-        # in all cases.
-        if( ADVANCED_ONLY == $t_view_filters_setting || SIMPLE_ONLY == $t_view_filters_setting ) {
-            $p_filter_arr['_view_type'] = $t_default_view_type;
-        }
-        # Otherwise just set to default if not already set.
-		elseif( !isset( $p_filter_arr['_view_type'] ) ) {
-			$p_filter_arr['_view_type'] = gpc_get_string( 'view_type', $t_default_view_type );
+		if ( !isset( $p_filter_arr['_view_type'] ) ) {
+			$p_filter_arr['_view_type'] = gpc_get_string( 'view_type', 'simple' );
 		}
-        
 		if ( !isset( $p_filter_arr['per_page'] ) ) {
 			$p_filter_arr['per_page'] = gpc_get_int( 'per_page', config_get( 'default_limit_view' ) );
 		}
@@ -2554,23 +2517,6 @@
 				}
 			}
 		}
-        
-        # Deal with conflicting settings for 'show status' and 'hide status'.
-        # The former takes priority and if it's set to anything except 'any'
-        # then 'hide status' can't be used.
-        $t_show_status_is_any = false;
-        $t_num_to_check = ( 'simple' == $p_filter_arr['_view_type'] ? 1 : count($p_filter_arr['show_status']) );
-        for( $i = 0; $i < $t_num_to_check; $i++ ) {
-            $t_this_status =  $p_filter_arr['show_status'][$i];
-            if( META_FILTER_ANY == $t_this_status || is_blank($t_this_status) || 0 === $t_this_status ) {
-                $t_show_status_is_any = true;
-                break;
-            }
-        }
-        if( !$t_show_status_is_any ) {
-            $p_filter_arr['hide_status'] = array( META_FILTER_NONE );
-        }
-        
 		# all of our filter values are now guaranteed to be there, and correct.
 		return $p_filter_arr;
 	}
