diff options
-rwxr-xr-x | request.cgi | 17 | ||||
-rw-r--r-- | template/en/default/request/queue.html.tmpl | 8 |
2 files changed, 20 insertions, 5 deletions
diff --git a/request.cgi b/request.cgi index c854a1767..cad1f6f53 100755 --- a/request.cgi +++ b/request.cgi @@ -76,6 +76,15 @@ else { $vars->{'products'} = $user->get_selectable_products; $vars->{'types'} = \@types; $vars->{'requests'} = {}; + + my %components; + foreach my $prod (@{$vars->{'products'}}) { + foreach my $comp (@{$prod->components}) { + $components{$comp->name} = 1; + } + } + $vars->{'components'} = [ sort { $a cmp $b } keys %components ]; + $template->process('request/queue.html.tmpl', $vars) || ThrowTemplateError($template->error()); } @@ -307,6 +316,14 @@ sub queue { $vars->{'requests'} = \@requests; $vars->{'types'} = \@types; + my %components; + foreach my $prod (@{$vars->{'products'}}) { + foreach my $comp (@{$prod->components}) { + $components{$comp->name} = 1; + } + } + $vars->{'components'} = [ sort { $a cmp $b } keys %components ]; + # Generate and return the UI (HTML page) from the appropriate template. $template->process("request/queue.html.tmpl", $vars) || ThrowTemplateError($template->error()); diff --git a/template/en/default/request/queue.html.tmpl b/template/en/default/request/queue.html.tmpl index 0d626a2e1..af911b2ef 100644 --- a/template/en/default/request/queue.html.tmpl +++ b/template/en/default/request/queue.html.tmpl @@ -89,11 +89,9 @@ to some group are shown by default. <td> <select name="component"> <option value="">Any</option> - [% FOREACH prod = products %] - [% FOREACH comp = prod.components %] - <option value="[% comp.name FILTER html %]" [% "selected" IF cgi.param('component') == comp.name %]> - [% comp.name FILTER html %]</option> - [% END %] + [% FOREACH comp = components %] + <option value="[% comp FILTER html %]" [% "selected" IF cgi.param('component') == comp %]> + [% comp FILTER html %]</option> [% END %] </select> </td> |