From: gerv%gerv.net <> Date: Tue, 5 Nov 2002 06:43:28 +0000 (+0000) Subject: Bug 173571 - Turn "all selected" into "none selected" for efficiency. Patch by gerv... X-Git-Tag: bugzilla-2.17.1~35 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=952d1ad687cb0ad29188c71fab2ad40e5ec984ba;p=thirdparty%2Fbugzilla.git Bug 173571 - Turn "all selected" into "none selected" for efficiency. Patch by gerv; r=justdave. --- diff --git a/Bugzilla/Search.pm b/Bugzilla/Search.pm index 2360d95e4d..6477d7e617 100644 --- a/Bugzilla/Search.pm +++ b/Bugzilla/Search.pm @@ -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",