summaryrefslogtreecommitdiffstats
path: root/Bugzilla/Search
diff options
context:
space:
mode:
authorlpsolit%gmail.com <>2008-11-09 02:01:39 +0100
committerlpsolit%gmail.com <>2008-11-09 02:01:39 +0100
commit92bcb0d9b836c27fa7cbfe57e5de1666be3dde76 (patch)
treeaad2a56bff48038118996dd5a1bbee8e4e1321a6 /Bugzilla/Search
parent2dcb25783adbebb426c8f22ca3606ade097056fe (diff)
downloadbugzilla-92bcb0d9b836c27fa7cbfe57e5de1666be3dde76.tar.gz
bugzilla-92bcb0d9b836c27fa7cbfe57e5de1666be3dde76.tar.xz
Bug 364162: Code determining if named queries should be shown in the page footer is suboptimal - Patch by Frédéric Buclin <LpSolit@gmail.com> r/a=mkanat
Diffstat (limited to 'Bugzilla/Search')
-rw-r--r--Bugzilla/Search/Saved.pm24
1 files changed, 24 insertions, 0 deletions
diff --git a/Bugzilla/Search/Saved.pm b/Bugzilla/Search/Saved.pm
index 9aa27714d..c8322242b 100644
--- a/Bugzilla/Search/Saved.pm
+++ b/Bugzilla/Search/Saved.pm
@@ -117,6 +117,24 @@ sub create {
return $obj;
}
+sub preload {
+ my ($searches) = @_;
+ my $dbh = Bugzilla->dbh;
+
+ return unless scalar @$searches;
+
+ my @query_ids = map { $_->id } @$searches;
+ my $queries_in_footer = $dbh->selectcol_arrayref(
+ 'SELECT namedquery_id
+ FROM namedqueries_link_in_footer
+ WHERE ' . $dbh->sql_in('namedquery_id', \@query_ids) . ' AND user_id = ?',
+ undef, Bugzilla->user->id);
+
+ my %links_in_footer = map { $_ => 1 } @$queries_in_footer;
+ foreach my $query (@$searches) {
+ $query->{link_in_footer} = ($links_in_footer{$query->id}) ? 1 : 0;
+ }
+}
#####################
# Complex Accessors #
#####################
@@ -250,6 +268,12 @@ Does not accept a bare C<name> argument. Instead, accepts only an id.
See also: L<Bugzilla::Object/new>.
+=item C<preload>
+
+Sets C<link_in_footer> for all given saved searches at once, for the
+currently logged in user. This is much faster than calling this method
+for each saved search individually.
+
=back