summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Bugzilla.pm10
-rw-r--r--Bugzilla/Flag.pm20
-rw-r--r--template/en/default/global/common-links.html.tmpl14
3 files changed, 38 insertions, 6 deletions
diff --git a/Bugzilla.pm b/Bugzilla.pm
index e35c75934..a20aa0f6b 100644
--- a/Bugzilla.pm
+++ b/Bugzilla.pm
@@ -47,6 +47,7 @@ use Bugzilla::User;
use Bugzilla::Error;
use Bugzilla::Util;
use Bugzilla::Field;
+use Bugzilla::Flag;
use File::Basename;
use File::Spec::Functions;
@@ -439,6 +440,15 @@ sub active_custom_fields {
return @{$class->request_cache->{active_custom_fields}};
}
+sub has_flags {
+ my $class = shift;
+
+ if (!defined $class->request_cache->{has_flags}) {
+ $class->request_cache->{has_flags} = Bugzilla::Flag::has_flags();
+ }
+ return $class->request_cache->{has_flags};
+}
+
sub hook_args {
my ($class, $args) = @_;
$class->request_cache->{hook_args} = $args if $args;
diff --git a/Bugzilla/Flag.pm b/Bugzilla/Flag.pm
index 00e40e33f..f8c43b508 100644
--- a/Bugzilla/Flag.pm
+++ b/Bugzilla/Flag.pm
@@ -191,6 +191,26 @@ sub attachment {
=over
+=item C<has_flags>
+
+Returns 1 if at least one flag exists in the DB, else 0. This subroutine
+is mainly used to decide to display the "(My )Requests" link in the footer.
+
+=back
+
+=cut
+
+sub has_flags {
+ my $dbh = Bugzilla->dbh;
+
+ my $has_flags = $dbh->selectrow_array('SELECT 1 FROM flags ' . $dbh->sql_limit(1));
+ return $has_flags || 0;
+}
+
+=pod
+
+=over
+
=item C<match($criteria)>
Queries the database for flags matching the given criteria
diff --git a/template/en/default/global/common-links.html.tmpl b/template/en/default/global/common-links.html.tmpl
index 94fed709f..db913d9a1 100644
--- a/template/en/default/global/common-links.html.tmpl
+++ b/template/en/default/global/common-links.html.tmpl
@@ -39,12 +39,14 @@
<li><span class="separator">| </span><a href="report.cgi">Reports</a></li>
<li>
- <span class="separator">| </span>
- [% IF user.id %]
- <a href="request.cgi?requester=[% user.login FILTER url_quote %]&amp;requestee=
- [% user.login FILTER url_quote %]&amp;do_union=1&amp;group=type&amp;action=queue">My Requests</a>
- [% ELSE %]
- <a href="request.cgi">Requests</a>
+ [% IF Bugzilla.has_flags %]
+ <span class="separator">| </span>
+ [% IF user.id %]
+ <a href="request.cgi?requester=[% user.login FILTER url_quote %]&amp;requestee=
+ [% user.login FILTER url_quote %]&amp;do_union=1&amp;group=type&amp;action=queue">My Requests</a>
+ [% ELSE %]
+ <a href="request.cgi">Requests</a>
+ [% END %]
[% END %]
[%-# Work around FF bug: keep this on one line %]</li>