requests to see more.
r=dkl, a=mkanat
default => 1
},
+ {
+ name => 'default_search_limit',
+ type => 't',
+ default => '500',
+ checker => \&check_numeric
+ },
+
{
name => 'max_search_results',
type => 't',
$limit = $max_results;
}
- if (defined $offset and not defined $limit) {
+ if (defined($offset) && !$limit) {
$limit = INT_MAX;
}
if (defined $limit) {
$vars->{'message'} = 'buglist_sorted_by_relevance'
}
+# In the HTML interface, by default, we limit the returned results,
+# which speeds up quite a few searches where people are really only looking
+# for the top results.
+if ($format->{'extension'} eq 'html' && !defined $cgi->param('limit')) {
+ $params->param('limit', Bugzilla->params->{'default_search_limit'});
+ $vars->{'default_limited'} = 1;
+}
+
# Generate the basic SQL query that will be used to generate the bug list.
my $search = new Bugzilla::Search('fields' => \@selectcolumns,
'params' => scalar $params->Vars,
my $query = $search->sql;
$vars->{'search_description'} = $search->search_description;
+# We don't want saved searches and other buglist things to save
+# our default limit.
+$params->delete('limit') if $vars->{'default_limited'};
################################################################################
# Query Execution
"Whether to allow a search on the 'Simple Search' page with an empty"
_ " 'Words' field.",
+ default_search_limit =>
+ "By default, $terms.Bugzilla limits searches done in the web"
+ _ " interface to returning only this many results, for performance"
+ _ " reasons. (This only affects the HTML format of search results--CSV,"
+ _ " XML, and other formats are exempted.) Users can click a link on the"
+ _ " search result page to see all the results."
+ _ "<p>Usually you should not have to change this--the default value"
+ _ " should be acceptable for almost most installations.</p>",
+
max_search_results =>
"The maximum number of $terms.bugs that a search can"
_ " <strong>ever</strong> return. Tabular and graphical reports"
- _ " are exempted from this limit, however."
+ _ " are exempted from this limit, however.",
} %]
[%############################################################################%]
[% IF bugs.size > 9 %]
- <span class="bz_result_count">
- [% bugs.size %] [%+ terms.bugs %] found.
- </span>
+ [% PROCESS num_results %]
[% END %]
[%############################################################################%]
[%# Succeeding Status Line #%]
[%############################################################################%]
-<span class="bz_result_count">
- [% IF bugs.size == 0 %]
- <span class="zero_results">[% terms.zeroSearchResults %].</span>
- [% ELSIF bugs.size == 1 %]
- One [% terms.bug %] found.
- [% ELSE %]
- [% bugs.size %] [%+ terms.bugs %] found.
- [% END %]
-</span>
+[% PROCESS num_results %]
[% IF bugs.size == 0 %]
<ul class="zero_result_links">
[% PROCESS global/footer.html.tmpl %]
+[%##########%]
+[%# Blocks #%]
+[%##########%]
+
[% BLOCK edit_search_url %]
[% editqueryname = searchname OR defaultsavename OR '' %]
query.cgi?[% urlquerypart FILTER html %]
in the "[% one_product.name FILTER html %]" product
[% END %]</a>
[% END %]
+
+[% BLOCK num_results %]
+ <span class="bz_result_count">
+ [% IF bugs.size == 0 %]
+ <span class="zero_results">[% terms.zeroSearchResults %].</span>
+ [% ELSIF default_limited AND bugs.size >= Param('default_search_limit') %]
+ This result was limited to [% Param('default_search_limit') FILTER html %]
+ [%+ terms.bugs %].
+ <a href="buglist.cgi?[% urlquerypart FILTER html %]
+ [%- "&order=$qorder" FILTER html IF order %]&limit=0">See
+ all search results for this query</a>.
+ [% ELSIF bugs.size == 1 %]
+ One [% terms.bug %] found.
+ [% ELSE %]
+ [% bugs.size %] [%+ terms.bugs %] found.
+ [% END %]
+ </span>
+[% END %]