summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Bugzilla/Template.pm6
-rw-r--r--template/en/default/global/product-select.html.tmpl6
2 files changed, 10 insertions, 2 deletions
diff --git a/Bugzilla/Template.pm b/Bugzilla/Template.pm
index cf337d9fc..d1457a4fa 100644
--- a/Bugzilla/Template.pm
+++ b/Bugzilla/Template.pm
@@ -17,6 +17,7 @@ use Bugzilla::Hook;
use Bugzilla::Install::Requirements;
use Bugzilla::Install::Util qw(install_string template_include_path
include_languages);
+use Bugzilla::Classification;
use Bugzilla::Keyword;
use Bugzilla::Util;
use Bugzilla::Error;
@@ -1018,6 +1019,11 @@ sub create {
'css_files' => \&css_files,
yui_resolve_deps => \&yui_resolve_deps,
+ # All classifications (sorted by sortkey, name)
+ 'all_classifications' => sub {
+ return [map { $_->name } Bugzilla::Classification->get_all()];
+ },
+
# Whether or not keywords are enabled, in this Bugzilla.
'use_keywords' => sub { return Bugzilla::Keyword->any_exist; },
diff --git a/template/en/default/global/product-select.html.tmpl b/template/en/default/global/product-select.html.tmpl
index ba5ce73b4..23a7b3d58 100644
--- a/template/en/default/global/product-select.html.tmpl
+++ b/template/en/default/global/product-select.html.tmpl
@@ -63,8 +63,10 @@
[% END %]
[% END %]
[% END %]
- [% FOREACH c = classifications.keys.sort %]
- <optgroup label="[% c FILTER html %]">
+
+ [% FOREACH c = all_classifications %]
+ [% NEXT UNLESS classifications.${c}.size %]
+ <optgroup label="[% c FILTER html %]">
[% FOREACH p = classifications.$c %]
<option value="[% p.$valueattribute FILTER html %]"
[% " selected" IF (cgi.param(name) == p.name) || (value.contains(p.name)) %]>