Bug 68921, Bug 72816

git-svn-id: svn://svn.office.custis.ru/3rdparty/bugzilla.org/trunk@1111 6955db30-a419-402b-8a0d-67ecbb4d7f56
master
vfilippov 2010-12-02 13:03:26 +00:00
parent 3ef77e17b4
commit dc2124a304
6 changed files with 28 additions and 6 deletions

View File

@ -1024,6 +1024,13 @@ sub init {
if (!CHART_FIELDS_HASH->{$f} && $chart != -1) {
ThrowCodeError("invalid_field_name", {field => $f});
}
if (COLUMNS->{$f})
{
for (@{ COLUMNS->{$f}->{joins} || [] })
{
push @supptables, $_ if lsearch(\@supptables, $_) < 0;
}
}
# CustIS Bug 53836
if ($t eq "equals" || $t eq "exact" || $t eq "anyexact") {
$v =~ s/\%user\%/$user->login/isge;
@ -1228,7 +1235,6 @@ sub SqlifyDate {
return sprintf("%4d-%02d-%02d 00:00:00", $year+1900, $month+1, $mday);
}
if ($str =~ /^(-|\+)?(\d+)([hHdDwWmMyY])$/) { # relative date
my ($sign, $amount, $unit, $date) = ($1, $2, lc $3, time);
my ($sec, $min, $hour, $mday, $month, $year, $wday) = localtime($date);

View File

@ -224,6 +224,18 @@ sub quicksearch {
my @params_to_strip = ('quicksearch', 'load', 'run');
my $modified_query_string = $cgi->canonicalise_query(@params_to_strip);
my $order;
if ($order = $cgi->cookie('LASTORDER'))
{
$order =~ s/relevance(\s*(a|de)sc)?,|,relevance(\s*(a|de)sc)?//iso;
$order = "relevance DESC,$order";
}
else
{
$order = "relevance DESC";
}
$cgi->param('order', $order);
if ($cgi->param('load')) {
my $urlbase = correct_urlbase();
# Param 'load' asks us to display the query in the advanced search form.

View File

@ -58,6 +58,8 @@ WHERE col_f.bug_id=bugs.bug_id AND col_ft.is_requesteeble=1 AND col_ft.is_reques
};
### end Testopia ###
$columns->{relevance}->{title} = 'Relevance';
return 1;
}
@ -69,7 +71,7 @@ sub colchange_columns
my $defs = Bugzilla::Search->COLUMNS;
for (sort keys %$defs)
{
push @$columns, $_ if lsearch($columns, $_) < 0 && $_ ne 'bug_id' && $_ ne 'relevance';
push @$columns, $_ if lsearch($columns, $_) < 0 && $_ ne 'bug_id';
}
@$columns = sort { $defs->{$a}->{title} cmp $defs->{$b}->{title} } @$columns;

View File

@ -263,7 +263,7 @@ if ($userid) {
# Sort order
my $deforder;
my @orders = ('Bug Number', 'Importance', 'Assignee', 'Last Changed');
my @orders = ('Bug Number', 'Importance', 'Assignee', 'Last Changed', 'relevance');
if ($cgi->cookie('LASTORDER')) {
$deforder = "Reuse same sort as last time";

View File

@ -3,7 +3,7 @@
[% FOREACH i = search_description %]
<li>
[% IF i.field %]
<span class="search_field">[% field_descs.${i.field} | html %]:</span>
<span class="search_field">[% Bugzilla.request_cache.search_chart_fields_hash.${i.field}.description | html %]:</span>
[% END %]
[% IF search_shown_types.${i.type} || debug %]
([% search_descs.${i.type} | html %])

View File

@ -37,7 +37,9 @@
"Bug Number" => "$terms.Bug Number",
"Importance" => "Importance",
"Assignee" => "Assignee",
"Last Changed" => "Last Changed" } %]
"Last Changed" => "Last Changed",
"relevance" => "Relevance to full-text search",
} %]
<input type="hidden" name="cmdtype" value="doit">
@ -46,7 +48,7 @@
<select name="order" id="order">
[% FOREACH order = orders %]
<option value="[% order FILTER html %]"
[% " selected" IF default.order.0 == order %]>
[% " selected='selected'" IF default.order.0 == order %]>
[% (ordersdesc.$order || "Custom: " _ order) FILTER html %]</option>
[% END %]
</select>