help-gnats
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Removed lines in responsible


From: Lars Henriksen
Subject: Re: Removed lines in responsible
Date: Thu, 31 Oct 2002 21:29:27 +0100
User-agent: Mutt/1.4i

On Mon, Oct 28, 2002 at 09:37:28AM +0100, Lars Henriksen wrote:
> On Sun, Oct 27, 2002 at 10:48:14PM +0100, Yngve Svendsen wrote:
> > At 13:25 24.10.2002 +0200, Lars Henriksen wrote:
> > ... 
> > Committed. there were some problems with hash references, but I cleaned it 
> > up.
> 
> Oops. Sorry about that. Some of my local changes crept in here. I have found
> that with many categories and many responsibles, it's nice to have the menues
> alphabetically sorted (as they were in gnatsweb 2.9.3). I have been planning
> to submit a patch so here it comes (see below).

Unfortunately I managed to mess up my own changes so the patch mentioned above
wasn't quite correct.

I you want alphabetically sorted Category and Responsible menues (like in
gnatsweb 2.9.3) here is the patch.

Lars Henriksen

Index: gnatsweb.pl
===================================================================
RCS file: /cvsroot/gnatsweb/gnatsweb/gnatsweb.pl,v
retrieving revision 1.115
diff -u -r1.115 gnatsweb.pl
--- gnatsweb.pl 27 Oct 2002 22:33:18 -0000      1.115
+++ gnatsweb.pl 31 Oct 2002 20:25:59 -0000
@@ -1063,7 +1063,11 @@
     # Get default value(s).
     my $default = fieldinfo($_, 'default');
 
-    my $values = fieldinfo($_, 'values');
+    my @values = @{fieldinfo($_, 'values')};
+    if ($_ eq $CATEGORY_FIELD || $_ eq $SUBMITTER_ID_FIELD)
+    {
+      @values = sort {lc($a) cmp lc($b)} @values;
+    }
 
     # The "intro" provides a way for the site callback to print something
     # at the top of a given field.
@@ -1081,16 +1085,16 @@
       # Force user to choose a category.
       if ($_ eq $CATEGORY_FIELD)
       {
-        push(@$values, "unknown") if (!grep /^unknown$/, @$values);
+        push(@values, "unknown") if (!grep /^unknown$/, @values);
         $default = "unknown";
       }
-      print popup_or_scrolling_menu($_, $values, $default),
+      print popup_or_scrolling_menu($_, address@hidden, $default),
             "</td>\n</tr>\n";
     }
     elsif (fieldinfo ($_, 'fieldtype') eq 'multienum')
     {
       my $defaultsref = parse_multienum($default, $_);
-      print multiselect_menu($_, $values, $defaultsref),
+      print multiselect_menu($_, address@hidden, $defaultsref),
             "</td>\n</tr>\n";
     }
     elsif (fieldinfo($_, 'fieldtype') eq "multitext")
@@ -1563,7 +1567,12 @@
 
     $field_number++;
 
-    my $values = fieldinfo($_, 'values');
+    my @values = @{fieldinfo ($_, 'values')};
+    if ($_ eq $CATEGORY_FIELD ||
+        $_ eq $SUBMITTER_ID_FIELD ||
+        $_ eq $RESPONSIBLE_FIELD) {
+      @values = sort {lc($a) cmp lc($b)} @values;
+    }
 
     # The "intro" provides a way for the site callback to print something
     # at the top of a given field.
@@ -1576,18 +1585,18 @@
     {
       my $default = $fields{$_};
       # Check whether field value is a known enumeration value.
-      if (!(grep /^$default$/, @$values))
+      if (!(grep /^$default$/, @values))
       {
-       push(@$values, 'unknown') if (!grep /^unknown$/, @$values);
+       push(@values, 'unknown') if (!grep /^unknown$/, @values);
        $default = 'unknown';
       }
-      print popup_or_scrolling_menu($_, $values, $default),
+      print popup_or_scrolling_menu($_, address@hidden, $default),
             "</td>\n</tr>\n";
     }
     elsif (fieldinfo ($_, 'fieldtype') eq 'multienum')
     {
       my $defaultsref = parse_multienum($fields{$_}, $_);
-      print multiselect_menu($_, $values, $defaultsref),
+      print multiselect_menu($_, address@hidden, $defaultsref),
       "</td>\n</tr>\n";
     }
     elsif (fieldinfo ($_, 'fieldtype') eq 'multitext')
@@ -1867,8 +1876,12 @@
     if (fieldinfo($_, 'fieldtype') =~ /enum/)
     {
       print "<tr><td valign=top>$_:</td>\n<td>";
-      my $value_list=fieldinfo($_, 'values');
-      my @values=('any', @$value_list);
+      my @values = @{fieldinfo($_, 'values')};
+      if ($_ eq $RESPONSIBLE_FIELD || $_ eq $CATEGORY_FIELD)
+      {
+        @values=sort {lc($a) cmp lc($b)} @values;
+      }
+      @values=('any', @values);
       if (fieldinfo($_, 'fieldtype') eq 'enum')
       {
         print popup_or_scrolling_menu ($_, address@hidden, $values[0]);
@@ -2054,11 +2067,15 @@
     print "<td>";
     if (fieldinfo($_, 'fieldtype') =~ 'enum')
     {
-      my $ary_ref = fieldinfo($_, 'values');
-      my $size = scalar(@$ary_ref);
+      my @values = @{fieldinfo($_, 'values')};
+      if ($_ eq $RESPONSIBLE_FIELD || $_ eq $CATEGORY_FIELD)
+      {
+        @values = sort {lc($a) cmp lc($b)} @values;
+      }
+      my $size = @values;
       $size = 4 if $size > 4;
       print $q->scrolling_list(-name=>$_,
-                               -values=>$ary_ref,
+                               -values=>address@hidden,
                                -multiple=>1,
                                -size=>$size);
     }




reply via email to

[Prev in Thread] Current Thread [Next in Thread]