diff options
-rw-r--r-- | Bugzilla.pm | 10 | ||||
-rw-r--r-- | Bugzilla/Flag.pm | 20 | ||||
-rw-r--r-- | template/en/default/global/common-links.html.tmpl | 14 |
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 %]&requestee= - [% user.login FILTER url_quote %]&do_union=1&group=type&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 %]&requestee= + [% user.login FILTER url_quote %]&do_union=1&group=type&action=queue">My Requests</a> + [% ELSE %] + <a href="request.cgi">Requests</a> + [% END %] [% END %] [%-# Work around FF bug: keep this on one line %]</li> |