From dde670d3493e9f9eb722cd3b1b9337879e51144b Mon Sep 17 00:00:00 2001 From: "mkanat%bugzilla.org" <> Date: Wed, 17 Sep 2008 00:52:46 +0000 Subject: Bug 454892: Improve Bugzilla::CGI::clean_search_url to remove all the normal "default" fields Patch By Max Kanat-Alexander r=dkl, a=mkanat --- Bugzilla/CGI.pm | 43 +++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 41 insertions(+), 2 deletions(-) (limited to 'Bugzilla') diff --git a/Bugzilla/CGI.pm b/Bugzilla/CGI.pm index e6238f334..6d6ab575c 100644 --- a/Bugzilla/CGI.pm +++ b/Bugzilla/CGI.pm @@ -144,8 +144,47 @@ sub clean_search_url { # Delete certain parameters if the associated parameter is empty. $self->delete('bugidtype') if !$self->param('bug_id'); - $self->delete('emailtype1') if !$self->param('email1'); - $self->delete('emailtype2') if !$self->param('email2'); + + foreach my $num (1,2) { + # If there's no value in the email field, delete the related fields. + if (!$self->param("email$num")) { + foreach my $field qw(type assigned_to reporter qa_contact + cc longdesc) + { + $self->delete("email$field$num"); + } + } + } + + # chfieldto is set to "Now" by default in query.cgi. But if none + # of the other chfield parameters are set, it's meaningless. + if (!defined $self->param('chfieldfrom') && !$self->param('chfield') + && !defined $self->param('chfieldvalue')) + { + $self->delete('chfieldto'); + } + + # cmdtype "doit" is the default from query.cgi, but it's only meaningful + # if there's a remtype parameter. + if (defined $self->param('cmdtype') && $self->param('cmdtype') eq 'doit' + && !defined $self->param('remtype')) + { + $self->delete('cmdtype'); + } + + # "Reuse same sort as last time" is actually the default, so we don't + # need it in the URL. + if ($self->param('order') + && $self->param('order') eq 'Reuse same sort as last time') + { + $self->delete('order'); + } + + # And now finally, if query_format is our only parameter, that + # really means we have no parameters, so we should delete query_format. + if ($self->param('query_format') && scalar($self->param()) == 1) { + $self->delete('query_format'); + } } # Overwrite to ensure nph doesn't get set, and unset HEADERS_ONCE -- cgit v1.2.3-24-g4f1b