Patch for bug 275788: Provide a line of code that defines legal query formats for other scripts to use; patch by Colin S. Ogilvie <colin.ogilvie@gmail.com>, r=vladd, a=justdave.
git-svn-id: svn://10.0.0.236/trunk@167132 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
parent
4a13f4b7a6
commit
378b821e00
@ -32,6 +32,8 @@ use strict;
|
||||
use vars qw($userid);
|
||||
|
||||
package Bugzilla::Search;
|
||||
use base qw(Exporter);
|
||||
@Bugzilla::Search::EXPORT = qw(IsValidQueryType);
|
||||
|
||||
use Bugzilla::Config;
|
||||
use Bugzilla::Error;
|
||||
@ -1436,4 +1438,13 @@ sub ValidateGroupName {
|
||||
return $ret;
|
||||
}
|
||||
|
||||
# Validate that the query type is one we can deal with
|
||||
sub IsValidQueryType
|
||||
{
|
||||
my ($queryType) = @_;
|
||||
if (grep { $_ eq $queryType } qw(specific advanced)) {
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
1;
|
||||
|
||||
@ -30,6 +30,7 @@ use lib ".";
|
||||
require "CGI.pl";
|
||||
|
||||
use Bugzilla::Constants;
|
||||
use Bugzilla::Search;
|
||||
|
||||
use vars qw(
|
||||
@CheckOptionValues
|
||||
@ -439,7 +440,7 @@ if (!($cgi->param('query_format') || $cgi->param('format'))) {
|
||||
|
||||
# Set cookie to current format as default, but only if the format
|
||||
# one that we should remember.
|
||||
if (grep { $_ eq $vars->{'format'} } qw(specific advanced)) {
|
||||
if (IsValidQueryType($vars->{'format'})) {
|
||||
$cgi->send_cookie(-name => 'DEFAULTFORMAT',
|
||||
-value => $vars->{'format'},
|
||||
-expires => "Fri, 01-Jan-2038 00:00:00 GMT");
|
||||
|
||||
@ -27,6 +27,7 @@ use lib qw(.);
|
||||
|
||||
use Bugzilla;
|
||||
use Bugzilla::Constants;
|
||||
use Bugzilla::Search;
|
||||
|
||||
require "CGI.pl";
|
||||
|
||||
@ -304,13 +305,18 @@ sub DoSavedSearches() {
|
||||
my @queries = @{Bugzilla->user->queries};
|
||||
my @newqueries;
|
||||
foreach my $q (@queries) {
|
||||
if ($q->{'query'} !~ /query_format=(advanced|specific)/) {
|
||||
if ($q->{'query'} =~ /query_format=&/) {
|
||||
$q->{'query'} =~ s/query_format=&/query_format=advanced&/;
|
||||
}
|
||||
else {
|
||||
$q->{'query'} .= '&query_format=advanced';
|
||||
if ($q->{'query'} =~ /query_format=([^&]*)/) {
|
||||
my $format = $1;
|
||||
if (!IsValidQueryType($format)) {
|
||||
if ($format eq "") {
|
||||
$q->{'query'} =~ s/query_format=/query_format=advanced/;
|
||||
}
|
||||
else {
|
||||
$q->{'query'} .= '&query_format=advanced';
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$q->{'query'} .= '&query_format=advanced';
|
||||
}
|
||||
push @newqueries, $q;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user