aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xquery.cgi48
-rw-r--r--template/en/default/search/form.html.tmpl12
2 files changed, 24 insertions, 36 deletions
diff --git a/query.cgi b/query.cgi
index daa34cd1f..af4b54164 100755
--- a/query.cgi
+++ b/query.cgi
@@ -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>