]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 173571 - Turn "all selected" into "none selected" for efficiency. Patch by gerv...
authorgerv%gerv.net <>
Tue, 5 Nov 2002 06:43:28 +0000 (06:43 +0000)
committergerv%gerv.net <>
Tue, 5 Nov 2002 06:43:28 +0000 (06:43 +0000)
Bugzilla/Search.pm

index 2360d95e4d609e832935de18ec169e7429b47318..6477d7e6175bd9bec45c9930a380489a9a3b7cd6 100644 (file)
@@ -68,6 +68,8 @@ sub init {
     my @specialchart;
     my @andlist;
 
+    &::GetVersionTable();
+    
     # First, deal with all the old hard-coded non-chart-based poop.
     if (lsearch($fieldsref, 'map_assigned_to.login_name') >= 0 || 
         lsearch($fieldsref, 'map_assigned_to.realname') >= 0) {
@@ -116,6 +118,24 @@ sub init {
         push(@specialchart, ["bug_id", $type, join(',', $params->param('bug_id'))]);
     }
 
+    # If the user has selected all of either status or resolution, change to
+    # selecting none. This is functionally equivalent, but quite a lot faster.
+    if ($params->param('bug_status')) {
+        my @bug_statuses = $params->param('bug_status');
+        
+        if (scalar(@bug_statuses) == scalar(@::legal_bug_status)) {
+            $params->delete('bug_status');
+        }
+    }
+    
+    if ($params->param('resolution')) {
+        my @resolutions = $params->param('resolution');
+        
+        if (scalar(@resolutions) == scalar(@::legal_resolution)) {
+            $params->delete('resolution');
+        }
+    }
+    
     my @legal_fields = ("product", "version", "rep_platform", "op_sys",
                         "bug_status", "resolution", "priority", "bug_severity",
                         "assigned_to", "reporter", "component",