New version of S5: "addcss" attribute, refactored styles (common part moved to s5-base.css), style debug
git-svn-id: svn://svn.office.custis.ru/3rdparty/bugzilla.org/trunk@713 6955db30-a419-402b-8a0d-67ecbb4d7f56master
parent
6ef010a415
commit
4d1cdd81a5
|
@ -174,55 +174,32 @@ sub quicksearch {
|
|||
my (%states, %resolutions);
|
||||
|
||||
foreach (@$legal_statuses) {
|
||||
push(@closedStates, $_) unless is_open_state($_);
|
||||
push @closedStates, $_ unless is_open_state($_);
|
||||
}
|
||||
foreach (@openStates) { $states{$_} = 1 }
|
||||
if ($words[0] eq 'OPEN') {
|
||||
|
||||
if ($words[0] eq 'OPEN')
|
||||
{
|
||||
shift @words;
|
||||
%states = map { $_ => 1 } @openStates;
|
||||
}
|
||||
elsif ($words[0] =~ /^\+[A-Z]+(,[A-Z]+)*$/) {
|
||||
# e.g. +DUP,FIX
|
||||
if (matchPrefixes(\%states,
|
||||
\%resolutions,
|
||||
[split(/,/, substr($words[0], 1))],
|
||||
\@closedStates,
|
||||
$legal_resolutions)) {
|
||||
shift @words;
|
||||
# Allowing additional resolutions means we need to keep
|
||||
# the "no resolution" resolution.
|
||||
$resolutions{'---'} = 1;
|
||||
}
|
||||
else {
|
||||
# Carry on if no match found.
|
||||
}
|
||||
}
|
||||
elsif ($words[0] =~ /^[A-Z]+(,[A-Z]+)*$/) {
|
||||
elsif ($words[0] =~ /^[A-Z]+(,[A-Z]+)*$/)
|
||||
{
|
||||
# e.g. NEW,ASSI,REOP,FIX
|
||||
undef %states;
|
||||
if (matchPrefixes(\%states,
|
||||
\%resolutions,
|
||||
[split(/,/, $words[0])],
|
||||
$legal_statuses,
|
||||
$legal_resolutions)) {
|
||||
my (%st, %res);
|
||||
if (matchPrefixes(\%st, \%res, [split(/,/, $words[0])],
|
||||
$legal_statuses, $legal_resolutions))
|
||||
{
|
||||
shift @words;
|
||||
}
|
||||
else {
|
||||
# Carry on if no match found
|
||||
foreach (@openStates) { $states{$_} = 1 }
|
||||
%states = %st;
|
||||
%resolutions = %res;
|
||||
}
|
||||
}
|
||||
else {
|
||||
else
|
||||
{
|
||||
# Default: search for ALL BUGS! (Vitaliy Filippov <vfilippov@custis.ru> 2009-01-30)
|
||||
foreach (@$legal_statuses) { $states{$_} = 1 }
|
||||
%states = map { $_ => 1 } @$legal_statuses;
|
||||
}
|
||||
|
||||
# If we have wanted resolutions, allow closed states
|
||||
if (keys(%resolutions)) {
|
||||
foreach (@closedStates) { $states{$_} = 1 }
|
||||
}
|
||||
|
||||
$cgi->param('bug_status', keys(%states));
|
||||
$cgi->param('resolution', keys(%resolutions));
|
||||
my $content = '';
|
||||
|
||||
# Loop over all main-level QuickSearch words.
|
||||
|
@ -275,7 +252,18 @@ sub quicksearch {
|
|||
# generic field1,field2,field3:value1,value2 notation
|
||||
my @fields = split(/,/, $1);
|
||||
my @values = split(/,/, $2);
|
||||
foreach my $field (@fields) {
|
||||
foreach my $field (@fields)
|
||||
{
|
||||
if ($field eq 'status')
|
||||
{
|
||||
my (%st, %res);
|
||||
if (matchPrefixes(\%st, \%res, \@values, $legal_statuses, $legal_resolutions))
|
||||
{
|
||||
%states = %st;
|
||||
%resolutions = %res;
|
||||
}
|
||||
last;
|
||||
}
|
||||
# Skip and record any unknown fields
|
||||
if (!defined(MAPPINGS->{$field})) {
|
||||
push(@unknownFields, $field);
|
||||
|
@ -336,6 +324,14 @@ sub quicksearch {
|
|||
} # foreach (@words)
|
||||
$cgi->param('content', $content);
|
||||
|
||||
# If we have wanted resolutions, allow closed states
|
||||
if (keys %resolutions) {
|
||||
foreach (@closedStates) { $states{$_} = 1 }
|
||||
}
|
||||
|
||||
$cgi->param('bug_status', keys(%states));
|
||||
$cgi->param('resolution', keys(%resolutions));
|
||||
|
||||
# Inform user about any unknown fields
|
||||
if (scalar(@unknownFields)) {
|
||||
ThrowUserError("quicksearch_unknown_field",
|
||||
|
@ -375,7 +371,7 @@ sub splitString {
|
|||
my $i = 0;
|
||||
|
||||
# Now split on quote sign; be tolerant about unclosed quotes
|
||||
@quoteparts = split(/"/, $string);
|
||||
@quoteparts = split(/\"/, $string, -1);
|
||||
foreach my $part (@quoteparts) {
|
||||
# After every odd quote, quote special chars
|
||||
$part = url_quote($part) if $i++ % 2;
|
||||
|
@ -385,14 +381,14 @@ sub splitString {
|
|||
|
||||
# Now split on unescaped whitespace
|
||||
@parts = split(/\s+/, $string);
|
||||
foreach (@parts) {
|
||||
# Protect plus signs from becoming a blank.
|
||||
# If "+" appears as the first character, leave it alone
|
||||
# as it has a special meaning. Strings which start with
|
||||
# "+" must be quoted.
|
||||
s/(?<!^)\+/%2B/g;
|
||||
# Remove quotes
|
||||
s/"//g;
|
||||
foreach (@parts)
|
||||
{
|
||||
if (/^".*"$/s)
|
||||
{
|
||||
# Decode previously encoded strings
|
||||
$_ = url_decode($_);
|
||||
Encode::_utf8_on($_);
|
||||
}
|
||||
}
|
||||
return @parts;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue