diff options
-rwxr-xr-x | query.cgi | 48 | ||||
-rw-r--r-- | template/en/default/search/form.html.tmpl | 12 |
2 files changed, 24 insertions, 36 deletions
@@ -242,46 +242,34 @@ foreach my $m (@::legal_target_milestone) { } } -# Sort the component list... -my $comps = \%::components; -foreach my $p (@products) { - my @tmp = sort { lc($a) cmp lc($b) } @{$comps->{$p}}; - $comps->{$p} = \@tmp; -} - -# and the version list... -my $vers = \%::versions; -foreach my $p (@products) { - my @tmp = sort { lc($a) cmp lc($b) } @{$vers->{$p}}; - $vers->{$p} = \@tmp; -} - -# and the milestone list. -my $mstones; -if (Param('usetargetmilestone')) { - $mstones = \%::target_milestone; - foreach my $p (@products) { - my @tmp = sort { lc($a) cmp lc($b) } @{$mstones->{$p}}; - $mstones->{$p} = \@tmp; - } +# Create data structures representing each product. +for (my $i = 0; $i < @products; ++$i) { + my $p = $products[$i]; + + # Create hash to hold attributes for each product. + my %product = ( + 'name' => $p, + 'components' => [ sort { lc($a) cmp lc($b) } @{$::components{$p}} ], + 'versions' => [ sort { lc($a) cmp lc($b) } @{$::versions{$p}} ] + ); + + if (Param('usetargetmilestone')) { + $product{'milestones'} = + [ sort { lc($a) cmp lc($b) } @{$::target_milestone{$p}} ]; + } + + # Assign hash back to product array. + $products[$i] = \%product; } -# "foo" or "foos" is a list of all the possible (or legal) products, -# components, versions or target milestones. -# "foobyproduct" is a hash, keyed by product, of sorted lists -# of the same data. - $vars->{'product'} = \@products; # We use 'component_' because 'component' is a Template Toolkit reserved word. -$vars->{'componentsbyproduct'} = $comps; $vars->{'component_'} = \@components; -$vars->{'versionsbyproduct'} = $vers; $vars->{'version'} = \@versions; if (Param('usetargetmilestone')) { - $vars->{'milestonesbyproduct'} = $mstones; $vars->{'target_milestone'} = \@milestones; } diff --git a/template/en/default/search/form.html.tmpl b/template/en/default/search/form.html.tmpl index 4127d841c..b3c87b5cc 100644 --- a/template/en/default/search/form.html.tmpl +++ b/template/en/default/search/form.html.tmpl @@ -41,12 +41,12 @@ var tms = new Array(); [% n = 0 %] [% FOREACH p = product %] cpts[[% n %]] = [ - [%- FOREACH item = componentsbyproduct.$p %]'[% item FILTER js %]'[% ", " UNLESS loop.last %] [%- END -%] ]; + [%- FOREACH item = p.components %]'[% item FILTER js %]'[% ", " UNLESS loop.last %] [%- END -%] ]; vers[[% n %]] = [ - [%- FOREACH item = versionsbyproduct.$p -%]'[% item FILTER js %]'[% ", " UNLESS loop.last %] [%- END -%] ]; + [%- FOREACH item = p.versions -%]'[% item FILTER js %]'[% ", " UNLESS loop.last %] [%- END -%] ]; [% IF Param('usetargetmilestone') %] tms[[% n %]] = [ - [%- FOREACH item = milestonesbyproduct.$p %]'[% item FILTER js %]'[% ", " UNLESS loop.last %] [%- END -%] ]; + [%- FOREACH item = p.milestones %]'[% item FILTER js %]'[% ", " UNLESS loop.last %] [%- END -%] ]; [% END %] [% n = n+1 %] [% END %] @@ -375,9 +375,9 @@ function selectProduct(f) { <select name="product" multiple="multiple" size="5" id="product" onchange="selectProduct(this.form);"> [% FOREACH p = product %] - <option value="[% p FILTER html %]" - [% " selected" IF lsearch(default.product, p) != -1 %]> - [% p FILTER html %]</option> + <option value="[% p.name FILTER html %]" + [% " selected" IF lsearch(default.product, p.name) != -1 %]> + [% p.name FILTER html %]</option> [% END %] </select> </label> |